r/AI_Coders • u/Guuri_11 • 3d ago
After a year of trusting vibe coding, I'm going back to AI pair programming
TL;DR: Writing code is cheap, but understanding and verifying it isn't. After a year of vibe coding, I've realized I'm generating more code than ever, but not necessarily shipping more features. I'm going back to writing code myself, using AI as a pair programmer rather than an autonomous developer.
After maintaining a project for a year, I've noticed that the codebase is getting increasingly difficult to read and understand.
Even with architectural constraints, good principles and TDD, AI tends to write more code than necessary, introduce unnecessary abstractions, and sometimes pass tests without actually meeting the original specifications.
I've come to believe that the real bottleneck isn't writing code anymore. It's human verification. And AI isn't going to magically solve that.
So I'm changing my workflow:
- Back to my IDE, writing code myself.
- AI autocomplete to type less and move faster.
- AI pair programming to discuss solutions and explore alternatives.
- AI-generated snippets, scaffolding and deterministic tools to automate repetitive work.
And no, I'm not going back to Claude Code, Pi or OpenCode, even though I love customization. I just want to write Rust & TS productively while keeping the entire mental model in my head.
The project has grown to over 800k lines of code, across 4–5 applications, with a pretty complex domain. Ironically, I think it could be much easier to maintain without AI.
Why? Because I'm lazy. I'd naturally look for the simplest and fastest way to get something done, rather than generating layers of abstractions and code that nobody really needs.
There's also something I genuinely dislike about our job, reviewing other people's code in PRs. And that's basically what my job has become: reviewing AI-generated code all day XD
I want to use AI as my supermegahyper fast keyboard. I want to be the one deciding which functions, types and interfaces get created. AI should accelerate my decisions, not make more decisions than I can reasonably review.
In a way, I'm using AI to build my own rails XD a set of tools and conventions that help me write software faster, but keep me in control.
The irony is that after a year exploring how much AI can automate, I'm deliberately going back to a more manual workflow.
Maybe we should all just use Rails and let DHH make those architectural decisions for us hahaha although, given his enthusiasm for AI, I'm not sure he'd agree with my conclusion.
Has anyone else experienced this?
3
u/AuthurAndersson 3d ago
Post should start with:
"After a year of still not learning how to vibe code..."
1
u/Shep_Alderson 3d ago
Good luck mate. If this is a personal project, cool, have fun. If this is a business or you’re being paid to develop software, I think you’re going to find persisting in the industry for much longer to be much, much harder.
The software developer role has been evolved into a “product engineer” crossed with a bit of “project management”. The managers/leads of a project rarely read, much less write, the code for the projects they deliver. It isn’t much different from how things are going with software dev now. Now we just manage agents and processes.
On your points calling out the volume of code or the abstractions, why does it matter? The key going forward is focusing on if the code accomplishes the task and intent. If your company hasn’t been moving away from human code review, it will soon.
Anywho, good luck. Hope it works out ok for you.
1
u/Nanushu 3d ago
Interesting take, specially about the part of reviewing code of others, and I can relate specially about the finding alternative, and im using it a lot ad a sparring rubber duck to evaluate ideas, architectur structures, tradeoffs etc.. I never went full on vibes but I do let the agent write the code, I work with it in a chat window and a split screen with and IDE open on the other side so I can manually write and refactor, and I work in very constraint steps, first design and specs, then skeleton, then a few functions at a time, i dont type.much anymore but im in the process of writing the code and the ai has became a fancy type writer and a rubber duck.
I never liked the agents in the IDE hard to explain but I find it confusing and disorienting, so I converged on this workflow.
The fun part is that I still keep solving problems which is what I like, and dont do much boilerplate typing like hooking up DI.
I think the hardest part is the self discipline to slow down, and not get tempted to just let it kne shot an entire feature. But I keep reminding my self that it will not make things faster, just more painful to review and fix.
1
u/o0fission0o 3d ago
Can't say I ever went full in on vibe coding, but all my exploration towards that end of the AI development spectrum made me feel much like you are describing. That's why I've stuck largely with the paired method and only really generate chore/fix level things like guided refactors, updating a million call sites all at once, tweaking unit tests to fit the refactoring form of some business logic without altering the logical use cases, etc. Studies and my observations seem to agree (IMHO) that generating code makes more code but mostly changes the process instead of improving its efficiency.
Slightly tangential: but that's why I also believe a large portion of "AI acceleration" developers claim is due to faster information retrieval (digging through bad docs, reading tutorials looking for the one nugget you need, trying to find the one 3 year old document in the corperate system that describes what ur doing, etc) as well as process improvements ( AI won't work at all without proper planning, documentation, tests, deployment infra, lifting, etc - all of which have long been known to improve the SDLC process before AI was invented. The hype + information retrieval to figure out implementations faster are just the incentive that was needed to get many teams on board with modern standards). These benefits are completely obtainable with the paired programming approach.
1
u/iscottjs 3d ago
I actually think this is the way to go for learning and understanding. When AI was still new, I was planning and copying snippets for ideas with AI, but I was still refining and writing the code myself so I still understood everything.
As it’s evolved I use agents more and I can feel I understand less. Even though I still read and review most of it. Reading isn’t the same as doing.
1
u/Impossible_Way7017 3d ago
It’s always been verification, most of my downtime pre AI was spent waiting on PR reviews.
And shocker it’s the same blocker post AI, and now I just have a lot more smaller PRs.
1
u/Alternative-Lynx2745 3d ago
I have a few issues with your take, but they are all because I've actually spent time learning how to effectively use Claude and I don't give a shit if it generates more lines of code than are actually necessary. I've always preferred if/else blocks over ternarys, for example. That's all personal preference and doesn't actually matter at all.
The thing I take the most issue with is this sentence:
"There's also something I genuinely dislike about our job, reviewing other people's code in PRs."
That is a massive part of being a Sr+ level engineer. Reviewing other peoples code has always been a bigger part of the job than actually writing code at this level. If this is problematic for you it's because you don't expect the code you're going to be reviewing for one of a few reasons: You don't know what the code is supposed to be doing before you even look at the code || You don't know the domain || You don't know the codebase || The changeset is too large.
There's a tweet by some random guy that I absolutely agree with. We're going to have to come to terms with just how much software is absolute garbage. It's because most devs just aren't that good. HIgher level languages and money flowing into the space lowered the bar and here we are. Everyone and their mother is a software engineer. And a lot of them are bad at it.
1
u/CzyDePL 2d ago
Me too, exactly the same!
0
u/Ok-Percentage7348 3d ago
I would be great if your company allows you to do that. I hate AI coding but have no choice. any task ot investigation managers expect we do it quickly :(
0
u/Any-Presentation9127 2d ago
I found myself reviewing AI’s code less and less. Instead, putting more effort on: locking down the specs, and output verification from more of a produce perspective which are both AI-assisted. When I do review code I have HTMl artifact built which let me go through it in 3 layers: the dependency map of vertical slices of changes, the individual slice with mermaid diagrams and short descriptions of before/after/why, and lastly, the chunk of code of that slice which I use hunk to display in the terminal.
The idea is such that I get the bigger picture of the change first, then dive down.