I started writing code when I was ten. Eight years later, the thing I grew up doing is changing faster than at any point since I began. This is how I see it.
Before it had a name
I joined Cursor about 700 days ago, back when it was a small startup that had raised an $8M seed round and had less than 40,000 users. GPT-4 was the best model available and Claude 3 Opus had just come out. Today that same company is worth $29.3 billion.
My Cursor year-end stats from December 2025. When I first opened this app, none of these models existed yet.
My OpenAI account goes back even further. I created it around April 2022, seven months before ChatGPT launched. I was fifteen and messing around with GPT-3 in the playground because I’d read somewhere that it could write code for you.
My OpenAI account age as of October 2025, created months before ChatGPT even existed as a product.
My “Year with ChatGPT” stats from December 2025. The 11.78K em-dashes was my biggest gripe about the tool.
Andrej Karpathy coined “vibe coding” in early 2025. By the time the discourse started, I’d been doing this for over a year already.
The problem with vibe coding tools
Tools like v0, Bolt, and Lovable produce slop. I’ve tried all of them and I’ve never shipped an output from any of them in a project I cared about. They’re fine for internal dashboards and throwaway prototypes, but the moment someone tries to build a real product with them, things fall apart in ways that aren’t just ugly but actually dangerous.
A friend of mine vibe-coded a basketball tournament system where people could sign up, form teams, pay into prize pools, and compete for winnings.
This is what happens when non-programmers ship production software with AI. The code compiles, the demo works, and underneath it’s a mess. My friend’s app is a small-scale example, but imagine the same negligence applied to a fintech product or a healthcare system.
AI is brilliant if you know what you’re doing
I don’t think AI-assisted coding is bad. I think it’s the biggest productivity gain in the history of programming, and I rarely write code by hand anymore. The only times I do are when I’m writing code for fun - because programming really is a beautiful thing to do with your hands - or when I’m sitting exams at school where they still make us write code on paper.
DHH said something on Lex Fridman’s podcast that stuck with me - “The joy is to command the guitar yourself. The joy of a programmer, of me as a programmer, is to type the code myself.” I feel that. I grew up with programming and I still enjoy doing it myself. But for real work, I use AI constantly.
The difference is that I understand what it generates. When Claude writes a React component I can read it and tell what’s wrong. When it scaffolds a database schema I know if something’s missing. I’m not accepting code blindly - I’m reviewing it the way I’d review a pull request from a junior developer who’s fast but sometimes careless. Remove the programmer from that loop and you get my friend’s basketball app.
What actually matters
The “AI can only do boilerplate” take is outdated. Karpathy recently left an agent running for two days doing autonomous ML research, and it found twenty real improvements that transferred to larger models. These aren’t toy demos. But what gets lost in stories like that is why it worked for him - not because he copied a better prompt off LinkedIn, but because he has two decades of understanding what “working” looks like and what to do when it doesn’t.
An LLM will go back and forth with anyone. Someone with no background can tell it to build them an app and they’ll get something back. The tool doesn’t gatekeep. But the output you accept is only as good as your ability to evaluate it. A programmer and a non-programmer using the same tools get wildly different results because one reads the output and sees what’s missing, and the other sees a working screen and ships it. AI didn’t close the knowledge gap - it made it invisible.
Language models also have real limitations. They hallucinate. They pattern-match against training data and degrade unpredictably on novel problems - what Karpathy calls jagged intelligence. Every major lab is still working on this, and AGI remains a promise, not a product. A study by METR found developers using AI felt twenty percent more productive but were actually nineteen percent slower. The non-technical founders vibe-coding their startups are a version of this at scale - building on foundations they can’t inspect, accumulating technical debt at the speed of generation with nobody who can pay it down.
What actually matters is understanding systems. Not writing code, not engineering prompts - understanding what you’re building, why, and what correct looks like. That’s the thing that separates useful output from dangerous output, and no amount of tooling has changed that.
What worries me
The bar is dropping. Not just for whether software works, but for how good it actually is. The micro-interactions, the feel of using it, how thoughtful the experience is - all of that gets lost when the person building it doesn’t understand what makes software good to use versus just functional. There’s a massive difference between “it works” and “I want to keep using this,” and vibe-coded products almost never cross that line.
There’s also a commoditization problem that I don’t think enough people are thinking about. If your product is vibe-coded, what’s stopping me from vibe-coding my own version in a day? People already do this. The moat for software used to be that it was hard to build. That’s gone. The new moat is craft - the taste, the polish, the deep understanding of what the user actually needs. If you don’t have that, you don’t have a product. You have a template that anyone can reproduce.
I also think about people starting to code right now in 2026. I spent years staring at error messages, tracing bugs through systems, building the kind of intuition that only comes from struggling with something until it clicks. I got lucky with my timing - I had eight years of that before AI made it optional. I don’t know what it looks like for someone who starts today and never has to sit with that discomfort. The understanding has to come from somewhere, and I’m not sure where it comes from if the struggle is removed entirely.
Where this is going
The leverage that AI gives a single programmer is unlike anything that’s existed before. I already feel it in my own work. But I think the thing that’s going to define the next decade isn’t the tools themselves - it’s the widening gap between people who use them with understanding and people who use them without it. Both groups will ship software. Only one group will be able to maintain it, scale it, and fix it when it breaks. I’ve been at this long enough to know that the years I spent learning how things actually work are the reason I can get so much out of these tools today. I don’t think that changes anytime soon.