blog·1 April 2026

On building things slowly and finishing them


There is a particular kind of project that never gets finished — not because it's too hard, but because the builder keeps restarting it. A new framework comes out. A better approach occurs to them at 2am. The old code starts to feel embarrassing.

The cost of restarts

Every restart resets the one thing you can't buy back: domain-specific momentum. The second time you build something you move faster — not because you're smarter, but because the shape of the problem is already in your head.

// the real compounding curve
const value = completions ** 2 - restarts * 0.8

Finishing as a practice

Shipping something imperfect is a skill. It requires ignoring the gap between what you built and what you imagined, at least temporarily.

Shipping imperfect work

The gap between what you built and what you imagined never fully closes. The question is whether you can tolerate it long enough to get to done.

The tolerance gap

Different people have different thresholds. Some ship too early, some never ship. The goal is to calibrate yours over time — not to eliminate the discomfort, but to stop letting it make the decision for you.

What this means practically

Pick a definition of done before you start. Write it down. When you feel the urge to restart, read it. If what you've built satisfies it, ship.