Topics
Curated paths through the recurring ideas in this blog.
Reliability & testing
Make failures understandable—and change less frightening
These essays look at error models, automated testing, runtime assumptions, and the support structures that let engineers change systems with confidence.
The crash that wasn't
Debugging a CI-only failure with AI and turning diagnostics into product capability.
No time for testing?
Why testing is part of delivery, not optional work after implementation.
How to think about errors in your code
A practical model for deciding what failure means across applications and services.
A taxonomy of applications
Scripts, apps, services, and jobs—and why their runtime shape changes engineering decisions.
Distributed systems
Understand why the machines need each other
Start with the economic motivation for distribution, then move into communication, resource naming, and the abstractions that make remote systems feel local.
Building in public
Learn through the projects themselves
Side projects are where architectural ideas meet awkward environments, dependency constraints, users, packaging, and the occasional false crash.