Vibe coding
Karpathy gave it a name and now I can't stop noticing when I'm doing it.
Andrej Karpathy tweeted a phrase recently and it's been stuck in my head.
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's describing the mode where you tell an LLM what you want, accept whatever it writes without really reading it, run it, and if it breaks, you paste the error back and let it fix itself. You are not writing code. You are steering code.
Two things about this:
It actually works for a surprising range of tasks. Throwaway scripts, one-off data transformations, weekend side projects where the cost of a bug is zero — vibe coding is faster than real coding, and the output is fine because nobody is ever going to look at it again, including you.
It stops working the moment the code matters. The second something has to run in production, or be maintained, or be understood by someone else, the "forget that the code even exists" part becomes a liability. You end up with software you own but don't understand, which is the worst kind of software to own.
What I think Karpathy actually identified is that there are now two distinct activities that look the same from the outside. One is engineering — you still need to understand every line. The other is prompting a tool that happens to emit code, where the code is an implementation detail of getting an outcome. Treating them as the same thing is where people get into trouble, in both directions. Engineers who refuse to vibe code waste hours on throwaway scripts. Vibe coders who refuse to engineer ship things that collapse under their own weight six weeks later.
The trick, which I'm still figuring out, is knowing which mode the current task calls for before you start typing.