How does this work? Do you allow merging without reviews? Or are other engineers reviewing code way more than you?
But in terms of time spent, thankfully still spend more time writing.
Reviewing human code and writing thoughtful, justified, constructive feedback to help the author grow is one thing - too much of this activity gets draining, for sure, but at least I get the satisfaction of teaching/mentoring through it.
Reviewing AI-generated code, though, I'm increasingly unsure there's any real point to writing constructive feedback, and I can feel I'll burn out if I keep pushing myself to do it. AI also allows less experienced engineers to churn out code faster, so I have more and more code to review.
But right now I'm still "responsible" for "code quality" and "mentoring", even if we are going to have to figure out what those things even mean when everyone is a 10x vibecoder...
Hoping the stock market calms down and I can just decide I'm done with my tech career if/when this change becomes too painful for dinosaurs like me :)
> AI also allows less experienced engineers to churn out code faster, so I have more and more code to review
This to me has been the absolute hardest part of dealing with the post LLM fallout in this industry. It's been so frustrating for me personally I took to writing my thoughts down in a small blog humerously titled
"Yes, I will judge you for using AI...",
in fact I say nearly this exact sentiment in it.
> Generating more complex solutions that are possibly not understood by the engineer submitting the changes.
I'd possibly remove "possibly" :-)
> I'd possibly remove "possibly" :-)
might switch it to "without a doubt" lol
I hate these kind of comments, I'm tired to flag them for removal so they pollute code base more and more, like people did not realise how stupid of a comment this is
# print result
print(result)
I'm yet to experience coding agent to do what I asked for, so many times the solution I came up with was shorter, cleaner, and better approach than what my IDE decided to produce... I think it works well as rubber duck where I was able to explore ideas but in my case that's about it.I sometimes use it to write utility classes/functions in totality when I know the exact behavior, inputs, and outputs.
It's quite good at this. The more standalone the code is, the better it is at this task. It is interesting to review the approaches it takes with some tasks and I find myself sometimes learning new things I would otherwise have not.
I have also noticed a difference in the different models and their approaches.
In one such case, OpenAI dutifully followed my functional outline while Gemini converted it to a class based approach!
In any case, I find that reviewing the output code in these cases is a learning opportunity to see some variety in "thinking".
Basically my job as a staff these days, though not quite that number. I try to pair with those junior to me on some dicey parts of their code at least once a week to get some solid coding time in, and I try to do grunt work that others are not going to get to that can apply leverage to the overall productivity of the organization as a whole.
Implementing complicated sub-systems or features entire from scratch by myself though? Feels like those days are long gone for me. I might get a prototype or sketch out and have someone else implement it, but that's about it.
It’d be even more thankless if instead of writing good feedback that somebody can learn from (or can spark interesting conversations that I can learn from), you would just said “nope GPT it’s not secure enough” and regenerate the whole PR, then read all the way through it again. Absolute tedium nightmare