Do you need to know how the sausage is made?
I build sites on frameworks I couldn’t rebuild from scratch, and some days that worried me. Then I thought about breakfast. On layers of abstraction, and the part you still have to know.
- Written by
- Naresh Kumar
- Published
- Reading time
- 5 min
- Topic
- Tech & AI
I build a lot of websites. Astro, React, Next.js, Python pipelines, GitHub Actions, Cloudflare. I know the foundations, I understand the infrastructure, and I can read a CI/CD pipeline and tell you what it does.
What I do best sits above all that. I work out what people need. I write the spec and the functional design, plan the components and the content, and orchestrate the build, often with AI coding agents doing much of the typing. Then I review and test what comes back.
But there are many layers in that stack where I couldn’t tell you exactly what happens. I know what they do, not always how they do it. It just works.
Some days that bothered me. I don’t know everything. If this breaks, how am I going to rebuild it without relying on AI?
Then I thought about breakfast
There are many layers of abstraction in your life. If you can cook a delicious breakfast, do you really need to know how the sausage is made?
You know the pan, the heat and the timing. You know when the eggs are done and how you like your toast. You don’t know how the pig was raised, how the casing was made or how the wheat became flour. You trust the people who do, and you still make a great breakfast.
This isn’t a new idea. In 1958 Leonard Read wrote I, Pencil, an essay narrated by an ordinary pencil, whose point is that no single person knows how to make one. The cedar, the graphite, the paint and the rubber each come from different people who have never met.
Software is the same. The people who build React don’t design the chips it runs on. The people who design the chips don’t write your browser. Nobody holds the whole stack in their head. Every layer exists precisely so that the people above it don’t have to.
It’s okay not to know everything
That realisation took the pressure off. Not knowing how every layer works isn’t a gap in my skills. It’s how modern work is built, for everyone, at every level.
But it isn’t a licence to know nothing either. You can’t cook breakfast if you don’t know the pan gets hot. To build something, you still have to know something.
There’s a well-known catch, too. In 2002 Joel Spolsky named the law of leaky abstractions: “All non-trivial abstractions, to some degree, are leaky.” Sooner or later, a layer you trusted shows through. The build fails, the deploy hangs, the page is slow for reasons the framework won’t tell you.
That’s the moment I used to worry about. So what do you need to know?
One layer down
What I’ve settled on: know your own layer well, know one layer below it well enough to read what it’s telling you, and put checks around everything else.
In practice, that means a few things I do on every project:
- Know what you want. A clear spec is the one layer nobody else can write for you. If I can describe what the system should do and why, I can judge whatever builds it, human or AI.
- Know how you’ll tell it’s right. Tests, checks and a habit of looking at the real thing in a browser. I don’t need to know how a bundler works to notice the page didn’t change.
- Know where to look when it breaks. Logs, error messages, the docs for the layer just below mine. Most failures announce themselves if you know where to read.
- Keep the stack small. Every layer I add is one more I might have to understand on a bad day. The Tunnel Hill 100 site, for example, has no framework at all.
- Keep it replaceable. Data in plain files, standard tools, hosting I could move. If a layer fails me, I want to be able to swap it rather than repair it from the inside.
And without AI?
That was the real fear underneath: what if the agent isn’t there, or gets it wrong, and I’m left with code I don’t fully understand?
AI is one more layer, and it can leak like any other. So I treat it the same way. I own the layer above it, the spec, the review and the decision to ship. I know enough about the layer below to read what it produced. And I check the result, every time, before it goes live.
If something breaks, I may not know every line by heart. But I know what the system is meant to do, how it fits together, where to look and how to tell when it’s fixed again. That’s not knowing how the sausage is made. It’s knowing how to cook.