The Big Idea
LLMs and vibe coding tools are most powerful when they're used an an extension of your brain - not a replacement for it. Use your newfound superpowers to make yourself smarter, not just faster.
What the heck is vibe coding?
Vibe coding, in short, is when someone uses code-trained LLMs to write software, by writing instructions in plain English rather than writing code. Compare this to traditional software engineering, where a disgruntled developer pulls their hair out while yelling at their computer and slamming their hands on the keyboard until things work.
It's a vibe, man.
It's also much faster than traditional software engineering - but can be error prone, and is definitely susceptible to Dunning-Kruger failures.
Understandably, it gets a bad rap, depending on who you ask. With that said, vibe coding tools are also improving at a face-melting pace, and are only going to get better.
What everyone gets wrong about vibe coding
A lot of people (especially those who are not developers) think vibe coding tools like Cursor, Copilot, and Claude are meant to replace developers. Or, at least, that they write “perfect” code on their own.
They don’t. And they’re not supposed to.
These tools are relentless, energetic, and patient, but they’re not experts. They're more like brilliant interns: fast, eager, and often wrong, despite their endless enthusiasm.
Tireless, not genius
Cursor, Copilot, and Claude are the most patient pair programmers I’ve ever worked with. They never get tired. They never rarely complain.
Vibe coding tools will happily try something five different ways, rewrite and refactor until we land on something that works. They persevere energetically in times when even the most seasoned engineers might decide to move on to something else.
However: don't mistake their speed and relentlessness for expertise.
My advice is to treat your vibe coding tools like interns: smart, curious, and motivated, but often missing the bigger picture. They need direction. With proper guidance and context, they can be effective problem solvers. They're also damn good at coming up to speed on new frameworks and libraries.
Vibe coding makes the hard stuff easier
Writing software tests used to be an engineering chore I quietly avoided. I'd lean on my peers to help ensure code was tested thoroughly (have I mentioned how lucky I am to be able to work with people smarter than me?).
A huge benefit of the speed enabled by vibe coding is that it makes writing tests far more satisfying. Any engineer who has been doing the job for long enough can give you a laundry list of anxieties they have about how things can go wrong: timezones make dates a nightmare, off-by-one errors plague everything, and you never know when someone will use an emoji in a place you weren't expecting.
Here's what I love: vibe coding tools make it way easier to write tests. Lots of them. From minitest and rspec in Rails to jest, playwright, and @testing-library/react in JavaScript projects, I can describe a test in natural language, like “a user shouldn’t be able to create overlapping calendar events,” provide the tool a little bit of context about which files to test, and it'll write the test for me.
Context and communication is the root of it all
Cursor is my primary IDE at the moment, and I really love their built-in [docs indexing system]. It takes a link to docs for the libraries and frameworks I’m using, and Cursor goes to work indexing them.
In a few moments, Cursor gets up to speed on the tools my team is using. I still have to provide plenty of steering - real-world context is something the robots haven't figure out yet, thankfully.
It's allowed me to grow a skillset that was my weakest after 20+ years of writing code - I'm growing a muscle for writing tests, hardening my apps, and using the incredible frameworks that I never took the time to learn before.
Learn while you build
Using vibe coding tools is easy. You can generate entire apps without writing a line of code. You can just float on autopilot, and hope it all works out. That's the easy path.
The other path is to treat vibe coding tools like the best interns you've ever had. They'll help you level up if you invest in giving them clear guidance, context, and corrections.
Don’t let these tools make you lazier. Let them make you better.
That’s the part everyone gets wrong.
More reading on vibe coding
- I recently came across We need to talk about vibe coding from Giorgi Kobaidze. It's a great overview of the current state of vibe coding, and a worthwhile read.