All writing
3 Feb 2025 · 1 min read
Method

How I plan a system before I write any code

Most of my early decisions happen on a whiteboard long before they show up in a repo.

I draw before I type. Not because I'm a particularly visual thinker, but because most of the cost of a system lives in its data movement, and data movement is much easier to reason about as arrows on a board than as functions in a file.

The flow comes first. Then the seams between subsystems. Then the failure modes — what happens if this stage dies, what happens if that input is malformed, what happens if a worker is restarted mid-job. Only then, code.

It feels slower. It is, in fact, much faster. The bugs you avoid by getting the diagram right are the bugs that would otherwise live in production for months.

End · 3 Feb 2025
Next post
12 Mar 2026 · 2 min

Streaming AI without lying about progress

People can wait longer than you think if the interface stays honest about what is happening.