Hi, I'm Liam

I talk about code and stuff

The Same Ingredients, Different Results

Two Soups, Two Cookies

Published on

The other day I cooked two soups side by side. Same ingredients, same quantities - and one tasted a bit meh, while the other tasted amazing.

Two Soups

Everything about these two soups was identical. The veggies were prepped at the same time, the seasonings were measured the same, the weights matched exactly. So why did one taste so much better than the other?

It was down to process. And really, only one part of the process changed.

First Soup, I chopped up all the vegetables, threw them in a pot with water, boiled it, blitzed it with a blender, and voilà - soup. It was fine. There were some little bits that didn’t blend completely, but didn’t ruin the dish by any means.

It was hearty, vegetal and had a strong sharp flavour of raw bell pepper.

It was a good soup, but nothing special.

Second Soup, I didn’t boil anything. Instead, I roasted everything in the oven - a slow roast, for a couple of hours. That gave the vegetables enough time for their natural sweetness to emerge, for the juices to release. When it was done, I added about the same amount of water as the boiled version as I added it to a blender, and blended for the same amount of time.

This was also hearty, but also sweet, with deep and complex flavours, and comforting.

Nothing new was added. No secret cheffy tips or seasonings. The ingredients didn’t change. Only the process did.

Until I had two results side-by-side, I couldn’t have put my finger on why one tasted so much better.

Two Cookies

My wife loves to bake - she’s an amazing baker - and one time she made cookies using her usual recipe but decided to go a couple of extra steps with the process.

The outcome was phenomenal.

Same ingredients, but instead of adding butter directly, she browned the butter first. Instead of chopping the chocolate into uniform pieces, she left some chunks bigger than others. Instead of putting the cookie dough straight in the oven, she rested it in the fridge for a couple of hours first.

These are all technically optional steps. You can get a perfectly good cookie by ignoring all of them. But the difference between the regular cookies and these ones was insane.

If you’re curious why these things made a big difference…

  • Browning the butter gives it a sweet, nutty taste that carries throughout the whole cookie
  • Chocolate chunks being different sizes mean they melt at different rates. One mouthful might have a bigger chunk or pocket of chocolate while another might not, and variation in texture makes up a big part of taste
  • Letting the cookie dough rest in the fridge lets all the flavours from the ingredients go together a bit more. When you go to bake it, the centre of the cookie will be colder and cook at a slower rate than the edges, leading to a soft and gooey centre with crispy edges - another variation in texture

Skip these steps and you still get a good cookie. Do one of them, slightly better cookie. Do all of them? A great cookie. But you’re putting in the same stuff at the end. The only real variable is time and care in the process.

And no one eating it needs to know why it’s better. They just know it is.

Now, About Software

The same is true in what we build.

Someone can look at your product, replicate the features, copy the UI pixel-for-pixel. They’ve got the same ingredients. But they didn’t sit through the user feedback that shaped that one flow. They didn’t feel the frustration of the bug that led you to rethink the error handling. They didn’t watch someone struggle with the old version and know exactly which papercut to file away.

They see the cookie. They don’t see the browned butter.

People worry about being copied - especially now, when AI makes it trivial to spin up a clone of just about anything. But a copy only captures the surface. The feature list you can screenshot. The layout you can inspect. The process that shaped those decisions is invisible. And it’s the thing that separates “this works” from “this feels right.”

A lot of what goes into making something great is technically optional. You don’t have to obsess over that loading state. You don’t have to rewrite the onboarding flow for the third time. You don’t have to add that little animation that draws your eye when you click the button.

But the difference between something that technically works and something that feels absolutely right lives in these steps - the ones nobody else can see.

They’ll have the same ingredients. They won’t have the same soup.

Photo of Liam Hammett
written by
Liam Hammett
Found a typo? Suggest a fix here!
Hit me up on Twitter / GitHub / LinkedIn / email me
Copyright © 2026 Liam Hammett and all that kind of stuff