The Real Problem With Vibe Coding Isn't the AI — It's the Blind Spot
Andrej Karpathy coined "vibe coding" in early 2025 for throwaway weekend projects. The internet turned that into "forget the code exists." But forgetting the code isn't the same as forgetting the system. The system is what actually runs when the code executes. A 20-year systems engineer (not a developer) explains why his vibe coding sessions succeed while others' crash.
Five Concrete Examples Where the AI Was Wrong
The author lists five real suggestions from AI coding tools that he overrode:
- OS choice: AI proposed Windows Server for a security app. Ubuntu did the same job with less cost and overhead. The model had no concept of licensing or resource budget.
- Database: AI chose MySQL. The author knows Postgres. Picking the database he can operate under pressure at 2am was the right call — an operational judgment invisible to the model.
- Authentication: AI wired up login easily. But the hard part is locking it down with Microsoft Entra ID Conditional Access — ensuring "logged in" means from a sanctioned device, not just a valid token. That layer doesn't exist in the code.
- Networking: AI routinely suggests opening SSH to the world to make connections work. The author scopes access down because he knows the network layer.
- Secrets management: AI happily hardcodes tokens and API keys in config files headed for the repo. The author overrides to use encrypted secrets stores and environment variables.
The Stack Is Deeper Than Two Boxes
"Full stack" usually means frontend and backend — two boxes. The real stack includes: source control, application layer (frontend/backend), API layer, authentication/authorization, database, cache, object storage, queue, web server, reverse proxy, DNS, and more. Each layer fails in its own way and takes down adjacent layers. Vibe coders get burned because they think application code is the system. It's one floor of a building whose foundation they never poured.
How to Vibe Code Safely
The author doesn't start sessions with "build me X." Instead, he spends 30 minutes talking through the problem — what he's trying to do, constraints, where the bodies are buried. Then he has Claude write the best prompt for that conversation, and hands it to Claude Code. The model writes the spec better than he could cold, but only after human thinking. The 30-minute conversation isn't overhead; it's what keeps the next two hours from being cleanup.
The Dividing Line
The difference isn't talent or how much code you write. It's whether you understand what your code is standing on. The author writes: "You cannot push back on an answer you could not have questioned in the first place." Vibe coding got him building for the first time in his career. The tools are accelerants. But without foundation knowledge, the vibes don't hold weight.
What This Means for Developers
- Know your infrastructure: Even if you're not a sysadmin, understand the layers below your code. Learn about networking, secrets management, and database operations.
- Argue with the AI: The model is confident but often wrong about operational concerns. Question its choices on OS, database, security settings.
- Start with conversation: Spend time framing the problem before generating code. Use the AI to refine your spec, not to replace your thinking.
- Don't ship siloed changes: Every change touches multiple layers. Map out dependencies before deploying.



