DEV Community

Emily Woods
Emily Woods

Posted on

Everyone is vibe coding but nobody is maintaining the vibe code.

Six months after the AI-generated prototype ships to production, the engineer who wrote zero of it is on call at 3 AM trying to understand it.

Vibe coding is real and it works for what it is. You can describe a goal in plain English and get working software in an hour that would have taken a week to build manually. The demos look incredible. The prototypes are impressive. The problem is that software does not live in the demo. It lives in production, where it degrades, gets extended by new requirements, fails in edge cases that the original prompt never described, and eventually gets handed to an engineer who has to understand what it does and why. The industry right now is extremely good at generating vibe code and almost completely unprepared for the part that comes after.

What vibe coding actually is
Andrej Karpathy coined the term in early 2025 and the internet ran with it. The core idea is simple: instead of writing code manually, you describe what you want in natural language. The model handles the implementation.

You review the output, refine the prompt, iterate quickly, and end up with a working product without touching the actual syntax.

If you have used Cursor with agent mode or Claude Code with a well-structured prompt, you have done this. You describe a feature, the agent reads your codebase, writes the new code, runs the tests, fixes the failures, and opens a pull request. The experience feels like pair programming with someone who types at 400 words per minute and never needs to look up syntax.

For certain categories of work, it is genuinely transformative. Building a proof of concept in a weekend. Generating a test suite for legacy code that has none. Writing the boilerplate for a new microservice when you already know exactly what the interface needs to look like.

The vibe coding evangelists are not wrong about any of that.

The production gap
Here is the thing they are not talking about.

Software in production is not the same object as software in a demo. The demo version works because you gave it a clean prompt, a clear requirement, and a controlled environment. The production version exists inside a system with fifteen years of accumulated decisions, most of which are not in the codebase and are not in any document. They live in the memory of engineers who have already left, in Slack threads from 2021 that nobody archived properly, in the institutional knowledge of why this particular function is written in a way that seems wrong but is actually protecting against a bug in a third party library that broke everyone in 2022.

When a vibe-coded feature gets deployed and then behaves incorrectly in some edge case nobody anticipated, the debugging process requires understanding not just what the code does but why it was structured a certain way. If you did not write it, if you did not make the architectural decisions, if you did not understand the constraints the model was working within, you are going to spend a very long time reading AI-generated code trying to build a mental model of a system you never actually understood.

I have reviewed pull requests in the past few months that were clearly generated by agents, with comments left in by the model that were confident and wrong. The code was syntactically clean. It compiled. Tests passed. It also quietly violated a transaction boundary assumption that the rest of the system depended on. The engineer who submitted it had not caught it because they were reviewing AI output rather than reasoning through the logic themselves. We found it in code review, but only because a senior engineer who had written the original transaction layer happened to review it.

What happens to the junior engineer
Here is the part of this conversation that makes me genuinely uncomfortable.

The fastest path into software engineering has always been: get hired as a junior engineer, get assigned work that is a bit over your head, struggle with it, and slowly build the mental models that turn into competence. You write bad code. You get it back in review with comments. You write it again. Over a year or two of this, you develop an intuition for how systems behave that you cannot get from reading documentation.

Vibe coding is compressing this loop to the point where the learning disappears entirely. A junior engineer who can generate a working feature in three hours from a prompt is not building the intuition that will let them debug that feature when it breaks in six months. They are getting the output without going through the process that would let them understand the output.

Companies are also noticing that vibe coding lets you hire fewer juniors, because one mid level engineer with good prompt skills can ship the volume that used to require two or three people. So the junior positions are shrinking at exactly the moment when junior engineers have access to tools that make them look like mid level engineers from the outside, which makes it easier for companies to justify not hiring as many of them.

The industry is quietly eliminating the apprenticeship layer. In ten years, when the current senior engineers have moved into management or retired, we are going to want to know where the next generation of people who understand systems came from. I do not have a good answer to that question.

What actually changes and what does not
The skill that vibe coding eliminates: translating a clear, well-understood requirement into syntactically correct code. That skill is gone. The model does it better and faster than almost any human.

The skill that vibe coding does not touch: understanding what the requirement should have been before you wrote the prompt. Knowing when the code the model generated is technically correct but contextually dangerous. Debugging a production failure that involves five different services and a race condition that only shows up under load. Making the architectural decision that determines whether your system needs a message broker or whether a simple database trigger would work fine.

Every skill that was already about judgment rather than execution is still about judgment. Vibe coding just eliminated the execution bottleneck, which means judgment is now essentially the entire job.

The MCP piece
Model Context Protocol is the infrastructure layer that is making vibe coding more powerful in 2026. If vibe coding is describing what you want, MCP is giving the model direct access to the tools it needs to execute on that description. The model can now call your internal APIs, query your database, read from your file system, and commit back to your repository, all within a single agentic loop.

This means the scope of what an agent can autonomously handle is expanding significantly. You can now describe a data migration and let the agent write the migration script, test it against a staging database, review the row counts, and flag discrepancies, without a human being in the loop for each step.

That is genuinely useful. It is also genuinely scary if you have not thought carefully about what guardrails your organization needs around what agents are allowed to touch.

The engineers who will be valuable in 2026 and beyond are the ones who understand how to design those guardrails. Who understand what an agent should be allowed to do autonomously versus what requires a human in the review loop. Who can look at an MCP-connected agentic workflow and identify where the failure modes are.

That is a senior engineering skill. It is not a vibe.

I personally feel vibe coding is not a threat to engineers who understand what they are doing. It is a threat to engineers who measure their value in lines of code per day. If you are the person on your team who can debug the system, make the architecture call, and tell the product manager that a feature is going to break something in a way that is not immediately obvious, you are not replaceable by a prompt.

If your main contribution is translating tickets into code with minimal mistakes, the vibe is already coding that part.

If you are looking for structured approach to for technical interviews and want to practice questions that will be asked in your interviews, don’t forget to check out, PracHub. It has updated lists of questions with their follow-ups with company specific options.

Top comments (0)