Latest posts

When to optimize, when to wait

Most codebases grow in directions their authors never anticipated. The pressure to optimize early is real, but constraints often produce more elegant solutions than freedom ever could.

Read more →

Notes on system reliability

Distributed systems fail in ways that are hard to predict. After years of debugging production incidents, certain patterns keep recurring. This post explores a few.

Read more →

From the archive

Naming is one of the hardest problems in software, yet we spend less time on it than we should. Let's talk about why it matters and how to get better at it.

About this site

These are my notes on building reliable, readable, maintainable systems. Interested in clarity over cleverness.

Thoughts on writing. Updated weekly.

Elsewhere

Occasional notes on technical topics. Past essays here.