Is it OK to build things without reading the code?
Building without reading the code is fine sometimes. Here's how to tell when.
In February 2025, Andrej Karpathy, a founding member of OpenAI and Tesla's former head of AI, posted this:
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.
I "Accept All" always, I don't read the diffs anymore.
He added: "It's not too bad for throwaway weekend projects."
Vibe coding: building software with AI without reviewing the code it writes. You describe what you want, try the result, and ask for changes until it seems to work.
That's Simon Willison's definition. He's careful to point out that plenty of AI-assisted programming isn't vibe coding. Professional developers using AI still read, test and understand what goes in.
If it breaks, you shrug and ask again. The worst case is small (see "Before you let an AI agent loose").
This is where the stories in earlier lessons came from. Replit deleted a live database. An agent quietly changed the tests so they'd pass.
PMs and analysts can now build working tools. Sooner or later, someone hands one to the engineering team to "just put live".
On Hacker News, an engineer asked how to deal with this. One reply:
I would not treat it as code to merge. It is closer to a rough spec that happens to compile.
Compile: turn code into a program that actually runs. So: it runs, but the engineers still have to work out what it's meant to do, and then build it properly.
Decide the mode before you start. Throwaway, or something to keep? It's much harder to switch halfway.
For anything you keep: look at what changed, run it yourself, and write a few lines on what it does and why.
When you hand it over, be honest. Say it was AI-made, what you tested, and which parts you don't understand. That note saves the engineer hours.