AI made implementation nearly free. You can generate a thousand lines of code in seconds. But delivering code that works, that you know works, that solves the right problem, that handles failure gracefully, that future-you can maintain — that's still expensive. The cost didn't disappear. It moved.
It moved to the human. I've watched vibe-coded solutions pass hundreds of tests, yet careful manual review still surfaced hidden bugs and unexpected behavior changes. The harness around the model — the human who defines what to build before the AI writes it, and evaluates what came back after — is where all the value lives now. The model is a commodity. The judgment is not.
Most AI workflows are a loop — define the task, let the AI write it, review the output, repeat. Three steps. But loops don't compound. You start every session from zero, re-explaining your architecture, your preferences, your past decisions.
Add a fourth step and the loop becomes a spiral. Each session builds on the last. The AI starts knowing your taste — what you accept, what you reject, why you chose this pattern over that one. The partnership compounds. A year of sessions produces something no fresh conversation can replicate.
NixOS because an immutable OS is a stable platform for fearless experimentation — experiment freely, break things, then one command rolls you back to working. Every dependency is declared or it doesn't exist, down to the SSL library. Common Lisp because there's no framework between you and the running system — when something breaks, you see everything. No black boxes, no magic, no layer you didn't write. A 4GB ARM VM because constraints enforce discipline — you can't over-engineer in a small box.
Every technical choice answers the same question: how do I stay at the altitude where I'm most effective? The friction isn't a bug. The friction carved the shape. Without it, you get another generic AI wrapper that looks like every other one on GitHub.