Blog

The Default Is a Decision

Defaults feel like the absence of a choice — the value nobody had to set. In practice they're the choice most users will live with, made once by someone who won't be there to see the consequences.

The Setting Nobody Should Need

Adding a setting can be a way of avoiding a decision — shipping both answers instead of finding the right one. Sometimes that's respect for real variation. Sometimes it's an unresolved argument, permanently installed.

Shorten the Loop Before You Optimize It

When work feels slow, the instinct is to get better at the steps inside the loop. Usually the bigger win is making the loop itself shorter — so being wrong stops costing so much.

The Code You Can't Loop On

Some code has no fast feedback loop at all — you can't easily run it, watch it, or reproduce its failures. That code doesn't just move slowly. It resists being understood, and the slowness compounds.

The Loop Is the Unit of Speed

How fast you build isn't set by how fast you type. It's set by how quickly you can go around the loop of making a change, seeing what it did, and learning from it. That cycle time is the real speed.

Code Is a Liability

The instinct is to count code as an asset — look how much we built. But the asset is the behavior; the code is what you pay to keep it. More lines doing the same job is more liability for the same value.

The Flexibility You Didn't Need

Building for an imagined future feels like foresight. Usually it's a bet against odds you'd never take if you saw them clearly: pay the cost of flexibility now, on a guess about needs that mostly never arrive.

The Simplest Thing That Works

If code is a liability and speculative flexibility is a bad bet, the discipline that follows is to build the simplest thing that solves today's real problem. The hard part is telling simple from naive.

The Comment That Should Have Been Code

The urge to write a comment explaining what a piece of code does is usually a signal, not a solution. Most of the time the honest fix is to make the code say it — and a comment is what you write only when the code can't.

The Cost of Surprise

Code that works but behaves unexpectedly still charges a tax: every reader has to stop and verify the thing they assumed. Consistency isn't aesthetic tidiness — it's what lets people trust their assumptions and move on.