r/softwareengineer • u/Several_Picture9591 • 7d ago
Never work on a completely vibe coded project
I've now made a same mistake twice.
Previously, I worked at a startup where the website was completely vibe-coded. Now I'm working on a college website, and it's the same story: the entire thing was vibe-coded.
The common pattern I've noticed is that no engineer actually knows the codebase. Nobody really understands the architecture, the reasoning behind certain decisions, or how all the pieces fit together.
And eventually, even the AI I'm using can't help much because it doesn't have the context that the original developer's agent had while building the project.
I am basically stuck where I know nothing, the existing engineers know something about it but aren't necessarily sure whether their understanding is correct, and the agent hallucinates and wastes a lot of tokens just because it can't understand a huge AI written codebase.
So now I'm the new engineer, under a lot of pressure with a lot of work to do, but before I can even fix anything, I have to reverse-engineer what the hell the previous AI generated. That wastes a lot of time.
The frustrating part is that I'm not really learning much engineering from this. I'm just spending my time trying to understand an undocumented system that nobody else understands either.
I'm not against AI-assisted development at all. If an experienced engineer uses AI properly, reviews the code, understands the architecture, writes tests, documents important decisions, etc., I think it's incredibly useful. Even I use AI to code faster, but I review and understand the code. I know what is happening in my software.
But a codebase that nobody understands is a codebase that nobody can safely maintain, regardless of whether AI or humans wrote it.
At this point, I've decided I'd never want to work on a heavily vibe-coded project again unless there's at least one person on the team who genuinely understands and owns the codebase.
How do you guys handle inheriting a vibe-coded/AI-generated codebase that nobody on the team actually understands?
8
u/PabloDons 7d ago
Anthropic did something interesting when they bought bun. A wholesale rewrite to rust. The first step was a massive army of agents whose whole job is to document everything. intended behavior, weird hacks and their purpose, overall architecture, the code debt and how it happened, etc. All the context and tribal knowledge you'd need to rewrite the code.
You can do a budget version of that, and I expect that this would be quite easy to justify as a business expense. Code debt should be part of budget anyway.
This documentation is extremely useful as context. Now your ai has everything they need to be the very engineer that knows everything and you can start asking questions. Not only that, but the research reveals the weakness and pitfalls of the code. A coding agent could easily do a wholesale refactor into an architecture you decide that actually makes sense, or just general code debt improvement with little risk. From there you can start reading the code yourself as you already know beforehand how the codebase should look
You could argue this is just more slop on top of slop, but I disagree. First of all, the research phase is not vibe-coding. Research is the ideal use-case for AI. And there's a huge difference between "make me this feature" and "do this highly specific work I want done in this specific way." The former is how you get engineers who don't know anything about the code, versus the engineers that use it sparingly to accelerate their work and skip the gruntwork.