GenAI: A Dunning-Kruger Machine
It makes people confidently wrong.
I recently hired a contractor to rebuild the front end of VSTRAT. He submitted regular progress updates and said everything was on track.
After a week, I asked to see what he’d built. There was nothing. A stub. The kind of empty scaffold that Claude Code generates when you type “build me a Next.js app” and hit enter, including fingerprints showing that’s exactly what he did. A full week of reported progress and the sum total was a default template with nothing inside it.
Scammer? Maybe. Or maybe he read the same articles you’ve been reading. AI writes code now. Anyone can build software! He likely fell for the allure of “Vibe Coding,” the practice of prompting an AI to generate code that looks right and runs once, without actually understanding the underlying logic, state, or architecture.
He took the gig believing he could prompt his way through it. He couldn’t, though after being fired did hack out something in a few hours. Anyway, instead of admitting being lost, he faked updates until pressed on specifics. I caught it because, unlike most executives thinking they’ll save some money, I’ve been doing this a long, long time.
The Invisible Barrier
AI code generation produces starting points. Scaffolds. Boilerplate. Or focused changes. For an experienced developer, this is a genuine power-up. I use it daily and it makes me significantly faster. It augments the expertise I already have much like VSTRAT augments strategy work.
But there is a gap between a scaffold and a working product. That gap is where engineering actually lives. It’s where you debug the state management issue that only surfaces under load. It’s where you make the architectural decisions that determine whether the thing holds together or falls apart the first time a real user touches it.
Vibe coding is about the feel of progress. Engineering is about the fact of reliability.
My contractor sat in front of a tool that gave him an empty shell and apparently packed, unsure what to do next.
The Webflow Canary
After I let him go, I tried Webflow, the well-known visual site builder. No code required.
The most recent incarnation of Webflow itself appears to have been vibe coded. The platform is increasingly full of bugs that suggest a lack of oversight. In my case, the credit card field on the payment form simply didn’t render. It wasn’t a styling issue: the component just wasn’t there. Wanting my front-end, I found a workaround spending more time than the Webflow team did testing their site.
There is a profound irony in a multi-billion dollar company, designed to democratize web development, failing at a basic task like collecting a payment. I signed up with a temporary credit card number just in case. If their payment processing is as buggy as the rest of the product, I wanted to ensure they couldn’t keep charging me.
I chose a template and tried to export it, figuring I’d modify things in code. The export failed, with a dialog I left on for half an hour before realizing it’s clearly another bug.
I demanded a refund, answered by a person, and built it myself. It’s not my focus at all but took less time than I’d spent managing the contractor and fighting with Webflow combined.
The Real Accounting
Dario Amodei has said publicly that AI will write most code soon. He runs the company that makes Claude, and with an IPO on the horizon, the boldest possible claims about AI serve his interests. But I think he’s wrong. Not about what AI can do, but about what it replaces.
AI doesn’t replace engineering. It replaces typing. Just as spreadsheets didn’t replace financial analysts but made the good ones more efficient, AI augments the expert while leaving the novice stranded in a hallucination. The thinking, the debugging, the architecture, the hard decisions about tradeoffs under constraints: that’s the job. The typing was never the expensive part.
By freeing experts from routine tasks, AI enables them to imagine and experiment more. But that only works if you already have the mastery to know where the routine ends and the critical thinking begins. When companies cut experienced developers and replace them with junior staff armed with AI tools, they don’t save money. They move the cost.
It shows up weeks or months later as rework, as outages, as cancellations, as products that look finished but break the moment a real user touches them. The invoice from a professional developer feels expensive because you can see it. The cost of vibe-coded software is invisible until the damage is done.
The Fuse
Was my contractor a bad person? OK - the fake status reports aren’t a good sign. But even if he was innocent in his intentions, the outcome is the same. He took a contract he couldn’t deliver. He submitted updates for work that didn’t exist. When pressed, there was nothing to show. Fraud? Maybe. But it’s definitely a reputational hit and reputations, once broken, don’t get patched with a prompt.
He didn’t just lose this contract. He lost the next one, and the referral after that. The person who recommended him knows what happened. So do I. The vibe coding hype didn’t just fail him on the technical side. It cost him something much harder to rebuild.
AI is spectacular at augmenting people who know what they’re doing. It does not turn novices into experts. It turns novices into people who can’t tell the difference between working software and a convincing hallucination. I call GenAI a Dunning-Kruger machine.
If you’re out there right now taking on work because AI told you the barrier is gone, be careful. The barrier is still there. You just can’t see it until you’ve already committed to delivering something you can’t build.
Don’t vibe code your reputation.


