A prototype in 30 minutes is useless if merging it into production takes three weeks. Yusuf Aytas, writing on his blog, draws a line between the vibe coder and the software engineer that has nothing to do with the tool itself and everything to do with the finish line they measure.
The Wrong Finish Line: Demo vs. Safe Merge
Vibe coders measure time to first working version. Software engineers measure time to safe merge. Aytas defines safe merge as the moment a change is reviewable, testable, owned by its author, rollback-capable, and explainable to the team. That includes review cost, test cost, rollout cost, rollback cost, coordination cost, and future maintenance cost. A running demo proves exactly one thing: that something can be shown. It does not prove that it can be absorbed into a shared codebase with real users, real data, real compliance requirements, and real people on call.
Output Is Not Progress: Ownership Over Generation
AI-assisted code should be better, not bigger. Aytas argues that if the tool lets you generate more, the human must constrain more. Otherwise you are not saving work - you are moving it downstream, where maintenance becomes someone else's chore. Every change must be narrow enough to review, explainable enough to trust, and bounded enough to merge without dragging half the system along. A change that reformats half the file because the model felt like it, or adds a package without a clear explanation, is not progress. It is review debt.
AI Cannot Take the Blame: Context Beyond the Context Window
Reviewing AI-generated code is not the same as reviewing human-written code. A human author leaves a decision trail - you can ask why they chose that abstraction, that package, that test structure. With AI-generated code, many of those decisions are completions, not choices. If the author has not converted generated output into owned work, the reviewer is doing two jobs: review and authorship recovery. Aytas points out that ownership means the author must be able to say "I own it," not "the model generated it." That means context beyond the current file - incidents, old migrations, customer behavior, operational pain, compliance rules - must be carried by the engineer, not handed off to a context window.
Until teams measure by safe merge time instead of demo speed, AI-generated code will just shift the bottleneck from writing to maintenance. The metric that separates a vibe coder from a software engineer is not lines per minute - it's whether the team can sleep after the merge.
Source: Vibe Coder vs. Software Engineer
Domain: yusufaytas.com
Comments load interactively on the live page.