On vibe coding: software engineers must be vocal about engineering
Do you remember the joy and excitement when you first started coding? If you were anything like me, it quickly became your main hobby. Something you’d do any chance you got. Even years later, it’s still my main hobby. It should be no surprise to any of us that vibe coders are delighted with what they can create, without the years of experience or knowledge.
Except those years of experience and knowledge are important.
Software engineers have done themselves a disservice by years of talking about “beautiful code”, “code ninjas”, and “tech wizards”. It has given outsiders the perspective that code is an art, something that has no significant meaning beyond cultural significance. Expect, it’s not.
Code turns logic into a tangible artifact, a repeatable pattern. Mathematics does the same. But the level of abstraction is high enough in code that we can nitpick over naming or styling. Regardless, code is a manifestation of logic.
As non-developers get their hands on LLMs, they’re ignoring the logical engineering approaches which software engineers follow. Their AI claims it is right, after all.
Should we blame the vibe coders for ignoring these practices? If they’re using production data, or deploying to production, a little bit. But the root problem doesn't go away by pointing fingers at early adopters. The root problem is that software engineering is not understood.
Drawing rivalries of “us vs them” isn’t useful. The vibe coders will continue regardless of how loud anyone protests, even if the protesting comes from experts or reporting lines.
While I’ve personally found generative AI largely low quality, I still think it can be a useful tool. In software engineering, we’ve spent years debating different tools. We know the saying “when all you have is a hammer, everything looks like a nail”. Vibe coders don’t know about the screwdriver, the drill, the spanner. They also don’t understand the limitations of the hammer.
Not every vibe-coded app requires expertise. If it’s a prototype thrown away after a week, then there’s no harm in terms of software engineering. But when you give people the ability to create things or solve problems in exciting ways, they become attached to their creations. Vibe coders will not throw away their smashed up wall, no matter how many holes it has in it. They aren’t aware of the holes. Again, their AI tells them it can fix anything and everything.
So, what can software engineers do?
I have no idea. And it fills me with existential dread to see all the things I value being torn down:
open source code has been shamelessly cloned by those who were trusted to look after it, and is now polluted beyond repair
the natural filter of ideation and development via a bottleneck is replaced with “let’s do all the features”
small features have large, messy code
security, intentional slowness has been replaced by “get X out the door ASAP”
resilience and reliability doesn’t exist when someone ships code they don’t understand
experts are being ignored, and companies are pushing ahead on hype alone
The clear path ahead, to me, is filled with chaos, security and privacy breaches, and downtime. We are already seeing the consequences of AI code reaching production: downtime across Big Tech.
We can’t educate everyone with access to an LLM about software engineer. If you give them things to read, they’ll ignore it. Software engineering has never needed degrees to be accomplished: but it has required experience and understanding, usually earned through interest. Generative AI tools lets vibe coders skip the experience and the understanding.
I don’t know the right answer. But I know that software engineering needs vocal voices to speak about the expertise, because being software engineers, we are often too eager to jump onto whatever the most fashionable tool is without much consideration for is this right?
I have some hope. After all, this isn’t the only inflated hype bubble that we’ve run into. I think the clearest path I see:
Move away from Big Tech models ASAP to cut through the massive moats being built through huge amounts of capital
Unions and academia should work to define what it means to do software engineering as it is in some countries. It should be a licensed activity. Anything else is “sparkling vibe-based text generation which happens to look like code”. Clearly define the difference between engineering and vibing. There are plenty of good use cases for AI. Deploying to production is not one of them. The practices of software engineering need to be clearer to non-developers.
Educate the vibe coders as quickly as possible, so they actually understand the impact of their code on companies, systems, and worst of all - their software engineering expert colleagues.
Run vibe coding tools remotely, in containerized environments via a web browser. Definitely not running code on local devices.
I don’t know.

