Vibe Coding is Driving
I make a plan of where I want to go and drive. That's what vibe coding is and its time for software engineers to develop judgment and adapt their senses.

AI assisted coding has taken off these past few months. Vibing is just a part of software development now, at least for me. But I've noticed hesitation in the dev communities I'm in. A year ago few tried or adopted tools, and today I see roughly the same early adopters with a couple more just starting to be curious. The rate of adoption and awareness is not increasing in proportion to the tools getting better. Therefore, I think it's a good time to write about my perspective. Hopefully it helps others grow their own understanding.
Driving a car
I want to take a moment to talk about what I think about for all the things a car does when I drive it.
I make a plan of where I want to go, grab my keys, open the car, sit down, put on my seatbelt, start the engine, check mirrors that I can observe everything I need to, shift from Park to Drive and then I go. All of that is incredibly natural to me now because I've been driving for years so I barely think about the steps I take. Underneath all that are countless ideas, machinery, and computer systems that took the original combustion engine concept and made propelling humans where they wanted to go a more and more accessible experience. And we don't usually think about any of that, we just use it.
To me there isn't much difference in vibe coding. I'd like you to keep that analogy in mind for the rest of this post.
How I got started
I started using Cursor in December and that was my first experience with what I would call modern AI assisted code. YOLO-mode sounded rather risky and I didn't try it until around the vibe coding phrase got minted and I started seeing AI initiatives really kick into gear all over the industry. The tools iterated, Model Context Protocol (MCP) discussion became a hot topic but I was too caught up in my awe of vibe coding at the time that I barely noticed the rebrand of YOLO to Autorun. I rewrote complex systems, conducted research, ran experiments, dabbled in vibing my blog, and generally just got comfortable going from little steps to walking. I read Geoffrey Huntley's "ngmi" take and it made sense to me, and while I knew it was important to keep learning and trying things I didn't really feel much different.
2 weeks ago I vibe coded my first MCP server from scratch with Firebender + Claude 3.7 [[1]][[2]]. I intuited developing each part of it while leveraging good software engineering. As its grew it become more useful at testing itself and making itself better since its possible to involve the MCP in the vibe coding loop - that was at first a happy accident and now is just how I work on it. I bet this project all by itself is going to reshape the industry and that's just the start. A lot of things are going to change in software. MCP is not a silver bullet, but it combined with other recent changes have started a gigantic rush to realizing new possibilities.
The Learning Curve
I think what gets lost in the ideological debates around vibe coding it has a pretty big learning curve. There are tons of examples of "I tried it and made something amazing" but that's survivor bias. Just as driving a car requires developing new reflexes and spatial awareness that humans didn't evolve with, effective AI coding requires developing new skills: prompt engineering, tool selection, knowing when to trust or verify generated code. The engineer need not be passive in this process... and in fact doing that is probably a recipe for eroding rather than upgrading skills.
Learning to code with AI assistance reminds me of the advent and evolution of automobiles. If the past 40 years was the industrial revolution in software engineering, ChatGPT's initial release was the Ford Model T – ChatGPT was pretty amazing and got millions of people into AI – but for software engineering it still required copy-pasting code with lots and lots of human intervention to get anything useful out of it much like the first automobiles. Today's AI coding tools are more like modern cars with advanced driver assistance. Just as then the technological progress increased accessibility.
Not all of us have experiences of learning to work a clutch. Yet almost every person remembers or knows someone who was nervous learning how to drive. Going at that speed is not something humans evolved for. It makes us uncomfortable and that anxiety creates is part of the shared human experience. Start-stop-start-stop might be something the generations to come will also have to learn.
I think that's where we are today with vibe coding. The engineers who will thrive in the next decade aren't those who blindly accept or reject AI assistance—they're developing judgment and adapting their senses. They're driving.
Footnotes:
- I'll write deep dives about tools and models in a future posts. Stay tuned.
- Here's my referral code for Claude, and maybe we both get 4 months free.
[[1]]: I'll write deep dives about tools and models in a future posts. Stay tuned.
[[2]]: Here's my referral code for Claude, and maybe we both get 4 months free.