There has been some hype around vibe coding in the last weeks. YCombinator recorded a podcast episode on the phenomenon. I often get questions from founders and investors about how AI will change a programmer’s work.

We have been using GitHub Copilot and other (AI-powered) code completion tools for a while now. Editors like Cursor and Windsurf are getting better every day. I have been playing around with the latter for a pet project in the last weeks. Similar to what YC’s research surfaced, these editors are incredible in going from zero to one quickly. Still, you need to understand the code those editors are generating. Especially because LLMs are still terrible at debugging code. They are perfect for prototyping, maybe to create an MVP, but not to build a MAP or anything beyond that.

With the rise of powerful programming frameworks, open-source components, ready-made design systems, and now, code generation tools, the lines of code an engineer needs to write to deliver a feature have only decreased over the last decades. People often seem surprised when I explain that the value is not in the code itself but in the thinking that went into it.

In the podcast, the YC folks argue that software engineers will morph into product engineers thanks to vibe coding. This has nothing to do with vibe coding; this trend has been going on for years. Some people call it the 10x engineer. Ultimately, it does not matter which tools you use to get the result; humans will still do the creative part.

Another critical element is that you must know the limits of the tools at hand (and thus the code they generate). LLMs will not soon solve complex software architecture problems. We like to think of them as junior developers.

This brings me to another realisation: the step-up for junior developers to become software engineers will become much more challenging. Experience is what defines a senior engineer. How can inexperienced (junior) developers gain experience if LLMs take up their work?