Vibe coding or “I let AI write all my code and it was fantastic (until it wasn’t)”
Back to All Posts

Vibe coding or “I let AI write all my code and it was fantastic (until it wasn’t)”

What is Vibe Coding and Why It’s Gaining TractionThe Developer Experience with Vibe CodingMajor Criticisms from Industry Thought LeadersThe Skills Debate: Enhancement or Erosion?The AI Intern Model: A Useful FrameworkBest Practices and Middle GroundConclusion: The Evolution of Development

I have been using Cursor agent mode for a while now, and my workflow naturally evolved occasionally into what is now called “vibe coding” a term coined by AI researcher Andrej Karpathy in early 2025. This practice—using large language models to generate code based on natural language prompts—essentially shifts the developer’s role from writing code line-by-line to orchestrating and refining an AI’s output. As Karpathy described it, you “fully give in to the vibes, embrace exponentials, and forget that the code even exists.”

With nearly 30 years of software development experience, I was both intrigued and skeptical. Can I really delegate significant coding tasks to an AI assistant? Will it actually enhance my productivity? The results were eye-opening, with successes that exceeded my expectations and challenges that validated many expert concerns.

What is Vibe Coding and Why It’s Gaining TractionThe Developer Experience with Vibe CodingMajor Criticisms from Industry Thought LeadersThe Skills Debate: Enhancement or Erosion?The AI Intern Model: A Useful FrameworkBest Practices and Middle GroundConclusion: The Evolution of Development

What is Vibe Coding and Why It’s Gaining Traction

Vibe coding represents a fundamental shift in how software is created. Instead of manually writing each line of code, developers provide natural language instructions to AI tools like Claude, Cursor, or similar LLMs, which then generate and modify the code. Karpathy’s quip that “the hottest new programming language is English” captures this shift perfectly.

The appeal is obvious: dramatically increased productivity, reduced time spent on boilerplate code, and the ability to focus on high-level ideas rather than syntax details. Many developers report significant boosts in output and enjoyment. For example, one engineer described using Cursor as “at least a 2× improvement over Copilot” and “an incredible accelerator” for their team.

What feels particularly revolutionary is how vibe coding lowers barriers to entry. Non-programmers are building functioning applications through careful prompting—something unimaginable just a few years ago. One product manager with modest coding skills reportedly built and published an iOS app entirely through vibe coding, spending about $200 on AI queries rather than hiring a developer.

But we might ask: is code written by an AI without a software engineer supervision production-ready for real-world scenarios?

The Developer Experience with Vibe Coding

The developer experience with vibe coding tends to follow a common pattern across the community. Initially, developers report an almost euphoric productivity boost. Tasks that would normally take days come together in hours as the AI handles boilerplate code, complex algorithms, and even styling without the usual debugging headaches.

Early adopters frequently describe vibe coding as bringing back the joy of programming. On the Cursor forum, one user expressed how AI coding made programming “so fun again,” leading them to work extended hours just to see “how much I can achieve in as little time as possible.” This sentiment reflects how vibe coding can rekindle creativity and rapid experimentation by removing tedious implementation details.

The experience particularly shines in certain domains. Front-end development benefits significantly, as natural language is expressive for describing UI changes (“make the button blue and move it to the top right”). Developers working outside their primary expertise also find tremendous value—a backend engineer can quickly generate JavaScript UI code, or a Python developer can get help writing a Bash script without learning the quirks of a new language.

How much I can achieve in as little time as possible...

Many developers have integrated vibe coding into their daily workflow by constantly switching between writing code themselves and instructing the AI to fill in the rest. This collaborative style creates a feedback loop where the AI can anticipate what the developer might do next, offering suggestions that can be accepted or refined. As one early adopter described it, the AI is “steps ahead of my brain, proposing multi-line edits so I type ’tab’ more than anything else.”

However, the initial excitement often gives way to more nuanced experiences as projects grow in complexity. Developers report that LLMs excel at generating an initial burst of code but can struggle when requirements change or when the codebase expands beyond a certain size. The context limitations of current models mean they sometimes lose track of the “big picture” in a large system, requiring more careful guidance from the developer.

Major Criticisms from Industry Thought Leaders

However, as you push beyond simple applications, you end up encountering the same limitations that industry experts are warning about.

Simon Willison argues that vibe coding “fails” at producing maintainable, production-quality code. He insists that professional developers must fully understand and take accountability for the code they ship—something that becomes challenging when you’re not writing every line yourself.

Andrew Chen’s observation resonated strongly with my experience: “You can get the first 75% trivially, and it’s amazing. Then try to make changes and iterate, and it’s like you’re herding cats.” I found this particularly true when trying to extend or modify existing AI-generated code. The AI struggled to maintain context and would often introduce subtle bugs that were difficult to catch.

Security concerns are perhaps the most serious. As cybersecurity expert Lilly Ryan asked, “Am I going to generate something that accidentally has a massive security hole and not realize it?” In my own testing, I discovered the AI occasionally neglected proper input sanitization and other security best practices—errors that could have serious consequences in production.

A vibe coder in action

