
The Ship of Theseus
Catching a Vibe
As DienerTech evolved from an idea into reality, something remarkable happened to my coding workflow: it got faster. Much faster. Commits became bigger, more ambitious, and far more rapid. How? Welcome to the world of ✨ Vibe Coding ✨.
Vibe Coding is the emergent phrase describing the use of tools like Cursor or Claude Code to generate code via prompting. Much like AI has been able to generate art via prompting (such as Stable diffusion or DALLE), so too can it now generate code. Lots of code. This is far beyond what an AI-enhanced auto complete can do. We are talking about the ability to generate coherent changes to multiple files simultaneously. With carefully crafted prompting, it seems the generative AI can literally go and build a website for you. Or code up a video game. Or implement a whole API. With just a few carefully crafted prompts, you can watch entire applications emerge practically from thin air.
I don't (yet) get to use these tools in my day-job, but that day is coming. Industry leaders across the board are claiming that 90%, 95%, 99% of the code written in the future, will be generated by various AI systems. And by 'the future'? I mean by the end of this year. That's, ah, pretty wild? Concerning? Incredibly cool? Every reaction is appropriate here, so don't hold back. This is the stuff of the future. And yet, even most sci-fi authors seemed to undersell just how articulate and capable AI could become. Those that embraced Strong AI usually have it resulting in happy endings like.. The Matrix. Or The Terminator. Even Wall-E had everyone fat and hopelessly addicted to their computer screens. hmm.. concerning.
Yet, even as I marveled at the accelerating pace of AI-driven development, a deeper, more philosophical question began tugging at my mind: In an era where AI writes so much of our code, what exactly is it that defines us as software engineers? This brought me to the ancient thought experiment known as the Ship of Theseus.
Engineers on a boat
The Ship of Theseus is an ancient philosophical question that concerns identity. If a ship regularly has bits of itself replaced over time - is it still the same ship? If these discarded bits were later re-assembled into a new ship, is that ship now the original ship? What does it mean to be a 'thing'? When does this become that, and when does that no longer exist?
These are questions I found myself pondering as I built this website. Even from conception, I was using ChatGPT to help with mapping the various technologies I want to use, or the hosting options I should consider. ChatGPT also helped me with some initial scaffolding of core pages and components, saving time staring at an empty page and getting something stood up to work against.
So right from the start, can we say this is my own work? What does it mean to write code, to be a software engineer? Is it about the number of lines of code? Or the cyclomatic complexity? Is it about shipping the end result, or perhaps it's about the bugs we made along the way? Early autocomplete systems in IDEs were sometimes derided as 'not real programming' by the grey-beards of the era. If that's the case, then nobody has written 'real code' for some twenty odd years!
If I were chasing home-grown, organic code, perhaps I'd go a very manual route, and write everything by hand. Furthermore, let's say I avoided the meme of Javascript frameworks, and wrote this website entirely in old-school HTML and CSS. Maybe just enough Javascript for a good old onClick()
event binding here and there. Would this then be my own work? Because I'm not so sure.
Even basic HTML tags today represent groundbreaking technology invented decades ago. The very act of using these common tools is already standing on the shoulders of giants. Even before AI came into the mix, every language I've ever learned represents a high level abstraction or another. Naturally, there is an XKCD for this:

The alternative to the digital nihilism discussed above is perhaps even bolder to contemplate. Maybe, just maybe.. all of this work is mine. Regardless of the tooling used to build it, this website represents the culmination of a significant amount of effort. If we count some early prototypes and experiments with different front end technologies, then I've been at work on this for several years. My work output has certainly intensified the last month or two, and I will happily cite generative coding for both the inspirational energy and force-multiplier for that effect.
Despite the rapid market saturation of the term, I am also not convinced that ✨ Vibe Coding ✨ by itself will get you to a completed project. It can certainly build a prototype, and there is great value in rapid, easy prototyping. A finished, production-ready application has deeper requirements. You must truly immerse yourself in the code, and in the live application of that code, to build something of quality. An attention to detail is paramount. Generative AI is a truly amazing multiplier, but it is not (yet) an all-in-one, perfect solution to coding. This appears to be the case for all generative AI tools - they are amazing in application, but it still takes a skilled hand to wield the tool into a production-ready result.
Generative AI is an astonishing multiplier, accelerating our ability to craft ambitious projects like DienerTech. Yet, true engineering involves more than just raw output — it demands careful judgment, intentionality, and a deep commitment to quality. The Ship of Theseus question persists: Is this website genuinely my creation? My answer, at least for now, is a resounding yes. AI tools amplify and augment, but ultimately, the choices, intentions, and vision are undeniably human. Whether this remains true as the technology continues to evolve is the real mystery — one I look forward to exploring further. For now, I'm content knowing this ship is ready to set sail, regardless of precisely how it was built.