Hi, I'm Sahan đź‘‹
Senior Software Engineer and Technical Lead with 15+ years in .NET, Python, and Kubernetes. I architect distributed systems and share practical, real-world engineering to help others level up.
Series
Latest posts
![When "no healthy upstream" isn't about the upstream you think]()
When "no healthy upstream" isn't about the upstream you think
is the kind of error that makes you expect wreckage. Then you open the dashboards and find… almost nothing. CPU is low. No pods have crashed…
![The Acknowledgment Gap - How Event-Driven Systems Lose Messages Without Errors]()
The Acknowledgment Gap - How Event-Driven Systems Lose Messages Without Errors
If you have built event-driven systems for any length of time, you have probably internalized the mantra of at-least-once delivery: keep…
![Introducing gh-weekly-updates - Automate Your Weekly GitHub Impact Summaries]()
Introducing gh-weekly-updates - Automate Your Weekly GitHub Impact Summaries
If you’re anything like me, you’ve probably spent a Friday afternoon trying to remember everything you did that week. Maybe it’s for a…
![Deploying GitHub Self-Hosted Runners on Your Home Kubernetes Cluster with ARC]()
Deploying GitHub Self-Hosted Runners on Your Home Kubernetes Cluster with ARC
If you followed my last post, Building a Home Lab Kubernetes Cluster with Old Hardware and k3s, you now have a proper x86 Kubernetes cluster…
![Building a Home Lab Kubernetes Cluster with Old Hardware and k3s]()
Building a Home Lab Kubernetes Cluster with Old Hardware and k3s
If you’ve read my previous post about building a Raspberry Pi k3s cluster, you know I’m a huge fan of home labs. There’s something uniquely…
![How Does the Python Virtual Environment Work?]()
How Does the Python Virtual Environment Work?
When you start working with Python, one of the first recommendations you’ll hear is to use a “virtual environment.” But what exactly is a…
![Deep Dive - How Chunked Transfer Encoding Works]()
Deep Dive - How Chunked Transfer Encoding Works
Chunked transfer encoding is a key HTTP/1.1 feature that allows servers to stream data incrementally without knowing the total size of the…
![Upgrading sahansera.dev to Gatsby 5]()
Upgrading sahansera.dev to Gatsby 5
How I Upgraded My Blog to Gatsby V5 The time is now 1:45 AM and I’m finally done upgrading my blog to Gatsby V5. It’s been one heck of a…
![Streaming APIs with FastAPI and Next.js - Part 2]()
Streaming APIs with FastAPI and Next.js - Part 2
In Part 1, we explored how to stream data into a React component using modern browser APIs. Now it’s time to build the other half: the…
![Streaming APIs with FastAPI and Next.js - Part 1]()
Streaming APIs with FastAPI and Next.js - Part 1
Streaming data in the browser is one of those things that feels magical the first time you see it: data appears live - no need to wait for…









