Give AI a Clean Kitchen
I watched a chef burn a steak last week. Good chef, nice restaurant, just one of those nights. Same recipe he’s made a thousand times, different result. That’s cooking. And honestly? AI works the same way. Same prompt, different answer, every time.
Predictable? Not really. Not either of them. I stopped fighting that a long time ago.
What does work in a kitchen, though? Nobody succeeds by eliminating surprises. You keep the place clean. Ingredients fresh. Knives sharp. You control the stuff you can control, and the creative parts find their own way.
So what if we treated AI the same way? Stop trying to make it deterministic. Just give it a clean kitchen.
The Problem
I got into reproducible environments for selfish reasons, honestly. I was tired of “works on my machine.” Locked dependencies, immutable builds, deterministic tooling. Nix made most of this possible, once I survived the learning curve.
But lately something funny happened. maybe all that plumbing I laid down for myself is secretly what AI was missing too.
If you’ve used AI tools for any real project, you know. You build a model, deploy it, and the other machine gives you different numbers. Run the same prompt twice, two different answers. Your teammate tries your code, something else entirely.
And this isn’t a bug you can fix. Temperature, sampling, model updates. It’s non-deterministic at every layer.
The first thing everyone tries is fighting it. Pin the model version. Crank temperature to zero. Force consistency wherever possible.
I tried that too. It’s like timing your cooking down to the microsecond. Sure, you get consistency. You also get food nobody remembers.
Something That Happened
I was talking to a team not that long ago. They’d built an AI feature, demoed it internally, looked great. Staging, perfect. Production? The numbers made no sense. Completely different from anything they’d seen in testing.
They spent two days pulling their hair out before someone checked the BLAS libraries. Production was linked against MKL. Staging had OpenBLAS. The devs’ laptops on macOS were using Apple’s Accelerate. Three different linear algebra backends, each optimizing matrix math differently. Tiny floating-point differences that compounded over thousands of iterations into completely different AI outputs.
Same model. Same prompts. Same code. The ground underneath had shifted in a way nobody thought to check.
We’ve all dealt with “works on my machine.” This is that problem, but worse. Traditional software bugs stay bugs. AI environmental differences produce behavior that looks intentional and is almost impossible to trace back to the cause.
Every story like this is really an environment problem wearing an AI mask.
Clean Up the Kitchen
You can’t make AI predictable. Fine. But you can make everything around it predictable, and that changes the game more than you’d think.
Lock your dev environment. Pin your dependencies. Make your builds reproducible. Now AI’s randomness is the only variable left. That’s a totally different debugging experience.
Your teammate clones your setup and gets a different result? Now you’re looking at genuine AI variance, not environment drift. That distinction matters more than people realize.
And there’s a compounding effect with iteration speed. When your test cycle is 10 minutes instead of 2 hours because you’re not wrestling with environment issues, you try more things. With AI, where the solution space is huge and your intuition is often wrong, the number of attempts matters more than almost anything.
The tools are out there. Nix for bit-for-bit reproducible builds. Docker for isolation. Even a careful requirements.txt with pinned hashes beats winging it. Pick whatever works for you. The point is the mindset: everything around AI should be a known quantity.
The Part I Didn’t Expect
For a long time I thought reproducible builds were just good hygiene. Discipline. The “right way” to do things, if you cared about craft.
Turns out they’re really about making room for the stuff you can’t control.
When the boring parts are locked down, when the kitchen is clean and the knives are sharp, you stop fighting your tools. You start paying attention to the interesting parts. The creative parts. The parts where AI actually shines.
You don’t need AI to be predictable if everything around it already is.
My chef friend still burns a steak now and then. His kitchen stays clean though. Ingredients fresh, knives sharp. Not because it prevents mistakes, but because it lets him focus on the cooking.
Give AI a clean kitchen. A stable home. Then get out of the way and let it surprise you.
I’ve spent twenty years getting dev environments to behave, and somehow I ended up writing about kitchens. I’m giving talks on AI and developer tooling in 2026. Say hi.