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.

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.