It is possible to code with AI and not make stupid mistakes, but it takes a damn good developer for that to happen. Sure, AI can write vast amounts of code in no time, but it only has to “understand” a small part of the task wrong to make an absolute mess. And then a human still has to read all of that vast amount of code. And don’t get me wrong, I love my job, but code reviews and nothing else are not what I signed up for.
The problem with AI, for me, is that it writes a lot of good looking code. It doesn’t really take the architecture into consideration so it rearchitects all the time. The big kicker is how code reviews are presented in GitHub. The changes can look mostly fine but just not work with the rest of the code and you won’t see it in a pr.
Straight hallucinations are also fun to catch. One time it created an API out of thin air, wrote tests for it, we got it merged and it didn’t work at all.
I don’t know how to prevent that without actually testing and running through the code. Is my boss really going to be happy if I spend a few hours doing code reviews for my colleagues for every change? I know I need to be doing that regardless, but it just doesn’t happen.
That’s exactly what I do. Grab some vinyl gloves, get into it and analyze everything. Test everything. Re-analyze everything. Merge, repeat.
It sucks ass.
What does help is to set boundaries and prompt very, VERY specifically. “Replace the exception driven behavior with result types, keep to the following packages, only make a plan and suggest a reasonable type. I want to achieve Y, I’m coming from Z. etc.”.
Then, don’t jump into it with the chat or agents. Start with plan and use a good model. Claude Sonnet is the cheapest I use. I tried others, but they caused more work than they achieved to save. Check the plan, switch to implementing. Check the result, run the tests, start a new baby step-task. Don’t try to revamp the whole application. That will not work. Never.
I’ve had the bests results with ignoring the plugins in IDEs, even in IntelliJ or Rider. Currently I use opencode exclusively.
But still, even with all of those precautions, check everything, analyze everything, re-evaluate everything. And don’t forget to commit regularly, so that you can easily revert bullshit changes. And don’t be afraid to revert them, it’s not worth your time.
It still sucks, but it can work this way.
It’s like mob programming with a highly educated idiot.
Lol, LMAO even…
There’s a full version no account/paywall linkin the comment link.
I had an order do something interesting… I assumed it was AI…

