Vibe Coding: Why 'Just Vibing' Isn’t Actually Coding
There has been an explosion of people posting they now think vibe coding is basically coding, needless to say as an engineer I now know how the artists felt.
Lately, there’s been a lot of noise about vibe coding. Scroll through tech Twitter, and you’ll see it everywhere: people claiming they’re “building apps” just by telling AI what they want. No digging through docs. No fighting with compilers. No real coding. Just vibes ✨.
The idea exploded when Andrej Karpathy called it out – describing vibe coding as interacting with your AI assistant so deeply that you “forget the code even exists.” You see stuff, say stuff, paste stuff, and the system mostly works. It sounds incredible. And to a lot of people, it feels like coding. The problem is, when you look closer, it’s clear: vibe coding isn't actually coding. Not in the way it matters when it’s time to build something real.
This isn’t just about what counts as "real programming" or gatekeeping old-school skills. It’s about understanding why learning actual software engineering principles still matters if you want to build systems that don’t fall apart under pressure.
Why Vibe Coding Feels So Powerful (At First)
In simple terms, vibe coding means building software by describing what you want in natural language and letting AI handle the details. Instead of writing loops, classes, and tests yourself, you just... prompt.
"Build me a blog with user auth."
"Fix this error."
"Add Stripe payments."
The AI spits out something workable, you test it a bit, maybe tweak a line here and there, and boom: project done. It's almost addictive how fast it feels. You’re no longer bogged down by boilerplate or basic bugs. You’re moving at the speed of thought.
And to be fair, for quick-and-dirty projects, this method works surprisingly well:
Hackathons: Slap together a minimum viable product in a weekend.
Internal tools: Automate repetitive tasks without caring much about technical debt.
Learning experiments: Quickly test a new idea without getting buried in syntax.
In those cases, vibing is more than good enough. If the project lives for a few weeks and never touches real customers or money, who cares? Rapid iteration matters more than pristine architecture.
That’s why so many people are falling in love with it. It's not that the tech is bad. It's that they're applying it far beyond where it holds up.
Where Vibe Coding Completely Falls Apart
The moment you leave the safe, casual world of prototypes, vibe coding runs into a wall. It shows up in a few painful ways:
1. Debugging Becomes a Nightmare
Most vibe coders don't understand the code they’re shipping. They skim, they deploy, and they hope for the best. When something breaks – and it always does – they don’t fix the problem. They fix the symptom. Maybe they prompt the AI to "fix this crash" without understanding why it happened in the first place.
In complex systems, that’s a death sentence. You don’t just need to know what went wrong. You need to know how the whole thing fits together to even have a chance at fixing it properly.
You can’t vibe your way through a multi-threaded deadlock. You can’t vibe your way through a broken distributed transaction. And no AI can guess the nuance of your business logic when the stakes are high.
2. Systems Get Bloated and Fragile
When you vibe-code, you’re usually pasting AI-generated code snippets together without a plan.
The result? Bloated, duplicated, inefficient systems.
You see this clearly in AI-built projects: huge dependencies pulled in for tiny features, over-engineered solutions to simple problems, and layers of abstraction nobody asked for. The AI doesn’t optimise unless you know how to prompt it specifically to optimise – and if you don't understand performance engineering principles, you won't even realise what’s wrong until it's too late.
I've seen so many vibe-coded apps where a simple backend could have been 500 lines – but ballooned into a 5000-line monstrosity nobody could maintain after six months.
3. Security Is an Afterthought
AI is not security-aware by default. It doesn't understand OWASP guidelines. It doesn't remember to sanitise input unless you tell it. It might even suggest dangerous patterns like string interpolation in SQL queries without parameterisation.
If you're vibe-coding blind, you're shipping vulnerabilities you don't even know exist.
Real coders think like attackers and defenders. Vibe coders think "it runs, ship it."
That difference matters.
4. Scaling Past MVPs Is a Joke
Here's the real deal-breaker: vibe coding cannot scale to serious production systems.
The stuff my team builds – processing billions of transactions a year – simply can’t be whipped up by asking an AI to write "a scalable wallet service" and copying whatever blob of code it spits out.
At scale, every decision matters:
How you shard your databases.
How you queue and retry events.
How you deal with eventual consistency.
How you architect services for redundancy and fault tolerance.
None of that comes from vibes. It comes from deep experience, careful design, and thousands of small, invisible trade-offs.
AI can assist. It can draft. It can speed you up.
But if you’re building something serious, vibe coding will bury you alive the minute the real-world complexity shows up.
Why You Should Still Learn Real Coding
This isn’t a “vibe coding bad, real coding good” rant.
Vibe coding is awesome for getting people into the game.
But if you stop there, you’re cutting yourself off from a lifetime of compound growth.
Here's what you unlock by actually learning code properly:
1. Efficiency Compounds Over Time
Every bug you debug yourself sharpens your instincts.
Every system you architect yourself builds mental models.
Every deep problem you solve manually stacks another invisible upgrade onto your skills.
Over a few years, that compounds into the kind of efficiency where you can outpace anyone who's just prompting and praying.
It’s like investing early in yourself. A vibe coder might be 10% faster today. A real engineer will be 10x faster three years from now.
2. Control Unlocks Creativity
If you understand the real nuts and bolts of coding, you're not limited to what you can "ask" an AI to build.
You can invent new systems. New architectures. New approaches.
Vibe coders remix.
Engineers create.
That’s the real superpower.
3. AI Becomes a True Multiplier
When you know real coding, you don't replace your skills with AI.
You multiply them.
You let AI handle the boring stuff.
You spend your brain cycles on the hard stuff.
You architect, you design, you optimise – and you let the machine fill in the blanks.
Instead of being the intern begging the AI for help, you become the boss directing it to deliver what you need.
4. You Can Actually Scale Things That Matter
Real coding lets you build things that last.
Vibe coding lets you build things that collapse the minute they hit success.
If you have ambitions – serious ambitions – to build something bigger than a demo project, you need to move beyond vibes.
You need to own the craft.
Final Thought
Vibe coding is fun. It's exciting. It's empowering.
It will get you through the first 10% of the journey faster than ever before.
But don't let the speed of the first 10% fool you.
The real game starts where the vibes end.