Vibe Code Is Legacy Code Before It Ships
"Vibe coding" with AI produces unmaintainable, undocumented code from the start, creating legacy code before it ships. The author warns this leads to technical debt, hidden bugs, and systems difficult to debug, contrasting it with traditional engineering practices focused on clarity and long-term maintainability.
Background
- "Vibe coding" is a term popularized by Andrej Karpathy (ex-OpenAI/Tesla AI leader) for using AI coding assistants (like Cursor, GitHub Copilot, Claude) to generate code iteratively by describing what you want, without closely reading or understanding the output.
- The essay argues that code produced this way is immediately "legacy code" — code that no one fully understands, can't be safely refactored, and has unknown dependencies. Normally, code becomes legacy over years; vibe code becomes legacy the moment it ships.
- Key distinction: traditional software engineering relies on deterministic reasoning and careful abstractions. Vibe coding replaces that with probabilistic guesswork (LLMs), producing code that "looks right" but may have subtle bugs, security issues, or dead code.
- The author, Vincent Schmalbach, is a senior software engineer writing from experience with AI-assisted development. The piece is a warning, not a celebration: vibe code may boost short-term output but creates long-term technical debt and maintenance nightmares.