on building small things
There’s a version of software development where everything must be a platform. I keep ending up on the other side — the version where you write a 200-line script that does exactly one thing, and then you stop.
Small things get finished. That’s the whole argument, really. A large project is a marriage; a small one is a letter. Both can be beautiful, but only one of them can be completed on a Tuesday evening with a record spinning in the background.
The one-thing rule
When I sketch a new tool, I ask one question: what is the smallest honest version of this? Not the smallest demo — the smallest thing that someone would actually use.
- A CLI that turns a folder of markdown into a printable zine
- A script that watches my deploy logs and plays a specific song when the build goes green
- A poem generator that only knows three words: ash, vinyl, light
Each of these shipped in an evening. Each of them is used. None of them has a roadmap.
On finishing
The most underrated skill in software is knowing when to stop. Perfume Genius records albums that are exactly as long as they need to be — no filler, no b-sides for the streaming algorithm. That’s the discipline I want: release the song, not the discography.
My current rule: if a tool survives two months of my own use without me hating it, I open-source it. If it doesn’t, I delete it. Deleting is also a form of finishing.
