Every project I’ve shipped in the last six months has been an ugly baby at some point — dead code, 11pm ideas that look stupid at 8am, three abstractions doing the same thing. That’s not failure, it’s the artifact you need. Put the ugly baby in a glass case, learn from it, then rebuild from zero.
Vibe coding is a real and useful phase — the problem is people stop there. The space between ‘I had an idea on a plane’ and ’this runs in an air-gapped Kubernetes cluster’ is where the actual work happens. A generalizable playbook for the middle, starting with: treat the LLM like a very literal child.
Agents got good, code became the cheapest thing in the room, and the gap between product and engineering is closing fast. The people who internalize that — who spend their time deciding what should exist and ripping into what the agents hand back — are going to run circles around everyone else.