
I build tools and systems that stay boringly reliable.
Distributed systems engineer and technical lead at GitHub, leading public-facing systems that scale for millions of users and building internal tools that improve developer experience.

- 56
- Published notes
- 10
- Deep-dive series
- Since ’19
- Writing in public
- 30K+
- Monthly readers, August 2026
Worth your time
Featured for you
A fresh post, a reader favourite and one useful find from the archive.
Newmeta
What I Learned Growing an Engineering Blog from 0 to 463,000 Pageviews
Seven years, 56 posts and 463,000 pageviews. Which articles actually earned the traffic, what the numbers hide, and what I would do differently.
Reader favouritedistributed systems
Introduction to gRPC
What gRPC is, how Protocol Buffers and HTTP/2 fit together, and when it beats REST or WebSockets for service-to-service calls.
Explore nextiot
Building your own private Kubernetes cluster on a Raspberry PI 4 with K3S
Build a two-node Kubernetes cluster on Raspberry Pi 4s with k3s, from flashing the SD card through cgroups, static IPs and joining the agent.
Start here
Follow a thread
Guided paths through connected ideas, in the order they make the most sense.
The notebook
Latest writing
aiScaling an Agentic Coding SDK: What Concurrency Actually Costs
Running agent jobs in parallel is not free. Measuring the real memory, process and shared-state costs of concurrency in an agentic coding SDK.
aiBuild a Safe Repository Maintenance Agent with GitHub Copilot and Microsoft Agent Framework in .NET
Giving an AI agent access to a repository takes only a few lines of code. Giving it useful access without silently approving every command is the real…
aiBuild a Safe Repository Maintenance Agent with GitHub Copilot and Microsoft Agent Framework in Python
In the .NET tutorial, we built a repository agent that could inspect a checkout, propose a one-line repair, run its tests, and report the result…
metaWhat I Learned Growing an Engineering Blog from 0 to 463,000 Pageviews
Seven years, 56 posts and 463,000 pageviews. Which articles actually earned the traffic, what the numbers hide, and what I would do differently.
distributed systemsReplacing a Critical Data Path Without a Flag Day
Shadow reads, a normalized comparison and a staged cutover: how to replace a data path in production without a single big-bang release.
distributed systemsWhen "no healthy upstream" isn't about the upstream you think
An Envoy error pointed at the upstream. The real cause was retries turning dependency latency into worker pool exhaustion behind the proxy.
distributed systemsThe Acknowledgment Gap - How Event-Driven Systems Lose Messages Without Errors
Event-driven systems can drop messages while every component reports success. How acknowledgment boundaries hide loss, and where to put them.
aiHow I Built an AI-Assisted Dependency Vulnerability Fixer
Most CVE fixes fail on packaging, not on code. What I learned building an agent that upgrades dependencies and proves the build still works.
pythonIntroducing 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 standup, a 1:1…