To Vibe-Code or Not?
[Now] A guide from a software engineering perspective
AI model's ability to code has been growing in capabilities over these past few years. What was once a novelty is now a staple workhorse many software developers’ toolkit.
The Joys of Vibe-Coding
Many smaller scale projects that were nice-to-have but deemed too time-consuming are now possible. One can’t help but feel like a kid in a candy shop when using AI-assisted development to complete smaller scale hobby projects that AI excels in.
Have a frequently used command-line tool that could be better with a graphical user interface? Vibe-code a GUI to call the CLI.
Have a semi-routine task that was previously not worth the effort to automate? AI may be able to get it 90% there.
Context dependent actions
An AI translating an article knows that the reference sections are usually left untranslated.
Task A is usually done together with Task B
An AI can ‘take the initiative’ to do an accompanying task that are frequently done together. This a new capability seems to begin in 2025 and can feel impressive seeing it for the first time.
Writing programs for repetitive tasks
The latest models are capable of writing simple programs to do tasks in a more programmatic manner. Creating a Python program to do a repetative tasks is usually significantly more reliable and less likely to cause hallucinations (confabulations).
How did vibe-coding get so good?
Top reasons why vibe-coding got good in recent months:
Open-source culture afforded a rich dataset that AI could be trained on.1
Software is semi-verifiable and provides a clear signal when the code fails to run.
The use of sub-agents to run CLI tools utilised an in-distribution capability that externalised the memory management limitations.
The horrors of vibe-coding
Vibe-coding is not without its dangers! There have been many documented ways vibe-coding has gone catastrophically such as deleting entire databases, re-introducing regression bugs and serious security risks.
Code maintainability
A professional knows better than to accept any code that works. Vibe-coding can produce code designs that are detrimental to the long-term maintainability of the code base. Fine for a throwaway prototype but a liability for any long lasting project.
Hypothesis: AI training may have overly focused on smaller code snippets rather than the wider context of an entire codebase leading to lower emphasis on good design patterns.
Database optimisation
Vibe coded database calls can be overly idiomatic and strongly adhere to textbook examples but is poorly optimised in practice. This can cost 2-5x more than necessary!
Getting a professional to vet your database code can bring significant savings that pays for itself in the long-term.
Hypothesis: AI training examples are biased towards simple short examples and prefers overly idiomatic database queries.
Architectural trade-offs
AI may prefer the most expensive option for a resource when something significantly cheaper is available with negligible downsides for a particular use case.
Hypothesis: Many documents may promote the best (and expensive) and more recent option biasing the AIs towards choosing those over less known option.
An experienced software architect that can understand the trade-off can be invaluable to reduce unnecessary costs.
Security and privacy
AI assisted coding is still bad at protecting the security and privacy of users. One should be cautious if a founder claims that their App is fully vibe-coded and not vetted by a professional software engineer.
In a bit of a twist, recent months have seen many vulnerabilities discovered and fixed by AI models. This suggest models are capable of both finding vulnerabilities and also accidentally causing them when vibe-coding.
AI making previous code worse
AI still struggle to maintain codebase over time and have been shown to introduce bugs when making changes.
Current LLMs still fall short in controlling regressions during long-term code maintenance2
Hypothesis: Could better scaffolding and harness help? Or does this indicate that codebases without human expert review will get worse over time?
The exhaustion of vibe-coding
Does vibe-coding productivity come at a cost to the vibe-coder? Some studies suggest the increased intensity of managing AI coding agents is not without cost as increased context switching can drive mental fatigue.
Is software engineering over?
The frontier labs are likely correct that software programming is likely to be mostly done by AIs in the next few years but software engineering as a discipline will likely still be required.
Coding is only a small part of a software engineer’s job scope; unlike the popular depiction of nerds frantically typing in front of screens.
The real value lies in:
Clarifying the actual business goal.
Selecting the right tools and their trade-offs.
Anticipating technical and non-technical edge-cases.
For any technical problem there are usually countless paths to reach a good outcome, each with their specific pros and cons to consider.
In a world where anyone can generate code, the role of the Expert Reviewer is needed more than ever.
Arguable, all this would not have been possible with the widespread open-source culture of the software development world. This highlights the importance of an environment with a rich source of data.
Should frontier labs achieve record profits in future, it would be a nice gesture and also in their interest to ensure contributors (code, writing and art) are taken care of and incentivised to continue.
SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration (https://arxiv.org/abs/2603.03823)

