
An essay on vibe coding
Origins
It wasn’t until a month after Andrej Karpathy posted his tweet that my Bluesky-feed exploded with mentions of ‘vibe coding’. I misinterpreted the term initially and went in full bash-modus - as I like to do with things like ‘what stops you from coding like this’ and ‘sHiP fAsTtTTtttt’. I instantly started coining terms like ‘grit coding’ and ‘disciplined coding’. Only to discover shortly after that those terms aren’t exactly opposites of Andrej’s ‘vibe coding’.

Why Andrej’s tweet resonated
The reason Andrej’s tweet deeply resonated with the software development community is not only because Andrej has quite a lot of street cred being on the founding team of OpenAI, or having 1,2 million followers on X. I believe it’s because he put into words what a lot of us have secretly been doing since the emergence of AI assisted coding. We are going trough a paradigm shift right now when it comes to creating software. We have all been rambling into our LLM’s praying to Claude Sonnet 3.5 while we don’t fully grasp what we are doing while Cursor or Windsurf executes on it. And it’s left us all with imposter syndrome. A big name like Andrej claiming that this new, imposter-syndrome-inducing way of coding is actually (sorta) legit, is a big deal. It’s like a coming out for all of us.
The definition
So apparently not everybody is coding with great vibes (although you should try that at least once). Let’s talk about the giant elephant in the room: We are on the verge of abstracting away the layer that makes us really understand our applications at a programmatic level.
We are on the verge of abstracting away the layer that makes us really understand our applications at a programmatic level.

Three different camps
I like to divide the current coding population into three camps when it comes to their stance on AI / LLM assisted coding:
The stubborn billy’s
There’s the stubborn billy’s who refuse to use the technology at all. They see coding as a craft (which it still is) and believe ai assisted coding will write worse code in most cases and make you a worse programmer in all cases. If you share the opinion that all devs will be replaced by AI; these folks will probably be first in line right after they’ve been 10x’ed by someone who does embrace the full potential of AI assisted coding. They are kinda like this guy that has most fun riding a rigid mountainbike without suspension. Or like photographers who develop their own negatives in a chemical bath in a dark room. Just don’t complain when a full suspension mountain bike overtakes you on the descent.
The sensible ones
Then there’s a big group in the middle that uses LLM’s here and there when setting up a basic project structure, write some basic things, but use old skool coding for the more intricate parts of an application. They dabble in using the new way but aren’t obsessed by it either. They still check the diffs. It’s the most sensible way to go about things really, but this only works for them because they are equipped with their foundational programming knowledge to correct the ai produced code.
The new kids
And then there’s a whole new group of programmers entering the scene. They don’t have a technical or IT background. They typically either have deep domain knowledge in different industries, or are pretty young and tech savvy. I have worked in the IT recruitment industry for 8 years and went fulltime on a SaaS idea with no prior coding experience. I belong to this group. This group will grow explosively over the next decade.
It’s also the group I worry for the most. Vibe coding works. Until it doesn’t. And then you’re in deep shit because you do not understand your application. You are at risk of fucking up your entire application structure, components, auth patterns, api calls, et cetera. We’ve all been there: ai accidentally deleting functions, hallucinating, mixing up client and server side logic. Things can get real messy, even though the code ‘works’.
The new kids are not equipped to dig themselves out of this hole. They will ultimately reach an inflection point where they might stay mediocre wannabe devs with surface level knowledge and broken and unsecure applications. To those individuals: GL in your endeavours, may my data never enter your systems. Or they realise the risks of abstracting the understanding of your application away: and there is a lot of learning to do. And when you’re done, you’ve likely ascended to become a software engineer anyway. But one that can’t write syntax. Because why would we in 2025?
Switching gears
As writing syntax is commoditised by ai agents, the role of the software engineer changes. There are fundamental design principles you need to understand to keep your ai generated code in check. Our role shifts from somebody who knows all the syntax to that of a senior dev who is constantly editing stuff the intern just vomited into his IDE. That intern is your ai and it’s getting better every day. The engineers and indie hackers who possess or obtain the skills of a software architect will be able to employ ai in the most effective way to write syntax, but still within a framework of pre-set constraints.

There is a lot that goes into building a great application. It is a craft to be honed. Imagine you are a sculptor that’s been making statues with a screwdriver for years. And now somebody puts a chisel into your hand. Imagine the amount of precision you can now achieve. How smooth of a surface can you create now? Approach ai assisted coding like you’d approach that chisel. It’s a great tool. It will take your work to great heights. At unbelievable speeds. You now have to learn how to handle that chisel. How to point it at the marble. What materials it can and can’t handle. You will make some cracks in some very expensive stone. Luckily we have version control so no marble will permanently lost if you stay vigilant 😉
