It's me!

Karl Daniel

From Script Kiddies to Vibe Coders

A recent video from Y Combinator, introduced the concept of "vibe coding" - a term that essentially encourages engineers to fully embrace a more fluid, AI-driven approach to building software. The premise is simple; let go of the tedium of writing and maintaining code yourself, and instead, allow an agentic AI to handle it - quirks and all.

At first glance, this might sound like a dream scenario. However, for anyone with the capacity for critical thinking, this so-called "reality" should be enough to evoke a sense of existential dread.

Software engineering has always been a discipline that demands and benefits from both precision and deep comprehension. It’s not just about getting a program to run — it’s about understanding how and why it runs the way it does. This is what leads us to making the architectural decisions that we do.

Vibe coding flips this principle on its head. With AI in the driver’s seat, engineers are asked to relinquish responsibility for the logic behind their code. Got a bug? No problem—ask the AI to fix it or just roll again. Need a new feature? Let the AI generate it from scratch. There’s no need to understand the intricate workings of the solution (if indeed it even gets to one), only the output it produces.

While this may seem efficient on the surface, it introduces significant risks. Relying on AI without a foundational grasp of the underlying code makes it far easier for security vulnerabilities, inefficiencies, and architectural flaws to slip through unnoticed. Worse still, it promotes a culture where engineers are incentivised to prioritise short-term speed over long-term quality and maintainability.

If this is giving you a dreaded feeling of déjà vu, that's because it should. The advent of copy-paste in the mid-70s enabled a similar phenomenon. "Script kiddies" - amateur coders who copied chunks of source code without understanding it were the pioneer "vibers", often able to produce functional, but flawed, software with minimal knowledge of how it worked.

Yet, despite the proliferation of script kiddies, skilled engineers were never threatened. The ability to build scalable, secure, and reliable software requires more than just cobbling together pre-written snippets. It demands thoughtful architecture, attention to detail, and domain expertise. The same holds true today. AI-assisted development can accelerate productivity, but it is not yet capable of replacing the nuanced skill of seasoned engineers.

To fully embrace AI based vibe coding at an enterprise level right now, is the equivalent of getting a toddler to run a marathon. It might get off the starting line - but it's definitely not going to finish the race alone.

Vibing

The "vibes" seem pretty off here.

To be clear, this is not a rejection of AI in development — it’s a caution against blind dependence. AI is a powerful tool for automating repetitive tasks, generating boilerplate code, and even identifying potential issues. Used properly, it can free up engineers to focus on higher-level problem-solving and creative thinking. However, the key is to wield AI as a tool for enhancement rather than replacement.

When developers allow AI to take full control without supervision, they become mere operators rather than engineers. This mindset is not only creatively stifling but also dangerously short-sighted. By treating AI as a collaborator rather than a crutch, developers can leverage its speed and efficiency while still maintaining the deep technical expertise needed to create secure, scalable software and have a meaningful impact.

#development #thoughts