On Building Tools
I have a habit of building tools no one asked for. A CLI to rename files in a specific way. A script that auto-organizes my downloads folder. A tiny web app just for me.
Most of them never leave my machine. But I keep building them.
The value of useless tools
The framing "useless" is wrong. These tools are useful — just only to me, and only sometimes. But that's not really the point.
Building a small tool forces you to:
- define a problem precisely
- make API decisions (even if you're the only user)
- ship something, even if small
That last one matters most. Shipping changes how you think. A tool that runs on your machine is different from an idea in a notebook.
Constraints as features
The best small tools I've built had tight constraints. One input, one output. No config files. Opinionated defaults. These constraints aren't laziness — they're a feature.
A tool that does one thing clearly is easier to trust than one that tries to do everything.