Understanding K8s Quality of Service (QoS)

Overview My recent on-call shift was quite the rollercoaster, but yielded valuable insights as usual. One particularly interesting incident was resolved by modifying our Quality of Service configuration for the impacted application pods to Burstable. What does that mean? Well that’s what I’m hoping to address in this writeup as well as better grok it myself. Quick Infra Overview Our backend is divided into various K8s deployments, each with its own allocated resources:...

September 16, 2024 · 5 min · Naimun Siraj

Demystifying JWT: Understanding JSON Web Tokens for Secure Authorization

The Question While working on our checkout service, I noticed that we used JWTs to authorize client side requests. Authorization as opposed to Authentication because these requests are made between services and the client is already authenticated (logged into the platform). A co-worker asked a question about how JWT works and that got me spiraling down the rabbit hole. I knew JWTs were used to tell the backend server that the request being made was made by a trusted party (ie....

May 15, 2024 · 5 min · Naimun Siraj

Investigating an Out of Memory (OOM) issue in a Go app

A deep dive into a Go application memory leak

May 14, 2024 · 3 min · Naimun Siraj

A Red Herring Affair

A middle dive into a problem that wasn’t what it seemed

February 21, 2024 · 3 min · Naimun Siraj

Importance of Graceful Shutdown

Understanding the importance of graceful shutdown in a distributed system

January 31, 2024 · 6 min · Naimun Siraj