A 2025 Guide to Efficient Code
YC has unleashed a new movement in the startup world: vibe coding, a term that signifies a shift in developer patterns.
As the developer of brainful, I have several thoughts on this after experimenting with various techniques. Vibe coding is the process of detailing a set of requirements to an LLM in plain English or step-by-step ‘pseudocode’, allowing the LLM to generate a solution or set of solutions. You act as the intermediary, testing against your requirements and reporting any issues in a feedback cycle, irrespective of the code produced by the AI. Instead of manually checking the code, you evaluate the behaviour against the generated code. While this method accelerates the iteration process, it also risks introducing new bugs and issues, particularly in large projects where code changes impact multiple files. To strengthen this discussion, incorporating citations from credible sources or references to empirical studies would enhance the reliability and depth of this analysis.
Now, you might fall into the temptation of trying to validate everything that the LLM generates, but that is not vibe coding in its true sense, as that defeats the very purpose of ‘break fast, ship fast’. What I have concluded is that there is no in-between that is ideal, but rather, the separation of the phases has the potential to make vibe coding a viable solution for projects which demand high innovation speeds whilst maintaining code quality, rigour, and robustness expected of a production-grade application. Here is the gist, I will elaborate on each in more detail below:
- Vibe coding works in moderation.
- Vibe coding demands AI friendly Code.
- Vibe coding is fun.
- Start vibing; don’t end on it.
Vibe Coding works in moderation
The worst thing that can happen to a programmer is when they become a foreigner to their codebase. This surreal feeling is not productive and can lead to wasted effort. The deeper you dig into a poorly understood code, the harder it becomes to escape the vicious loop of prompts and fixes. Therefore, using vibe coding more than 20% of the time is not recommended. An 80:20 rule can be useful: focus 80% of your efforts on traditional coding and 20% on vibe coding. With this approach, vibe coding can offer most of its benefits while minimizing the issues and time waste, which is often referred to as the classic ‘prompt engineer’ trap.
Effective vibe coding requires effective AI-friendly code
While we might instinctively believe that AI will automatically generate AI-friendly code, this is not necessarily true. AI requires a foundation of high-quality code, which is what good programming practices provide. We do not need to reinvent the wheel to write code for the AI era, but we must ensure that most of our code entering the codebase is of a consistent calibre.
Vibe Coding is fun
The appeal of vibe coding lies in its genuinely enjoyable nature when it functions correctly. While you read this, I am currently vibing with my codebase, which hinges on the specified prerequisite conditions. Failing to meet these requirements may lead to a frustrating coding session or, worse, result in hours wasted trying to revert to a previous state from three hours ago.
Start vibing, don’t end on it
If you do choose to vibe code, ensure you do it before focusing on reinforcing key parts. When vibe coding, you accept that the codebase may be more unstable than before. Therefore, you must invest time in due diligence, using good intuition to guarantee that the most affected parts are reinforced with strong defensive programming practices.


게시물에 답글