

Vibe Coding: When Describing Software Became the Same as Writing It
In February 2025, Andrej Karpathy named the thing everyone was already doing: writing software by describing what you want and accepting what the AI produces, without reading the implementation.
On February 2, 2025, Andrej Karpathy (former Tesla AI director and OpenAI co-founder) posted on X: "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." The framing was deliberately casual, but the phenomenon it named was real and accelerating: software development where the programmer describes desired behaviour in natural language, an AI model generates the implementation, and the programmer accepts, tests, and iterates, without reading the produced code line by line. Karpathy was not prescribing a workflow; he was observing one that already existed at scale.
The tools that enabled vibe coding had accumulated for several years. GitHub Copilot (2021) introduced AI-assisted inline completion. Cursor, a VS Code fork that launched in 2023, built an IDE around the workflow: select any code, describe the change, the model rewrites it. Replit's agent mode could scaffold a full application from a prompt. By early 2025, AI coding assistants were generating a meaningful fraction of new code at companies that had adopted them. The developer who once spent an hour writing a database migration could now describe it, verify the output, and deploy it in minutes. The productivity gains were real and measurable.
Karpathy's framing captured a genuine cognitive shift. Traditional software development required holding the full implementation in mind: every variable, edge case, and state transition. Vibe coding externalised implementation to the model and redirected human attention toward intent and verification. The developer's mental model shifted from "how is this built?" to "does this do what I need?" This is not a degradation of engineering: it is a reallocation of attention toward the harder problem of specifying correct behaviour. The risk is that the gap between "works in the demo" and "correct in production" is now populated by code nobody has read.
The failure modes were different from traditional software development. Vibe-coded systems could be locally coherent (each piece looked plausible) while being globally incoherent: accumulating silent assumptions, building on inconsistent abstractions, or containing security vulnerabilities in code the developer had never reviewed. The test suite became the primary engineering artefact: without tests, there was no mechanism to verify that vibe-coded software did what it appeared to do. Teams that shipped vibe-coded systems without proportionally investing in test coverage were accumulating technical debt that looked like velocity.
By mid-2025, most software companies were treating vibe coding as a policy question, not a technical one. Some teams embraced it for internal tooling and prototyping while maintaining human-reviewed standards for production paths. Others prohibited it for regulated codebases. The underlying dynamic, that the ratio of human-reviewed to AI-generated code was shifting toward the latter, had no obvious stopping point. Code review, security review, and architectural oversight had to adapt to a world where the first draft was always AI-generated, not occasionally. Karpathy had named something that was already happening. The name stuck because it captured exactly how the activity felt.
What it actually meant
Vibe coding shifted the cognitive profile of software development from implementation to intent. The developer's mental model moved from "how is this built?" to "does this do what I need?" This is not a degradation of engineering: it is a reallocation of scarce human attention toward the harder problem of specifying what correct behaviour looks like. The risk is that the gap between "works in the demo" and "correct in production" is now filled by code nobody has read.
What enterprises get wrong today
Teams adopt AI coding tools and measure productivity by lines of code or features shipped per sprint. The right metric is defect rate and production incident frequency. Vibe-coded systems can appear to ship faster while accumulating technical debt and unreviewed security vulnerabilities that manifest months later. Speed at the generation layer is meaningless if review and test discipline does not keep pace.
Related capabilities
More from Moments
Ask about this story
Karpathy coined "vibe coding" in February 2025: programming by describing what you want and accepting what the AI produces, without reading the implementation. He was naming something that was already happening at scale. What would you like to explore: the tools, the failure modes, or what it means for software engineering as a profession?