Taste Is the Last Moat
The intern and the twenty-year architect are typing prompts into the same model now, and getting roughly the same code back. That should terrify the architect. It doesn’t terrify me, and working out why took me longer than I’d like to admit.
For most of my career, the edge was execution. Moats were built out of headcount and velocity, the ability to ship the thing before someone else could. I built companies on that premise. Hire well, move fast, out-produce. AI hands execution to everyone at the same time, and an advantage everyone has is not an advantage. On most tasks, the code the intern gets back is roughly the code I get back. The gap that used to be typing speed and syntax is mostly gone. What’s left is everything upstream of the prompt.
What’s left is the string of decisions the model can’t make for you. Which problem is worth solving. Which of five working implementations is the right one. When “done” is done. What to refuse to build at all.
I keep calling this taste, and I want to be precise about what I mean, because it isn’t aesthetic preference. Taste is compressed judgment. It’s years of watching things fail, packed down into a reflex that fires before you can explain it. You look at a working implementation and something in you says no, and the reasons arrive afterward, if they arrive at all. The model has seen everything and judged nothing. It can hand you a thousand competent options, and it will hand them to you with total indifference about which one matters.
Now the objection I have to take seriously, and not wave off in a sentence: maybe taste is trainable too. Models already critique code, rank designs, and flag slop, and they’re not bad at it. If judgment is pattern-matching over outcomes, it’s next on the commoditization list, and this post becomes a comfort blanket with a two-year shelf life. I’ve sat with that one, because the history of “the machines will never do X” is a history of embarrassment.
I don’t think the honest answer is “models will never have taste.” I think it’s that taste is tangled up with accountability and context: knowing what this user, this business, this month requires, and being the one who answers for the call. A model can rank five implementations against a rubric. It can’t know that the second-best one on the rubric is the right one because the team that maintains it quits in March, or because the customer who asked for it doesn’t understand what they asked for. That last mile may compress far more slowly than code generation did. May. I’d rather admit the uncertainty than pretend the question is settled.
There’s a version of this argument that’s pure self-soothing, and the way to tell them apart is whether the writer concedes what taste costs. Mine cost twenty years, a lot of them spent shipping things that turned out to be the wrong things. That’s the part that unsettles me more than the trainability question, because if taste is compressed experience, and AI is removing the experiences that used to compress it, then the moat is inheritable but maybe not renewable. The people with taste today earned it the old way, writing the code themselves, being wrong in slow motion. The people starting today won’t get that route.
So the moat holds, for now, for the people already standing inside it. Where the next generation’s taste comes from is a different question, and a worse one, and it gets its own post.