The Skills Debate: Enhancement or Erosion?

A recurring question in the vibe coding discourse is whether it enhances developer skills or erodes them. Based on my experimentation, the answer depends largely on how it’s used.

For experienced developers who understand the underlying principles, vibe coding can be a powerful accelerator. It handles the tedious aspects of implementation while allowing us to focus on architecture and design. In this case, the AI truly augments our capabilities.

However, for newcomers to programming, there’s a risk of building a superficial understanding. By skipping straight to AI-generated solutions, beginners might miss learning fundamental debugging skills, architectural patterns, and performance considerations. This aligns with Harry Law’s warning that while a beginner may “make fast progress” with AI assistance, “it might prevent them from learning about system architecture or performance” fundamentals.

The most concerning scenario is when developers begin to trust the AI’s output without thoroughly understanding it. As Willison points out, if you’re not carefully reviewing and comprehending every line of AI-generated code, you’re essentially abdicating responsibility for its quality and security: “If an LLM wrote every line of your code, but you’ve reviewed, tested, and understood it all, that’s not vibe coding in my book—that’s using an LLM as a typing assistant.”

The AI Intern Model: A Useful Framework

With experimentations and debates with my colleagues at Ingeno on the subject, we found it helpful to think of our AI coding assistant as a talented but junior team member—essentially, a super-powered intern on steroids. This intern knows multiple programming languages, types at superhuman speed, and never needs coffee breaks. But like any intern, they require supervision and don’t always understand the bigger picture.

The intern analogy provides a practical framework for understanding the proper role of AI in development:

  • It can produce impressive work quickly when given clear direction
  • It knows the latest frameworks and techniques
  • It can sometimes suggest creative approaches you hadn’t considered
  • BUT it needs supervision and shouldn’t be given full autonomy on critical projects
  • It doesn’t have the context or judgment that comes from years of experience
  • You still need to review its work carefully
  • You’re still responsible for what it produces

This perspective helps set appropriate expectations for what vibe coding can and cannot do. AI can augment engineers, not replace them—at least not yet.

Best Practices and Middle Ground

Through experimentation our team has developed a set of best practices for integrating vibe coding into professional workflows:

  1. Use vibe coding for rapid prototyping and initial scaffolding
  2. Write critical components yourself, especially those involving security or complex business logic
  3. Always review and understand AI-generated code before committing it
  4. Use vibe coding to learn unfamiliar languages or frameworks, but take time to understand what the AI produces
  5. Establish clear quality standards and testing protocols for AI-generated code
  6. View AI as an assistant, not a replacement for sound software engineering principles

The most effective approach is a balanced hybrid: leverage AI for speed and efficiency where appropriate, but maintain human oversight and judgment throughout the process.

As Birgitta Böckeler from Thoughtworks noted on their Tech Podcast, “The really insidious category [of problems] is things that will have an impact on the long-term lifetime of the codebase and on the maintainability... You have to pay attention. You have to have this experience... If you do [vibe coding] 100% [of the time for serious software], it absolutely... cannot [work].”

Conclusion: The Evolution of Development

Vibe coding represents not a revolution but an evolution in software development. It doesn’t replace traditional coding but transforms how we approach it. It isn’t about AI writing all our code—it’s engineers and AI collaborating to create better software than either could alone… for now.

As tools improve and context windows expand, the capabilities of AI coding assistants will continue to grow. The most successful developers will be those who learn to effectively direct and supervise their AI interns while maintaining their own core engineering skills.

The key insight from my exploration of vibe coding is that it’s neither a miracle nor a mistake—it’s a powerful tool with specific strengths and limitations. Used thoughtfully, it can dramatically enhance productivity without sacrificing quality. But it requires us to evolve our understanding of what it means to be a software engineer in the age of AI.

As Omar Khattab aptly put it, “You might be able to vibe code your way to a simple demo, but good luck vibe coding your way through a complex system.”


Disclaimers

  1. I have not used “vibe writing” to write this article. It is my original content and opinion. This being said, AI helped me research opinions from thought leaders as well as improve the structure and form of the article. Then, Ingeno team made a final revision of the article. Team work where AI is also a team member!
  2. The image for this article has been generated using code that was developed 100% with vibe coding! If you would like to have the code, get in touch with me.

What’s your experience with vibe coding? Have you found it helpful or challenging?

Guillaume Beaulieu-Duchesneau

Guillaume Beaulieu-Duchesneau

Guillaume guides Ingeno’s strategic vision of transforming cloud, artificial intelligence, and IoT into business models that deliver measurable value for clients.

With deep expertise in digital transformation and AWS technologies, Guillaume leads Ingeno’s team of passionate professionals who create innovative cloud-native solutions. Under his leadership, Ingeno has become an AWS Advanced Tier Services Partner, specializing in helping organizations leverage AI, IoT, and cloud technologies to transform their operations.

Guillaume is particularly focused on ensuring that technology serves business objectives rather than being pursued for its own sake. He frequently participates in Technology Roadmap Prioritization workshops with clients across diverse industries, helping them align technological initiatives with strategic business goals.