BitTorrent's Creator Has a Message for Vibe Coders: You're Eating Poison
Bram Cohen built BitTorrent. The protocol has survived for over two decades, which is roughly fourteen lifetimes in software years. So when he looks at the vibe coding craze and calls it “eating poison,” it’s worth pausing the Cursor tab-complete for a moment to listen.
What Vibe Coding Actually Is
The term comes from Andrej Karpathy, who coined it on social media earlier this year. The idea is simple: describe what you want in plain English, let an AI generate the code, and ship it without reading too closely. Karpathy meant it half-jokingly — you “surrender to the vibes” and stop trying to understand every line.
The joke landed a little too well. What started as a tongue-in-cheek description of weekend prototyping has turned into something people do with production code. Startups brag about shipping features in hours. Solo founders build entire apps without writing a line themselves. The promise is intoxicating: software development without the development part.
Cohen’s Real Objection
Cohen isn’t making the lazy argument that AI-generated code is bad. His critique cuts deeper: the problem is acceptance without understanding.
Dropping code you didn’t write and can’t explain into a production codebase isn’t accumulating tech debt. It’s planting time bombs. When something breaks — and it will — you can’t debug what you don’t understand. Sure, you can ask the AI again, but LLMs don’t remember context between sessions. You end up in an endless loop: AI generates fix, fix breaks something else, AI generates another fix.
What really bothers Cohen is that this fundamentally violates dogfooding culture — the practice of using your own product to ensure its quality. The person who designed the BitTorrent protocol from scratch believes developers should understand and take responsibility for every line. Vibe coding is the opposite: nobody owns the code because nobody understands it.
The Skill Atrophy Problem
The more interesting part of Cohen’s argument isn’t about code quality at all. It’s about what happens to developers themselves.
Writing code forces you to decompose problems, design structures, and think through edge cases. That process is the training. It’s how engineers get better. Vibe coding skips the entire workout and goes straight to game day.
An athlete who stops training can coast on muscle memory for a while. But the decline is inevitable and usually invisible until it’s too late. The same applies to developers who outsource their thinking to a model. You don’t notice the skills eroding until you’re staring at a bug you can’t reason about.
The Line Between Using AI and Depending on It
Cohen isn’t a Luddite. There’s a clear distinction between using AI as a tool and surrendering to it.
Using Copilot to scaffold boilerplate, check syntax, or brainstorm refactoring approaches? That’s leverage. Reading, understanding, and then integrating AI suggestions into code you own? That’s productivity. But copying AI output wholesale into your project without comprehension — that’s not tool use. That’s delegation to a system that doesn’t understand what it built.
The developer community is split on this. One camp celebrates vibe coding as democratization — non-developers can finally build apps. The other camp points to the growing pile of evidence: AI-generated code routinely ships with SQL injection vulnerabilities, broken authentication flows, and other security basics that any experienced developer would catch on review. The code works until it doesn’t, and when it doesn’t, it fails in ways that matter.
Why Dogfooding Still Wins
The thread running through Cohen’s critique is a single word: accountability.
BitTorrent didn’t survive 20-plus years by accident. It survived because its designer used it, understood every decision in its codebase, and maintained it with that full context. Every architectural choice had a reason. The person doing maintenance knew what that reason was.
Vibe-coded software has no reasons. Why does this function work this way? Why this data structure? Nobody knows — including the AI, which will give you a different answer next time you ask.
If Cohen’s warning makes you uncomfortable, that’s probably the point. Someone needs to ask the question while the rest of us are high on the productivity gains: do you actually understand the code you shipped today? Can you explain every line of your last commit? If not, you might want to figure out who — or what — can.
Deepen your perspective
Comments
Loading comments...