Andrej Karpathy, co-founder of OpenAI, introduced a new term called vibe coding to describe how developers can guide an LLM to solve a problem by framing it through a set of prompts. The concept is similar to prompt engineering, but is focused on generating code with LLMs. Andrej describes it as a new way of programming by “giving in to the vibes to LLMs, embrace exponentials, and let it do the work”. Here is his famous tweet from February 2025.
People are increasingly doing vibe coding and AI coding tools make it ridiculously easy to get started. For recommendations, you can check out Cursor or Replit Agent.
However, as cool and trendy as vibe coding is, it will have a massive impact on traditional software engineering—both positive and negative. In this post, I’ll talk about the future of vibe coding, its upsides and downsides, and its impact on software engineering.
The future with vibe coding
Developer tools have become more capable with AI. Tools like GitHub Copilot and Cursor allow a developer to chat with an LLM to describe a task to solve. The LLM generates the necessary code, the developer reviews it, and can quickly approve it with a few tabs.
Some industry professionals love this new way of coding and advocate for making code accessible to non-technical users. Others are concerned about the reliability and maintainability of AI-generated code. I’m more with the latter group, at least for now, until I see more positive examples of companies using it or until we have a proper vibe debugging in place.
Jared Friedman, Garry Tan, Harj Taggar, and Diana Hu from Y Combinator shared their thoughts on vibe coding a couple of weeks ago. They talked about how vibe coding is shaping the future and unlocking exponential benefits for founders and startups. It’s a 30-min discussion if you want to check it out:
Check out this NicolasZu’s flight simulation game, built purely on vibe coding (thousands of prompts, no coding).
However, people on the internet didn’t like the Y Combinator video (excluding trolls). They shared opposing views on how relying heavily on LLMs can be dangerous. It could either force users to create mediocre, repeatable apps, or generate code with unpredictable behaviour that is hard to maintain, or act as a replacement for engineers. Heres’s an example:
There is truth in both arguments—vibe coding is a double-edged sword. It can increase developer productivity in engineering teams, but it is obviously not a replacement for engineers. To leverage vibe coding in building software, you’d still need technical expertise to review the new changes. That’s why we do PR reviews.
Vibe coding is like having non-tech users review PRs before releases.
When should we use vibe coding, then?
Upsides of vibe coding
Great for prototyping, especially when building new products
Vibe coding is powerful for prototyping and building MVPs. It allows teams to quickly translate ideas into functional code without spending extensive time on development. This fast iteration helps founders test new ideas and validate features early in the process, enabling them to pivot fast based on feedback.
Up skilling individuals
Vibe coding can be powerful for engineers who are learning a new programming language or want to operate as a full-stack (generalist) software engineer. A backend engineer can tap into frontend work with vibe coding if needed.
Vibe coding is also great for less-technical professionals who want to test out new ideas and bring them to life. They can communicate their ideas to an LLM to generate functional code without deep programming expertise. This allows product managers and designers to create simple software ideas through a conversation, making it easy to test and less expensive to delete (without spending engineering resources).
Increased developer productivity
Vibe coding can significantly boost developer productivity by automating repetitive tasks, generating test cases, and speeding up the coding process. This allows them to focus on higher-level design, architecture, and problem-solving, ultimately accelerating the development cycle. By leveraging vibe coding, teams can move faster and ship more features with less manual effort, driving greater overall productivity in the development process.
Downsides of vibe coding
Complicated to use in large enterprises
Vibe coding can be difficult to use in large enterprises. While it works well for individual developers and small teams, complex codebases and existing abstractions present challenges. Relying on AI-generated code requires thorough review and testing to ensure it meets the necessary standards and fits within the broader design.
Non-technical individuals can get stuck midway
While vibe coding lowers the barrier to entry for coding tasks, non-technical users can get stuck on runtime errors or debugging issues without additional help from LLMs. A simple example is when an LLM generates code using a deprecated API from library version x.y.z, while the non-technical user has library version x.y+1.z installed.
Although the chances of this happening are relatively low, lacking technical knowledge makes it harder for users to resolve such issues on their own.
A good example is Leo’s SaaS, which was built 100% with LLMs. 😬
Less-experienced engineers relying too much on vibe coding
Junior engineers who rely too heavily on vibe coding without understanding core programming concepts risk producing inefficient or unmaintainable code. Excessive use of AI tools can hinder their long-term growth by limiting the development of problem-solving skills and a deep understanding of software engineering principles.
Just as we advise junior engineers not to blindly copy-paste code from stack overflow, we should also encourage them not to rely on vibe coding without thoroughly understanding the output.
Final thoughts
Vibe coding is shaping up the future. AI tools are getting better and more autonomous every day, allowing developers to ship code faster than ever. Less technical people can now build apps as easily as capturing an iPhone video.
However, a strong technical foundation remains essential for building software beyond prototypes. Engineers must develop the skill of capturing vibe coding practices within their teams and carefully reviewing LLM-generated code. Vibe coding should be treated as a supplementary practice in software development, not a primary one.
Less-experienced engineers now turn to LLMs instead of the good ol’ Stack Overflow. This shift places greater responsibility on senior engineers and tech leads in startups and large enterprises to audit LLM-generated code and ensure it fits within their software design. After all,
Each new line of code adds debt to the developer—it needs to earn its place in production.
Have you tried vibe coding recently? Let me know your thoughts in the comments below.
If you’re finding this newsletter valuable, share it with a friend, and consider subscribing if you haven’t already.