← Essays

Why I keep my tools small

2026-09-14

Most of the tools I use every day are small. A weather lookup in the terminal, a barcode generator, a tiny chat over a socket. None of them are impressive, and that is the point.

One job, done properly

A tool that does one thing has a short list of ways to fail. When it breaks, I know where to look, because there is only one place to look.

Small tools also tend to compose. If a program reads text in and writes text out, I can pipe it into the next one:

weather --city lagos | grep -i rain

What “small” means to me

I use three rules when deciding whether something has grown too big:

The last rule matters most

If something is hard to delete, it has stopped being a tool and become a dependency. I try to notice that early.

Where to start

If you want to try this, pick an annoying five-minute task and write a program for it. Go is a good fit because it compiles to a single binary you can copy anywhere.

The best code is the code you never had to maintain.

That quote is often attributed to someone different each time I see it, so treat it as folklore.