Not all AI-assisted coding is vibe coding

AI-assisted coding is helping in two very different areas.

On one side, it’s making non-developers able to rapidly prototype and build applications, often called vibe coding. On the other, it’s helping professional developers build and maintain real software systems. Both are using the same tools but are generating different outcomes.

The problem is that “vibe coding” has quickly become synonymous with AI-assisted coding, and that framing has given the space a slightly bad reputation. For a while, it was easy to conclude that AI coding is mostly about duct-taping large, fragile systems together to build a fancy demo.

But that misses the point. It’s my belief that AI-assisted coding is useful for both professional and non-professional developers, but in different ways. While some principles like the importance of a great prompts carry over; the outcomes and failure modes are not the same.

Vibe coders tend to generate end-to-end applications quickly. Professional developers tend to use AI to accelerate small, specific pieces of work within a complex system.

Professional developers: acceleration inside constraints

The first wave of AI coding tools, like GitHub Copilot, was aimed at professional developers: it was enhanced autocomplete. It removed friction when you already knew what you were trying to build. I found it genuinely useful, but the benefits were debated.

With newer agent-based tools, the model has evolved. AI can now explore codebases, suggest plans, and apply changes across multiple files faster than any developer could reasonably type.

This works best inside mature software environments: understanding your code base, good test coverage, real code review, CI/CD you trust. It requires a certain maturity of the developers using these AI tools for what they’re good at. Mature software environments will be able to filter AI slop from valuable contributions to a code base.

This does raise some concerns about who companies will hire. If senior engineers can suddenly do more with AI, will companies stop hiring juniors altogether? And if so, who trains the next generation? Guido Van Rossum raised this concern this week on X, and I think he has a point. https://x.com/gvanrossum/status/2013852963316355579

Senior engineers can make the most of professional AI tools precisely because they already know what good looks like. But if we remove the path for juniors to grow into that role, we’re trading short-term efficiency for long-term fragility in the talent pipeline.

Also, and this bleeds into the next section, we will need the next generation of engineers to understand software quality. We can’t expect complex distributed systems to be vibe-coded. Maybe I’m underestimating the quality of future AI systems, and they’ll become as trustworthy as a compiler (when was the last time you wrote assembly code?).

Vibe coding: fast iteration to MVP

Vibe coding is a very different use case.

Here, the user is often not a professional developer (but, professional developers can also vibe-code). They might be a domain expert, a technical PM, a marketer, or just someone with an idea. Vibe coding allows them to go quickly from idea to MVP.

That is genuinely powerful. People are building small SaaS prototypes, dashboards, Chrome extensions, personal automations. Many of these things would not have existed before, because learning to code for just that one problem wasn’t worth it.

Just this week, I’ve vibe-coded two tools that help me in my running. A calorie-burn estimator that helps me plan my nutrition during long runs and a hydration planner that helps me plan my hydration and sodium intake.

Vibe coding is not just “junior engineering”. It’s a new category: rapidly generating code that turns idea into MVP.

But vibe coding comes with limitations. The output of these AI generated applications generally didn’t reason about architecture, security, or maintainability the same way professional developers do. That’s fine for demos and prototypes, but it becomes a problem when those systems quietly drift into production without changing how they’re built or governed.

Same set of tools, different outcomes

Because both approaches use the same tools,  “AI coding” gets treated as one thing. But not everybody is vibe-coding, and there are different outcomes and expectations.

Professional coding optimizes for:

  • long-term maintainability
  • correctness
  • security
  • scalability

Vibe coding optimizes for:

  • speed of creation
  • idea validation
  • low barrier to entry

Judging one by the standards of the other is a mistake. Vibe coding is not failed professional engineering. Professional AI coding is not scaled-up vibe coding.

Closing thought

AI-assisted coding is not one thing. It’s a spectrum of practices that only look similar on the surface.

The opportunity isn’t choosing between vibe coding and professional AI coding. It’s understanding which mode you’re currently in and behaving accordingly — while making sure we don’t accidentally erase the path between the two.

Leave a Reply