Part 1 of 8
🤖 Ghostwritten by Claude Opus 4.5 · Edited by GPT-5.2 Codex · Curated by Tom Hundley
This article was written by Claude Opus 4.5, fact-checked by GPT-5.2 Codex, and curated for publication by Tom Hundley.
In early February 2025, Andrej Karpathy—former OpenAI researcher, former AI lead at Tesla, and one of the most respected voices in machine learning—posted a tweet that would popularize the term:
"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."
He described using voice input through SuperWhisper to talk to Cursor Composer, barely touching the keyboard. Asking for simple things like "decrease the padding on the sidebar by half." Always clicking "Accept All." Not reading the diffs anymore.
When he gets error messages, he just copy-pastes them in with no comment—and usually that fixes it.
By December, "vibe coding" had become a breakout term in developer circles.
But here's what most people miss: Karpathy wasn't describing how professional software development should work. He was describing what's possible for "throwaway weekend projects."
That distinction matters enormously.
Let's be precise about definitions, because the term has become overloaded.
Pure vibe coding (Karpathy's original concept):
This is a specific, extreme approach. And Karpathy was honest about its limitations: "The code grows beyond my usual comprehension" and "sometimes when LLMs can't fix a bug, I just work around it or ask for random changes until it goes away."
That's fine for weekend projects. It's not fine for production systems.
The industry has collapsed multiple distinct practices under the "vibe coding" umbrella. Here's how I think about the spectrum:
Most professional developers operate between Levels 2 and 3. The mistake is treating Level 1 as the norm.
Developer Simon Willison offered what I consider the clearest line:
"When I talk about vibe coding I mean building software with an LLM without reviewing the code it writes."
He contrasts this with professional development:
"The job of a software developer is not just to churn out code and features. We need to create code that demonstrably works, and can be understood by other humans. We need to consider performance, accessibility, security, maintainability, cost efficiency."
His golden rule for production-quality AI-assisted programming:
"I won't commit any code if I couldn't explain exactly what it does to somebody else."
If an LLM wrote the code, and you then reviewed it, tested it thoroughly, and made sure you could explain how it works—that's not vibe coding. That's software development with AI assistance.
The distinction matters because it's the difference between professional practice and a risky shortcut.
Let's look at where the industry actually is:
Stack Overflow's 2025 Developer Survey:
Y Combinator Winter 2025:
Vercel and Netlify:
The definition of "developer" is expanding. But expanding the definition doesn't change the requirements of production software.
Here's how I think about choosing your approach:
The art is knowing which level matches your current context.
This is Part 1 of an 8-part series. Here's where we're going:
Part 2: The AI Babysitter Problem
Senior developers ship 2.5x more AI code than juniors—but spend 40% of their time fixing it. We'll explore why the math still works.
Part 3: The Reviewer's Toolkit
A practical checklist for reviewing AI-generated code. Security red flags, hallucination patterns, and the context drift problem.
Part 4: Building Intuition
After 1000+ hours of AI coding, patterns emerge. How to predict when AI will fail—before it does.
Part 5: The Junior Developer Survival Guide
AI eliminates the discovery phase of learning. How juniors can build real skills while using AI tools.
Part 6: Vibe Coding for Production
The workflow that separates weekend projects from production code. Plan → Act → Review → Repeat.
Part 7: The Enterprise Adoption Playbook
Governance frameworks, training programs, and the business case for professional AI-assisted development.
Part 8: The Future of Vibe Coding
Where this is heading—agent-to-agent protocols, autonomous coding agents, and the evolution of developer roles.
This series is for:
This series is NOT for:
The goal is practical wisdom, not ideology. AI-assisted development is here. The question is how to do it responsibly.
"Vibe coding" is real. It works. For the right use cases.
But the hype has obscured an important truth: the spectrum of AI-assisted development is wide, and where you operate on that spectrum should match your context.
Pure vibe coding is great for weekends. Production systems need more discipline.
The developers who thrive in the next decade won't be the ones who "give in to the vibes" completely—or the ones who refuse AI assistance entirely.
They'll be the ones who know when to vibe and when to verify.
Next in the series: The AI Babysitter Problem (Why Senior Devs Love It Anyway)
Ready to level up your team's AI development practices?
Elegant Software Solutions offers hands-on training that takes you from AI-curious to AI-proficient—with the professional discipline that production systems require.
Discover more content: