I've denied for poor branch names and commits from AI. I've denied for too verbose of comments from AI. I've denied for parts of the code base being touched that are not relevant to the case they are working on (login isn't broken, your case is to add a check box in the settings pane, remove the changes made to login).
Pre-AI I wasn't fine with PRs with multiple features and touching irrelevant areas of the code base. Why would I be fine with it because my co-workers got new toys? You want AI to refactor a part of the codebase? Fine. Separate branch, new PR, and in the description, present an argument for it. Don't shoe horn it into something else. Also, I'm not obligated to hit approved on shit.
I may also be a bit privileged because I can be a pain in the ass to whole team. I may be slower, but I've got the numbers, my code is creating way less bugs then my "fast more efficient" co-workers.
Turns out not every team has the idea of "progress" being yet another iteration of "more code submitted = better code". Some people actually desire or need to make quality products.
Actually, rejecting them is precisely what will make them easy.
"Sorry, the comments are so bad I'm stopping here. Please fix them and then I'll resume the code review."
You're giving everybody (including yourself) more work by:
1. Reviewing the code (even if you skip the documentation).
2. Letting too many abstruse comments in which everyone in the team will have to read.
3. Allowing the behavior to continue.
Become the bottleneck so the team can talk about it. If they decide this shouldn't be a blocker, just declare you won't review the comments going forward.
Not to mention that the response to each review will come with its own set of new comments and new documentation. The ability of people to write things has exploded tenfold. You can’t out review the slop.
Every PR can be rewritten and re-architected on a whim.
I'm currently not working in tech, but I will again sometime within the next year or so, and I've been reflecting on my career in light of the recent AI madness. I think the biggest mistakes I've made over the last decade+ in tech as a software engineer have been caring. I've worked at small, medium, and large companies. Famous big names you've definitely heard of, less famous ones you probably haven't. In every case, in retrospect, as an individual contributor (non founder, non board member, etc) being personally invested in some outcome--quality, efficiency, cost, ux, customer value--is a mistake.
If you aren't actually in a position to change something, caring about it is futile. [edit] And I don't mean in the sense of "feeling empowered" or some such, but actually having the clout to steer the ship and make it happen. Very few people in a tech organization actually have that power, by design.
The industry wants to do away with code review, meaningful testing, computer security, and reliable services. Why swim upstream? You can't actually do anything about it so why try?
When I go back to work I'm going to do my 9-5 40hr/wk, smile, nod, punch the clock, and make the bosses smile or whatever. But I'll be damned if I'll ever give a shit again.
Because habits beget habits, and in form imprint into your identity. I'm not the biggest fan of GPA fixation, but it does have the side effect of imprinting work habits (I won't say "ethics", because the extremes I saw peers go to to get A's is anything but). It doesn't necessarily imply mastery of your class, but your ability to adjust to someone's standards and meet them. Which is something that will follow you into the workforce, and roughly correlate with people who will meet the standards of their company.
If I don't give a damn about code quality in a place I spend a third of my life, why do I expect to give a damn when I want to work on my own project in the future? Even if I try those habits will wear into something I can call my own. This might be fine if your overall goals have nothing to do with your work; that you are fine just going through the motions and getting a paycheck to empower your non-tech hobbies or focus on supporting your family. But that's not the path I've chosen.
But in this case, we're talking about reviewing a deluge of AI slop. Other employees have been incentivized to generate all that slop. It's not your job as an IC reviewing said slop to push back and try to make it better. It's your job to approve the PR and get out of the way. If you do something else it'll come back at you in a bad way.
And probably if you're not generating a comparable volume of code, your output will be labeled deficient.
These things happened at companies that value their reputations as "good" places to work. Not Amazon. Not Google. I mistakenly thought fixing these problems would not only be possible, but also that it would be appreciated.
Maybe I'm tarring the industry with too broad a brush, but in my experience this is how it is: either you go along with the malfeasance or you're targeted. Being targeted fucking sucks. I'll never paint a target on my back again.
Then remove the whole process and let it go through automatically. I've worked in high trust teams where we would do that - there was no gate.
I left. I will always recommend finding a new job when you have dishonest management. (Dishonest by not admitting they are lowering the quality.)
Fortunately, none of my jobs since that job had that problem. They either allow good quality reviews, or they explicitly accept the technical debt that comes out of it and don't blame me for poor codebases.
(But then again, I make sure to probe these things during the interview process...)
I absolutely plan to do so throughly when I begin interviewing later this year. But I've been fooled before, so it'll take extraordinary evidence to get my hopes up, and I don't think I'll ever truly believe it again. There's always the possibility it isn't real or I'm misunderstanding something.
If you ever trust an employer you put yourself at a profound disadvantage. Employers are not so disadvantaged by placing (judiciously earned) trust in employees. That's because employers are companies, and companies are not people.
As I said here and elsewhere: If management is concerned code review is a bottleneck, let management be aware that the process has to change. Either the human is not as thorough, or he uses some combination of his brain + LLM to conduct the review.
It's a basic fact: They have a machine that produces a lot of code, but don't have a machine to review that code. The bottleneck is obvious. I'd love to build planes for $1 too, but physics applies.
Do you not have team meetings with the manager? Examine some of the PRs your coworkers reviewed, find the flaws, bring it up to the whole team, and get buy-in from the manager that he's OK with it. If he is, stop worrying and let the PRs through.
Also, start writing those CYA emails.
This is also how I do code review of AI work on my projects. If the work is offensive to the point I can't complete the review, I simply reject the code and tell the AI why. Then it goes off and fixes it. This repeats until the issues are either gone or are small enough that I can just fix them myself and move on.
There is no need to be upset. Just iterate until it's right. If it's cheap to write, it's equally cheap to rewrite.