This article is a critique of Y Combinator’s recent video on Vibe Coding Is The Future
At its core, vibe coding means using predominantly artificial intelligence to write software. Recent advances in LLMs have made it possible to generate significant chunks of code just by describing the problem. Instead of meticulously crafting each line of code, the engineer takes a more high-level role and lets the AI handle the details.
While this approach may seem appealing in theory, I strongly believe that it represents a misguided trend in software engineering and I fundamentally disagree that Vibe Coding is the future (at least in the foreseeable future).
Some people are scared of losing their jobs or that the job of a software engineer will fundamentally change from now on. I don’t think that’s the case, but it’s also important to acknowledge that it will have at least some impact. There are many aspects to it.
Why Vibe Coding is “replacing jobs”
The idea that vibe coding is replacing jobs is a concerning development in the job market. I think the main reason for that narrative is not so much that AI can magically replace engineers but that engineers are very expensive. Companies have been eager to expand their teams during the hiring boom after COVID-19 due to low interest rates, but the economic situation is different now.
Perhaps not all of the hired engineers are performing well enough. Perhaps companies simply over-hired. To cut costs, some companies are looking to let go of engineers and “replace them with AI”. In this case, I think AI is more of an excuse than an actual reason, it’s the perfect scapegoat.
Why Vibe Coding isn’t the solution
Vibe coding is not the big cost-cutting solution companies hope it to be because LLMs fail to address the real challenges of software engineering. The majority of an engineer’s time is spent on managing complexity and making tradeoffs rather than writing code. It’s all about the big picture, including non-functional requirements such as scalability, maintainability, and performance. Large or complex systems require careful thought about these aspects, which is beyond the capabilities of current LLMs.
Even if AI catches up with the requirements of current systems, it is unlikely that it will be able to keep up with the demands of future systems. As systems become more sophisticated, they’ll hit new limits, requiring new types of solutions. This means that systems will inevitably outgrow the capabilities of even the most advanced AI models, rendering vibe coding an insufficient solution to the true challenges of software engineering.
What Vibe Coding does solve
While vibe coding may not be the silver bullet that companies hope for, there are areas where it can have a positive impact. For instance, AI-powered tools can help to make prototyping easier and more efficient, allowing engineers to rapidly explore different ideas and validate hypotheses. Additionally, it can increase the productivity of existing engineers by automating repetitive tasks and providing suggestions.
In other words, vibe coding is not a replacement for good engineering talent but rather a tool that can augment and support the work of skilled engineers, enabling them to deliver high-quality results more quickly. It’s important to emphasise that it still requires skilled engineers.
Conclusion
The hype surrounding vibe coding shouldn’t make any good engineer concerned about job security. While companies may be seeking ways to reduce costs, a wholesale shift towards AI is unlikely to replace human engineers entirely. The current market turbulence is most likely just a temporary blip, and the dust will settle again.
Instead of jumping on the hype train or worrying about job security, perhaps now is the perfect time to develop a deep understanding of what makes good software engineering. This is the perfect opportunity to dive deep into the fundamentals of programming, software design, and problem-solving.