Software Developers Are Doomed to Create Software
Will software development change? Yes, of course. Will we stop making software? No, we’ll still be creating software, just not in the same way as before.
For the last few months, a lingering question in our industry has been: is there still room for developers in this AI-driven world? My answer is yes, but we won’t be developing in the same way we have for the past 30 years.
My career dates back to my first professional coding job in 1996. Back then, we created software that had to be physically shipped to customers on some form of media. My most ambitious project was the work I did when the Dutch ISP Freeler was created . We wrote software and then put it on a CD-ROM to ship to customers. Later, the delivery medium became the web, which transformed all our distribution challenges. Programming languages evolved too, shifting from those focused on single platforms and distribution methods to more web-friendly languages.
And now there’s AI—technology that can think faster than us and has access to more accumulated knowledge. You can ask it to write an implementation of Dijkstra’s Algorithm and within seconds have one in your preferred language. All you need to do is verify it works for your use case and provide guidance to integrate it into your codebase. This verification and integration process exemplifies the symbiosis I see developing between human developers and AI tools—where machines generate code rapidly, but human expertise ensures its proper implementation.
If you follow AI developments closely, you might have heard about “vibe coding,” a state in which you surrender to the rhythm of coding with AI and allow it to make all the changes you want. This term was first coined by Andrej Karpathy and has gained significant traction. I have colleagues who have fully embraced this paradigm and produced some remarkable (sidenote: As far as I know, none of these projects have made it to production though) .
But there’s another side to this coin. Software development isn’t just about creating software—it’s primarily about understanding software. There’s a clear distinction: the art of creating software—writing code—becomes valuable when you understand what you’re building, and especially when you comprehend all the potential pitfalls. This generally marks the difference between junior and senior developers. Now, even someone who previously struggled to learn coding can create software with AI assistance, but they often lack the fundamental understanding of the software they’ve created. Without this deeper knowledge, they can’t effectively maintain, debug, or enhance their code when inevitable challenges arise.
These knowledge gaps manifest in concerning ways. For example, problems frequently emerge when developers lack fundamental knowledge, such as understanding that API keys should never be shared.
Or when they create products without proper security considerations, allowing users to access features in unintended ways.
For me, this paints a clear picture: AI can create beautiful and complex things, but it lacks the insights into software development needed to create something of sufficient quality. This is where current software developers come in—we provide the guidance and expertise to build good software.
I believe the role of software developers going forward will be to collaborate with our new AI tools to build better software. As Adarsh Gupta says, “Even if you built 100 projects and add them to your resume, your resume of ‘built 100 vibe apps’ means nothing if you can’t understand the fundamentals” While the creation process might become accessible to many new people, the actual process of making software work correctly will require even more specialized knowledge.