Andrej Karpathy coined the term “vibe coding” in February 2025, and it was never meant to describe what software engineers do.

He created it to describe a workflow where non-programmers describe what they want in plain English, an AI generates the code, and they accept the output based on “vibes” rather than actually reviewing it.
Even Karpathy himself positioned it as a tool for prototypes and throwaway builds. Not production software. Not applications real users depend on.
For an actual software engineer, that concept doesn’t really apply.
When you know how systems work, how code behaves, and what can go wrong, you can’t fully “vibe” even if you tried.
Your engineering instinct kicks in automatically.
You’re reviewing, questioning, adjusting.
That’s just how you’re wired at this point.
So the more accurate distinction is:
Vibe coders = non-engineers using AI to build things they don’t understand, end to end.
Engineers using AI = Engineers using tools to move faster while still owning the output completely.
They are not the same thing and they shouldn’t share the same label.
Which is why anytime I see a software engineer proudly say they “vibe coded” something, I begin to suspect them. 🌚
Because for a software engineer what this means is you’re admitting you didn’t properly review what you shipped or you’re misusing the term entirely.
Either way, suspicious. 🌚





