Vibe coding vs AI-assisted engineering: know the difference

laptop screen displaying colorful code

The term vibe coding is everywhere in 2025, usually used as a mild insult aimed at any engineer who touches an AI coding tool. That usage is wrong, and according to engineer Stephen Begot writing for Malt Engineering, it is costing real productivity.

What Karpathy actually meant

Andrej Karpathy, a founding member of OpenAI and former Director of AI at Tesla, coined the term on February 6, 2025. His definition was specific:

“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 key phrase is forget that the code even exists. Vibe coding means accepting every diff without reading it, pasting error messages back until something works, and never looking under the hood. Karpathy himself flagged this as appropriate only for throwaway weekend projects and prototypes, not production. The term became Collins Dictionary’s Word of the Year 2025, which is roughly when its meaning started getting blurred.

3D rendered ai text on dark digital background

The actual line that matters

AI-assisted engineering is the other end of the spectrum. The engineer generates code with an LLM, then reads it, understands it, tests it, and owns it before committing. Addy Osmani at Google drew the same distinction explicitly. Simon Willison put the line as plainly as possible:

“I won’t commit code that I can’t explain exactly what it does.”

The dial is not whether you typed the code yourself. It is one question: do you understand and own what ships to production? Delegating the typing is fine. Delegating the judgment is vibe coding.

️ The parallel agents advantage

Begot’s piece makes one practical point worth taking seriously. A single engineer is single-threaded. You kick off a test, you wait. You rebase a branch, you wait. Steered agents remove that wait.

While one agent fixes a pipeline, a second can review a colleague’s pull request, a third can summarise a spec, and a fourth can scaffold the next ticket. Begot ran more than ten agents simultaneously and reported his MacBook’s battery dropped while plugged in because the charger could not keep up.

The catch is honest: four agents finishing at once means four reviews to do with one brain. Accept those outputs without reading them and you are vibe coding at 4x scale. The bottleneck moves from execution to your ability to split, frame, review, and decide.

Tasks that hand off cleanly to AI

  • Reading a Jira ticket and drafting an implementation plan
  • Opening a pull request, reading CI output, diagnosing a failing job, and pushing a fix
  • Rebasing and resolving trivial merge conflicts
  • Monitoring a deploy and flagging regressions
  • Running a first-pass review of a colleague’s diff with targeted comments
  • Summarising a spec or RFC into something actionable

The common thread: well-scoped, verifiable, and low cognitive value but high time cost. Exactly the work that frees up an engineer’s brain for architecture decisions the agent should not be making.

The operator takeaway

If you use Claude Code, Cursor, or any agent-based coding tool and you read every diff before merging, you are not vibe coding. You are just faster. The label belongs to the practice of handing judgment to the machine, not to the tool itself.

Stay on top of AI & Automation with BizStack Newsletter
BizStack  —  Entrepreneur’s Business Stack
Logo