Skip to content
← back to all posts
28 August 20264 min read

I cook software

Why I think of building products as cooking — mise en place, tasting as you go, and never serving something you would not eat yourself.

#craft#mindset

I have a confession: I do not really think of myself as a programmer. I think of myself as a cook.

A cook gets a raw idea from someone — a craving, a half-sentence, "could we make it do the thing?" — and turns it into something you can put on a table. Programming is just the knife work.

Mise en place

Before a single line of code, I like to line up the ingredients:

  • The idea. What are we actually making? Say the dish out loud.
  • The constraints. Time, budget, team, and the one weird thing that must work.
  • The taste test. How will we know it is good? Write it down before you are hungry.

Skipping this step is how you end up cooking a five-course meal for a party of one.

Taste as you go

You would not cook a curry by throwing everything in and hoping. You taste, you adjust, you taste again. Software is the same:

Ship small, look at it, fix it, ship it again.

Small batches are not a compromise. They are how you avoid serving something nobody ordered.

Never serve what you would not eat

My rule is simple: if I would not use it, I do not ship it. That single question catches more bad product decisions than any planning meeting ever has.

It is also how I ended up caring so much about the small stuff — the loading state, the empty state, the error nobody thought to write.

And the bugs

Every kitchen has pests. In software they are called bugs, and I have a very personal relationship with them: I hunt them, I squash them, and occasionally — you saw the website — I eat them.

Good software is less about never making a mess and more about cleaning it up fast, with a smile, before anyone notices.

Now go cook something.


Enjoyed it? There is more where that came from.

Read more →