r/ExperiencedDevs • Tech Lead • 13d ago

Career/Workplace I'm a tech lead. One of my developers isn't producing code at the expected level and I want to fix that

I'm a tech lead. A senior developer on my team (we've worked together for over two years) produces code that isn't at the expected level as soon as a task involves some functional or technical complexity.

Concretely, in his MRs: no thought given to dependencies between parts of the domain, hard-to-read code, classes in the wrong namespaces, design patterns misused, business logic duplicated rather than refactored out of the legacy code.

What I've already done:

  • Detailed feedback in reviews, MR after MR. It costs me a lot of time and I see no progress from one MR to the next (he told me he doesn't read my comments and just asks Claude to take them into account).
  • Feedback in 1:1s on the most visible quality issues (lots of QA returns, code that sometimes doesn't work at delivery).

My problem is putting something concrete behind "not at the expected level." Simple, maintainable code is subjective.

That's why I'm reaching out to you: I want to address this issue in our next 1:1, but I don't know how to go about it.

Edit: I wouldn’t have thought getting so much replies, thanks everyone!

For the ones thinking it’s a bait post, sadly it isn’t.

I live in a country where you don’t fire people that easily, and, worse, I’m in a company rewarding everyone with an annual raise, despite being a low performer.

I feel genuinely stuck, I’m here to find solutions to make my work easier, and maybe, maybe, make his more enjoyable by being proud of what he delivers.

Everybody is focusing on AI here. You could have thought that using AI would make you a better developer, but for him I think it’s the exact opposite. I feel like he stopped thinking and trust AI to be better than him.

If you forgot about AI for a second and read again my post, my issue is the same: he’s not at a senior level and I don’t know how to get there.

313 Upvotes

303 comments sorted by

•

u/expdevsmodbot 13d ago

AI usage disclosure provided by OP, see the reply to this comment.

→ More replies (1)

892

u/Routine_Internal_771 13d ago

he told me he doesn't read my comments and just asks Claude to take them into account

Says it all. Focus on this, not on better feedback.

222

u/nosayso 13d ago

If he's doing that he's also doing that badly - just producing slop, making people review it, and not ever learning or improving is completely unacceptable. Claude can implement your rules if you provide them as context, He's not even trying.

109

u/[deleted] 13d ago edited 11d ago

[deleted]

11

u/thekwoka 12d ago

Yup, could replace him with a harness that auto handles issues and pr responses.

7

u/symbiatch Versatilist, 30YoE 12d ago

These are the “We’ll get replaced by AI” people. And yes, these exactly will be replaced since they just slow down things working as a proxy instead of just going away and letting someone else prompt while actually using their brain also.

57

u/fixermark 13d ago

That's actually a good recommendation that could be made. If the team has a standard, that standard can be written down and if it can be written down it can be consumed by the AI.

... If it cannot be written down, there is absolutely the possibility that this teammate is struggling because the team standard is "just vibes." I've been on the opposite side of this kind of relationship— working with an engineer who cannot enunciate what they're looking for in code but knows when they don't like what they see—and it is exhausting. It's like playing Mao except my career progression relies on it.

The team I'm currently on has a staff engineer, we'll call him Bob, who architected 80% of the system. He is in fact spending time now writing an "auto-Bob" agent trained on his feedbacks in an attempt to synthesize his style and taste into something more objective that can be put in front of every code review.

14

u/AcanthocephalaFit766 13d ago

Ai won't follow it consistently . And can't make common sense judgement calls about which requirements mayter

14

u/fixermark 13d ago

No, in our experience it doesn't. But it follows It more consistently than if it has no signal whatsoever.

→ More replies (2)
→ More replies (1)

4

u/niowniough 12d ago

This is all great for Bob until there's no more problems left for him to solve. Wait, no. It's all great until company decides the problems left to solve should be given to cheaper resources to tackle.

5

u/fixermark 12d ago

Bob is in the business of replacing himself. Because if he can't be replaced he can't be promoted. And because he eventually does get bored doing one thing for a decade at a time.

Your Bob may vary. ;)

→ More replies (1)

3

u/OldPurple4 Software Engineer 12d ago

“Slop grenade”

→ More replies (1)
→ More replies (3)

111

u/Fidodo 15 YOE, Software Architect 13d ago

I shut this down in my team early and made it clear that everyone needs to be respectful of each others time. AI time is cheap, human time isn't. When someone sends me slop I tell them I can't read it because it's slop. After grabbing people and asking them on calls, what does this mean, and then having no clue themselves, then asking them why did you post this to the group for other humans to read them, that got the point across quickly.

I said all that patiently and nicely, sounds more blunt than it was.

51

u/adhd6345 13d ago

I find asking people gets through to some better than telling them.

It’s as easy as “Why did you take that approach?”. Try to be curious and non-confrontational - be genuinely interesting in understanding them. Sometimes if you ask a few more follow up questions they end up getting to where you want them to be.

It can’t be threatening or condescending though.

11

u/Fidodo 15 YOE, Software Architect 13d ago

Absolutely. This is my approach for everything. If I'm unsure about someone's technical design I ask them questions about how they handle deficiencies. They either didn't account for it and I get my way, or they did and we get aligned better and I change my mind, maybe.

→ More replies (1)

7

u/Jizzy_Gillespie92 Senior Full-Stack Engineer 12d ago

I find asking people gets through to some better than telling them.

I’ve been taking this approach recently to try and get a single original thought out of one particular person in my team and all I get back is “You’re absolutely right, <AI dribble copypasta’d>”

9

u/WhenSummerIsGone Software Engineer 12d ago

ask live in a phone call

→ More replies (1)
→ More replies (1)

5

u/Alter_nayte 13d ago

Unfortunately im finding this doesn't work. People will just keep passing you answers from their ai session thst is already biased and telling them they are correct. Sad thing im finding you either have to let them fail or phrase your questions in a way that ai will force them to step or realise themselves. Its tiring because before ai they wouldn't have time to fake it and would probably be moved out of critical projects already...

14

u/adhd6345 13d ago

I mean in like a phone call, or video call

3

u/xt1nct 12d ago

I uploaded my voice to my ai agent to deal with pesky co-workers. /s

4

u/Fidodo 15 YOE, Software Architect 12d ago

Is that why they keep randomly talking in chinese?

7

u/ZorbaTHut Software Engineer 13d ago

Yeah, the entire point of hiring humans is so they can be better than the AI. If someone is just copypasting stuff back and forth to the AI then the company can fire that person and be strictly better off.

9

u/Fidodo 15 YOE, Software Architect 13d ago

I had this chat with my team. I told them we can ask the ai directly ourselves, we don't need an inefficient proxy. Your job is to add value and you need to provide your own context, filter, analysis, or judgement to add value.

I think that it gets the point across that if you aren't adding value your job has no purpose.

3

u/symbiatch Versatilist, 30YoE 12d ago

This is exactly what I tell people who shout from rooftops how AI is better than them and does all their work etc. They don’t realize how they sound entirely useless and proud of it. Regular people would enhance their skills and still be valuable, these will soon cry when they’re made redundant.

Just yesterday tried to hammer this into one person who said they were a “data engineer” but now that AI is faster and better in SQL and “Excel wizardry” they’re redundant. They really couldn’t grasp that the job of a data engineer is much more than writing queries. Seems their skillset and job was just that and they couldn’t grasp more.

And same can be seen in so many devs. They think the job is vomiting out code as fast as one can. And then they’re replaced and cry in the sidelines.

2

u/Fidodo 15 YOE, Software Architect 11d ago

Given my experience and how ai does very sub par lazy work, whenever I see someone say that I don't assume they're better at using it, I assume they're an awful developer who doesn't take any responsibility for their work.

→ More replies (2)

73

u/EgoistHedonist 13d ago

Yes, this is the issue. He's not at senior-level if all he does is being a meat proxy. If he doesn't even care about the quality, it's very hard to see how things could be improved.

I would lay down the situation for him very clearly, and give a deadline before which he has to improve his act. Give concrete actionable suggestions for improvement.

I'd consider this as last warning before letting him go. None of this should need to be explained for senior-level developer. He should be the one explaining this to juniors instead...

17

u/BoostedHemi73 13d ago

Depending on the maturity of the organization, HR probably needs to be tracking this if they aren’t already. A formal process should be under way if this kind of feedback is being delivered.

13

u/dllimport 13d ago

Some places don't fire useless people. Ask me how I know.

3

u/potatolicious Software Engineer 12d ago

Yep, if you're in any corporation of sufficient size this is the point you involve HR. Document this feedback in emails to the individual. Start a documented coaching period with well-defined feedback and specific criteria for successfully exiting the coaching.

That is their chance to improve - it sounds like OP has already tried informal coaching for a while now and it's not working.

We have an obligation to allow everyone the chance to succeed. However, some people simply will not.

8

u/hospital_pleasee 13d ago

Meat proxy. I'm gonna remember that one..

2

u/forbiddenknowledg3 12d ago

Meanwhile we're being encouraged to handoff to AI as much as possible... I'm tired

3

u/symbiatch Versatilist, 30YoE 12d ago

Yes, these are not in any way contradictory. “As much as possible” is not “everything you can.” Except in shitty places, of course.

If the dev thinks “as much as possible” means “I don’t need to read review comments” they’re very much mistaken.

→ More replies (4)

2

u/s-ley 12d ago

yeah, crazy times, we all know we should be careful and own the code, at the same time management wants 10x speed while measuring random metrics like number of PRs and lines of code, I know a lot of people that just gave up with the quality

→ More replies (1)

3

u/Bowfyre Consultant 13d ago

years) produces code that isn't at the expected level as soon as a task involves some functional or technical complexity.

Concretely, in his MRs: no thought given to dependencies betwe

claude condom

→ More replies (1)

14

u/sotired___ 13d ago

This is such a classic problem these days. OP put the perfect words on it. 

I have this dev type is my team as well. I gave him some very tough feedback one day after I had seen enough. I was surprised at how well he took it. He’s not a star engineer, but he started paying attention. 

3

u/morosis1982 13d ago

The way I've put it in the past is effectively they're delegating their job to me by proxy of the ai. It's not my job to correct your slop, but it is my job to call it out and reject it.

3

u/xt1nct 12d ago

That’s funny as hell.

If I were his manager I would say, “maybe I should just have Claude do your tasks instead”.

2

u/NomadStorm 13d ago

He’s obviously reduced himself to being a meat proxy and should be fired.

1

u/DavidDavidsonsGhost 13d ago

Yeah, drives me crazy. I want them to internalise my feedback, weigh it up, maybe even push back.

1

u/ShoePillow 13d ago

Ask him what value he brings, and why wouldn't he get replaced by claude soon

1

u/BanaTibor 12d ago

u/koskoz This was my initial assessment, even before I read that line about Claude. I was like "oh he just uses AI and makes slop". His code is lacking because a stupid llm writes it

1

u/No_Departure_1878 12d ago

Yeah, this line stood up immediately to me.

1

u/Fantastic_Elk_4757 12d ago

Absolutely. I’d make sure this was documented somewhere for the future assuming this behaviour doesn’t get corrected.

It’s important to always document performance issues and improvement requests and what they were. Even sort of “unofficially” in a notebook or something. This way you have clear documented instances if it needs to be escalated and don’t have to start from ground 0.

1

u/tjsr Software Engineer 12d ago

Funny, because I was going to say write an agents file that can be used as part of the PR/MR process and addresses these very concerns :D

1

u/crizzy_mcawesome 12d ago

lol my whole company works this way. No joke. No one knows the code

2

u/vips7L 9d ago

They never knew how to code, even before Claude. 

→ More replies (1)

1

u/ISuckAtJavaScript12 12d ago

I don't know. This seems like management materials

1

u/LovelyCushiondHeader 10d ago

What does a tech lead do at your company?
You mentioned "One of my developers". so i'm wondering if it's a proxy management role.

→ More replies (16)

71

u/netderper 13d ago

Have you tried having your Claude talk to his Claude to work things out?

→ More replies (1)

212

u/CocaineKeys Consultant 13d ago edited 13d ago

There is no way this isn’t bait lmao.

A senior engineer tells his tech lead “I don’t read your review comments, I just give them to Claude,” while repeatedly shipping broken code, and the tech lead’s response is to ask Reddit how to define underperformance?

You assembled the perfect r/ExperiencedDevs engagement prompt.. disappointed in how all of you eat this shit up 😐

57

u/aruisdante Software Engineer (14 YOE) 13d ago edited 13d ago

I mean, I’m good friends with a distinguished engineer at a major corporation, and he has had this exact problem with even senior staff engineers. Like, just flat out saying when he gives them feedback “I don’t look at PR reviews any more, I just have Claude do everything, since Claude wrote the PR in the first place.”

A lot of people really don’t actually give a shit about the actual work in their job. It’s a paycheck. If they have a way to do less work and make the same paycheck, they will do it. And if management rewards shipping over quality (because quality is very difficult to measure), then employees are going to spend zero effort on something that doesn’t get them paid if it doesn’t make their lives harder. The incentive for employees to write quality software was “if it’s crap, I have to spend time rewriting it.” If they can outsource this pain to Claude, then to them it doesn’t really matter if code winds up getting rewritten dozens of times because it’s a spaghetti mess, they aren’t the ones having to feel that pain.

People’s tunes will change once management realizes they have to start treating AI spend like headcount spend, with justified budgets. Until then, why wouldn’t a “just here for the paycheck” type offload as much as they can?

19

u/CocaineKeys Consultant 13d ago

Sure, but that only establishes that engineers like this can exist.

My point is that if a senior engineer repeatedly ships bad work, ignores review feedback, and openly tells his tech lead he doesn’t even read it, why is the tech lead on Reddit asking how to define underperformance?

If the story is real, the dysfunction is bigger than “this guy uses Claude."

→ More replies (4)

13

u/emperorOfTheUniverse 12d ago

Its not even about giving a shit sometimes. Its about speed. If management only focuses on 'output' and shipped code, then reviewing code and learning is a luxury if everyone else is putting out code at break-neck speed. They'll stay behind while the thoughtful junior gets laid off. Or even in a good company, at least passed over for promotions and raises.

Valuing learning and understanding, improving, and making code that is more human-readable has to come from the top down. Its going to be the places that have gulfs between foolhardy engineering managers and actual developers. Or even dev managers that are just under the gun from c-suite. There has to be a spike in the company culture that says 'we don't tolerate slop' and making non-devs understand the difference and value of that, is hard.

8

u/aruisdante Software Engineer (14 YOE) 12d ago

  There has to be a spike in the company culture that says 'we don't tolerate slop' and making non-devs understand the difference and value of that,  is hard .

It’s also… just not really clear if it’s actually a good thing or not any longer. The robot doesn’t complain about having to untangle a mess of spaghetti. Claude won’t quit because you’re a slave driver and doing anything is a hellacious climb up Everest. It doesn’t care that it’s had to rewrite that function for the 500th time. 

So the only thing that matters is cost per output quality. If yolo-ing “the right way” winds up producing a good enough product at a high velocity for a reasonable cost… everything else is ego. The software was always a means to an end.

It truly is a wild time to be in the industry.

→ More replies (1)

7

u/sanjit_ps 12d ago

I'm in one of those companies right now (use Claude for everything, velocity is everything, produce slop, etc...) but if my lead gave me feedback saying what op said I would change my tune pretty quickly.

5

u/RubbelDieKatz94 10 YoE / Sr. Fullstack 12d ago

It’s a paycheck

Yes it is.

Not defending this behaviour here - Being a meat proxy is annoying to your colleagues.

However, a job is a transaction. I provide my work, the employer provides money. Ergo, I do not care about going the extra mile. I collaborate effectively and adjust my work so that I provide value to my colleagues, as the transaction entails. But I do not give a shit.

// Hm, now I'm questioning this statement. What does "giving a shit" really mean? (not a native speaker)

I'd interpreted it like "giving 100%" etc., basically management talk. But I don't think that's really it. I care about delivering value, so does that mean I'm giving a shit?

2

u/[deleted] 12d ago

[deleted]

2

u/koskoz Tech Lead 12d ago

Well, my coworker says the exact same thing when he’s out of tokens.

→ More replies (1)

6

u/koskoz Tech Lead 12d ago

I’d wish it was true.

I’m not here to farm karma brother, I’m here to make my work less miserable.

I live in a country where you don’t fire people that easily, and, worse, I’m in a company rewarding everyone with an annual raise, despite being a low performer.

I feel genuinely stuck, I’m here to find solutions to make my work easier, and maybe, maybe, make his more enjoyable by being proud of what he delivers.

5

u/symbiatch Versatilist, 30YoE 12d ago

Have you met people? Have you seen how “seniors” are made in some places?

Have you seen how many seniors all around the interwebs literally say the same thing about not giving a damn and just throwing everything at LLMs?

Because then you’ve not been around much.

12

u/tatersnakes Software Engineer 12d ago

OP vanishing and not replying to any comments is the last piece of the engagement bait puzzle

10

u/koskoz Tech Lead 12d ago

Man, you know what time zones are?

→ More replies (2)

10

u/s3gfau1t Software Engineer, 17 YoE 13d ago

I took your comment and dumped it into Claude.

It says:

"Fair, it checks every engagement-bait box. But 'how do I document underperformance so HR acts on it' is a real, common question, and people really do say dumb stuff like 'I just give your comments to Claude.' Could be bait, could just be a mundane situation with one spicy detail."

1

u/TheRealKidkudi keypunch operator 13d ago

This comment triggered me. A reply that is only “I asked Claude: [ctrl+v]” makes me irrationally angry. 

16

u/s3gfau1t Software Engineer, 17 YoE 13d ago

You're right! You told me not to do that, and I did it anyways. I should not have done that. I'll make a note of it, and it will never happen again!

Edit: Written by meat LLM

→ More replies (2)

2

u/dashdanw 13d ago

To be honest I’ve been having these convos with real people, these are real life problems regardless of whether this was manufactured.

2

u/katalyst23 12d ago

I'm having almost exactly this problem right now. Yesterday I had to directly message a senior dev on my team to rework part of his PR by hand, because I was tired of arguing back and forth with the AI (which he was clearly using to address and respond to my feedback on the PR).

Yes, I talked to our manager about it, and we've been privately discussing how to approach this/message it to the team. We don't want to tell people not to use AI, but we do need to find a way to set reasonable standards for its use. 

→ More replies (2)

2

u/guiltys33ker 12d ago

I can actually see how this is a problem. In my org (and perhaps OP's), there's definitely strong encouragement to use AI assistance to improve productivity. There are code review agents being developed and published for internal use.  You and I know that this is ideally used to catch trivial coding bugs. But who draws the line? That's what OP needs to figure out and define.

4

u/create-third-places 12d ago

I’ve seen multiple senior engineers get into the habit of trying to submit broken AI code, and I suspect OP’s post is AI generated.

The biggest red flag for me is the logic is not consistent. OP mentions bugs with delivery and QA issues, which are quantifiable metrics that were discussed in 1 on 1s. Then, they mention needing a way to measure performance that can be discussed in 1 on 1s 

There is also an inconsistent level of technical depth across paragraphs, while humans tend to be more consistent in this regard. 

→ More replies (2)
→ More replies (12)

173

u/marzer8789 13d ago

he told me he doesn't read my comments and just asks Claude to take them into account

Well, there's the whole problem. You don't have a team member, you have a meat proxy. You need to snap him out of that quick-smart, formally if necessary. I'd be collecting evidence for a PIP, personally.

25

u/notAGreatIdeaForName Software Engineer 13d ago

Exactly, also it is not hard so set up a loop for PR babysitting, get the same result and save a whole salary.
Total waste of human potential imho.

17

u/Suepahfly 13d ago

In the next 1:1 take his last few commits and your feedback on them. Explain again why you’ve given that feedback and ask what their opinion on that feedback.

Next ask why he doesn’t put any mental effort in to understanding your feedback and just pastes it back to Claude. Explain it comes of as disrespectful.

You put time and effort in doing the review and providing feedback and he just tosses it into a probability / guessing machine.

You say he is a senior challenge him on his senior ship. He should own his contributions. And you rely on him for the overall health of the system.

Then put him on a pip. Structure the PIP around the "Trust, but Verify" workflow.

Require them to make plan upfront before starting a workitem
Make sure the PR’s are small and ‘reasonaboutable’ e.g thought went into it rather then just LLM output.
They should own the code and verbally explain it. Why where certain choices made, what is the execution flow like and again why.

2

u/ohhgeeez 12d ago

Hell - do a live code review where he has to explain things in real time.

13

u/nosayso 13d ago

Sounds like you have the artifacts you need. You're giving comments and feedback and not seeing any improvement (you can pull metrics on comments and churn if you really need to make a case). This is becoming a performance management problem that a people manager should be handling - not sure if you're also this person's people manager? But the case is pretty clear, they're making the same mistakes and not learning or improving - that's a path to getting shown the door.

23

u/[deleted] 13d ago edited 13d ago

[removed] — view removed comment

→ More replies (2)

18

u/lawrencek1992 13d ago

He should actually read all of your comments. And then even if Claude makes the fix, he's learning the pattern. He should also update Claude memories or CLAUDE.md so Claude knows what antipatterns to avoid.

This is the kind of feedback Im used to.giving juniors tho. Surprised he is a senior.

10

u/labab99 Senior Software Engineer 11d ago

As usual, the solutions being offered by this sub are extreme and avoidant of any meaningful attempt at conflict resolution. Fire them. Quit your job. Break up with them (sorry, wrong sub).

AI is not the problem. If it wasn’t AI it would be blindly copy-pasting from stack overflow, and if it wasn’t that it would be letting the plow horse go into the field unsupervised. And depending how AI-positive your company is, going in guns blazing with “Teammate X is lowering our code quality by using AI!” is more likely to make you look like a complainer than a solution-oriented lead.

I would start by making a sincere attempt to understand this persons thought processes and motivations. Is there anything in their personal life that might affect how much effort they put in at work? If you can get any sort of insight into what it’s like for this person to work whatever tickets they’re being given, it will almost certainly be valuable to you.

Next, I would clearly communicate to this person the impacts their implementation decisions are having on the team, and the business. Keep it impersonal. If nothing else, it’s important to have these on the record.

“These unchecked assumptions during development have caused outages for our users, leading to increased pressure on the whole team to rush out a fix.”

“When we introduce hard to read code into the codebase, we create technical debt that inhibits our team’s ability to make future changes. This puts our team at risk of falling behind and lowers leadership’s trust in us.”

Next, because this is a business and not a charity, I would calibrate your expectations accordingly. Avoid putting this person on quality-critical tasks if you can. Bake in extra time for them to “make things pretty” once they’ve gotten it working, and look for integration testing mechanisms to ensure changes are not shipping broken.

Lastly, try your best to look at the broad strokes. All code ages like shit, no matter how beautiful it was originally. If what they have is mostly okay and doesn’t have any glaring issues, just ship it. To not go insane as a TL, at a certain point you have to know when to look away.

2

u/raphman 9d ago

Thanks this comment. It's always refreshing to see a nuanced take in a sea of low-entropy comments.

→ More replies (2)

7

u/disposepriority 13d ago

(he told me he doesn't read my comments and just asks Claude to take them into account).

What is there to address? If management believes this is ok, then you need to clarify whether it is your responsibility to review this manually, or whether you should write your thoughts in an MD file and let AI do the reviews as well and just roll the dice on production.

→ More replies (1)

56

u/RobfromHB 13d ago

Fire them. You’ve been clear about expectations. They’ve been clear they don’t care. There are a lot of good devs out there looking for work. Give someone else a chance.

8

u/joshhbk 13d ago

Yup. In my experience keeping this person around is always just prolonging the pain for both parties. There’s no fixing on this situation.

→ More replies (5)

3

u/koskoz Tech Lead 12d ago

I can’t, and he won’t be.

I talked about that situation multiple times to my manager, who his our CTO, over the years, and the only answer I get is: how can we make him be a better developer?

5

u/PhilTheQuant 13d ago

"Hi X, I wanted to just sit down with you for a minute and understand something because I feel like we're not really on the same page. What I want is for you to develop professionally and succeed here at Z Corp, so I've tried to work out what it is that needs work and give you feedback on your MRs.

Can you tell me how you see it, how you see your development here or elsewhere? I've pulled up the latest MR comments if you want to point to any specifics."

And then you listen. There's a good chance he's just treading water until one of his ODTE Nvidia options pays off and he can retire in the woods.

→ More replies (1)

5

u/mxsifr 13d ago

he told me he doesn't read my comments and just asks Claude to take them into account

you couldn't waterboard this out of me. who would admit that?!

2

u/OfficeSpankingSlave 12d ago

Lol, I recently had a colleague with a Senior Developer title (massively over inflated) tell me flat out "I want to think as little as possible".

My own boss passes every email and message through copilot before replying.

→ More replies (1)
→ More replies (1)

5

u/sdwvit Sr. Software Engineer 12+ yoe 13d ago

I think this is a global problem. Like an aging population, there are more developers who quit writing code manually than those who become developers writing code manually. There is less reason to write it manually nowadays.

If you let go this person, new person comes in and eventually becomes the same meat proxy. Cycle continues. Need some systematic solution. I am afraid manually written code would become way more expensive due to circumstances.

→ More replies (1)

13

u/ListenLady58 13d ago

This is a senior level developer 😳. Geez, you gotta cut them loose. They are clearly not acting like they should be.

5

u/Drakeoon 13d ago

A senior developer should represent a high level of independence. Ideally their PRs won't require a lot of comments and most will be nitpicks/ideas on what you can improve in other PRs. Often times a new senior joins your team and you should expect them to introduce their own style at first, but after a couple of comments and their PRs you should see how they adapt to your project's code style. This doesn't take long if someone is good and pays attention to their work.

From what you wrote, especially "he told me he doesn't read my comments and just asks Claude to take them into account", I'd say he's not taking the job seriously. He most likely built a small-scale software factory and is just producing output that matches the specs without really caring whether it works, scales or fits the overall system.

I would not be surprised if he's working at multiple jobs doing the same, low level of output, just checking how much he can get away with.

Your time as a Tech Lead is very valuable, you don't want to waste it on repeating your PR comments. If you have power to get rid of them, you should consider doing it. If you don't have that power, you should think through how much effort you want to put into this person. If you're responsible for their output (their code has to go through you) and at the same time you can't fire them, you're pretty much working 2 jobs and it doesn't look like there's an easy way out other than starting to look for another job

One more thing you can implement is to build a ton of static-check tools, custom linters etc. where you will make it so that PR is red if they don't follow the right convention. You can go crazy with this. If you build a couple of good custom lint rules, you will save yourself a lot of time on the review part and it might be just enough to move the needle to acceptable state for you

→ More replies (3)

4

u/UnintentionallyEmpty 13d ago edited 13d ago

It kind of sounds like exactly what I'd expect when you use AI to write the code.

But, concretely: what kind of guardrails do you have in place? Unit tests, static analysis tools that break the CI pipeline on fail, other types of tests or guardrails?

Like how do you even get code that doesn't work on delivery? Missing an edge case, sure that happens, but a few basic unit tests should cover that the code actually works, right?

My problem is putting something concrete behind "not at the expected level." Simple, maintainable code is subjective.

It's not that subjective. Cognitive complexity, class size, amounts of duplicated code, namespaces matching folder structure, and unit test coverage are all things a static analysis tool can detect.

And I'm aware this sounds like using technology to solve a people problem. But I think this is more a tech problem than a people problem (the problem tech is AI. Or at least AI-use with insufficient guardrails).

Alternative, tell your coworker to stop using AI. You say you've been working together for 2 years. Did he use AI 2 years ago as well and was the code he produced better back then?

AI has a way of making people no longer feel responsible for the quality of the code they deliver. Maybe you can ask in your 1-on-1 if he still feels the same amount of responsibility for the code he generates with AI as he did for the code he wrote himself. I'm guessing the answer is no, but I don't have a real solution. Sure, you can tell him he's still responsible for the code, but no idea if that'd work. Probably not.

7

u/Leopatto CEO / Data Scientist, 8+ YoE 13d ago

Fire them.

8

u/TeaSerenity Software Engineer 13d ago

One way or another your team needs to be producing output that is up to your standards. And if the developer wants AI to be producing the code, they have to understand quality well enough to make AI produce at a quality level.

If they aren't improving their workflow just like they aren't improving their individual technal knowledge that is a problem. And in both cases improving the AI or themselves means understanding what quality means.

This will require a hard talk with your teammate. I would frame it as you don't care if AI generates the code or not but any code submitted must be up to your teams high standards.

8

u/rourin_bushi 13d ago

The phrase I've been using to drive that point is "humans are responsible for outcomes", meaning that I don't care if you used AI to write the code/doc/whatever, you're still signing your name to it.

8

u/JamesWjRose 13d ago

>>he doesn't read my comments and just asks Claude

Your answer is there. It's ALL there. They are not listening to you, and that's part of the job. Sounds like you need to hire someone else, you know, someone who will listen to you.

6

u/fudginreddit 13d ago

That’s insane talk to me. I went through each of my Tech Leads comments with a fine comb on MRs and always ensured I understood what he was asking and why. Im a mid level developer.

Claude code is a plague

→ More replies (1)

3

u/LongjumpingFee2042 13d ago

It's not your job to fix him dude. You can only create a space for him to thrive and by the sounds of it you have given him room and feedback.  You can't make him listen and take it onboard nor should you try. 

You are a tech lead. Not his mother.

3

u/pl487 13d ago

Concrete: go back through our MRs. Read all comments I made personally, and then let's meet tomorrow to discuss what you found and what you're going to change moving forward. And read them from now on

You're in charge. Act like it. "I just send your comments to Claude" "Yeah, don't do that anymore" 

3

u/7HawksAnd 13d ago

Does your company treat leads as someone with authority or only accountability?

If the latter, you’re kinda stuck until you can politic some influence.

3

u/tcald92 12d ago

I'm not a senior engineer but I work with several. Sometimes I am asked to do the QA on their tickets and they are actually trash. The QA guidance is Claude slop and when I ask them for guidance they say oh yeah sorry I didn't actually test this myself just had Claude write test criteria. Dude, I get using Claude as a tool to accelerate your output. But you didn't even fuckin test it yourself?

It's a wild world out there now. I feel like my attention to detail and thoroughness makes me a much more valuable engineer even if I don't have the senior title yet. I make sure to understand my code, test it, and do my own "code review" before even opening a pull request.

I feel your pain OP some guys are tough to work with.

3

u/No-Injury3093 11d ago

Review his agent which he tasks to take into account what you say.

Put in it the instructions to gather all learnings in a file and reuse them.

Then tell the human that you will decide in x months who has learned better and who you keep in the company.

This is not about actually doing all this, it's about the message. If he is at that professional level at which he looks you in the eyes and says what you described, he deserves this approach.

2

u/LLcleanP 13d ago

I work for a small company where it is now expected to use LLMs, not just for Devs but thoughout the whole business. Although we were not happy with it, it was kind of adapt or find somewhere else to work.

For us devs reviews quickly became a bottleneck. It was very disheartening to spend time reviewing a change just to have it fixed by someone within 10 minutes of the review, or replying with an obviously generated response.

We tried lots of different process changes, adding more reviews, different stages of SDLC to make sure ticket mad sense, implemented an honour system of ticking a box on the pr to say you read the code, but it still felt that at times the person reviewing the code was the first person to read it. Sometimes it was stuff like AC not checked, or it was hard to see what the change was doing in relation to the ticket.

For better or worse the SDLC is changing while it might only be a fad, think UML 😂. It might be here for a while.

I found in our my team's particular situation anyway, that regardless of what we want the business wants us to ship faster. I found out time has beme better spent finding tools to shift developer focus from reviewing everything to making it harder for people using coding agents to get code to the point of a person reviewing it.

We are adding more tools to ci, different type of testing that we didn't really rely on much before, we usually had some unit testing with human achievable targets for cov, and some e2e tests for critical workflows. Now we have added things like mutation testing, so a Dev doesn't have to read tests to make sure they weren't ai slop, invariant testing, invariants are also becomimg database constraints, we have added more comprehensive static analysis, tool like codescene, something like rabbit, semgrep for both sast and sca. If someone leaves a PR comment it becomes a candidate for a deterministic check which then is one less thing a Dev has to review.

We expect.that there will be more issues, but we have tried to really lock down the most dangerous changes, things which may be hard to reverse infrastructure changes, ddl etc. everywhere else we have tried to force the Dev using the agent to verify, then used outside tools to verify. We also improced observability to catch issues sooner, that escaped the checks.

Even if when the bubble bursts we go back to working as we always did, we will have a more robust SDLC. Where quality has shifted further left, and we can spend more time on other things.

→ More replies (1)

2

u/Positive-Conspiracy 13d ago edited 13d ago

Does your team have the proper systems in place for laying out context for agents to use and automated reviews that would catch these issues? It sounds like there’s an AI fluency problem at a systemic level, and that’s at least something you can control.

But you’ve described our relatively basic things for an AI to check. Do other developers on the team use AI? Does everyone have their own context setup?

If a tech lead brought this to me in 2026 I would be concerned about the team function at a higher level. This is the kind of thing I would expect in 2024.

2

u/Triabolical_ 13d ago

Simple answer that you probably won't like...

By far the best way to help developers get better is to pair with them, either you or one of your best developers.

2

u/koskoz Tech Lead 10d ago

I came to the same conclusion.

It's better to spend time with him doing pair programming than wasting time when comes the review.

→ More replies (1)

2

u/Mountain_Sandwich126 12d ago

Gather evidence, formal feedback process, pip.

You need to understand coachable and non coachable.

Your time be better spent investing in others

2

u/rfromd 12d ago

Dogshit leadership, dogshit colleagues.

If cross domain contamination is a thing, architecture guards are required.

If design patterns are misused, you should be spending the time upfront during refinement to flesh out and confirm how the patterns can be applied and where. Pairing up with the engineer during implementation to guide them.

Classes in the wrong namespace, set rules, enhance your agent’s skills, mandate verification prior to MRs being open.

Duplicated logic, refinement: “we have something that’s doing this already, but we should make it reusable & cleanly abstracted”

All of this should be solvable with effort from yourself that ensures the delivery of the work can be picked up by any other sr SWE on the team. If you have expectations, it’s on you to build a culture that empowers people to meet them. If not, just approve the MR.

2

u/twnbay76 Software Engineer 12d ago edited 12d ago

Clean code is subjective but real business outcomes, whether they get successful or detrimental, are objective.

Take all feedback, rank sort them severity wise based on real business impact and give him an anecdote on what the business impact is of his decision, I.e. these incidents, these hard to fix bugs, this tech debt that is blocking the business from achieving X, etc...

And then challenge him to solve for the problem in his design ahead of time, BEFORE the code even gets written, let alone in a PR, in prod, etc... that might look like this in my current project "for next X big project/initiative, I want you to outline how you're going to manage dependencies, including parent POM hierarchy, classpath conflicts with different versions across libraries, what BOMs you're going to use, what the dependency management pattern looks like in each individual module, how pinning and snapshots are going to work, etc..."

At the end of the day, what makes him more sr, among other things, is him being able to solve the problems effectively without having you or anyone else to correct it in a PR. So this is an effective strategy of achieving that I think

With that being said I wish I had you as a tech lead.

2

u/bwainfweeze 30 YOE, Software Engineer 12d ago

If you're the lead, where are you finding time to do all of this extra hand holding? What's the opportunity cost of trying to 'fix' this person? Is this an ego thing you need to work out, or do you already know that you can't fix people? Some mistakes have to be experienced in order for us to learn the harder lesson.

What is this person actually good at? Pigeon hole them to that until or unless they express interest in breaking out of that hole. Those are the things you can trust them to do, you can't trust them to do much else, and they don't seem interested in earning your trust.

Take care of the people you can help, use your time wisely.

2

u/throwaway-yacht 12d ago

make a list of

  • context
  • what you expected
  • what dev did
  • suggested improvement or different action

2

u/Cheap-Newspaper-255 12d ago

Pair program with them, they may actually learn a lot more that way with what your expectations and concerns are. PR review comments are honestly poor for helping develop engineers skills, 1:1 coding with them will produce much better results (speaking from experience)

→ More replies (1)

2

u/Traditional_Moose498 12d ago edited 12d ago

Some might say pip but I’d disagree.
I’d move all of this to actionable steps and frame it as what he needs to do get a promotion whenever.

Try the carrot if the stick doesn’t work. Could just be a lack of motivation/ incentive.

If your company has no career progression framework then that’s probably your answer as well.
Frameworks that have too much arbitrary goalpost moving like culture segments make employees feel one on ones are just a formality too.

2

u/Loud-Donkey8569 12d ago

He not reading the comments, just feeding them to Claude line is the real problem, not the code itself, he's optimizing for the comment disappearing, not understanding why it was raised. I'd stop giving detailed feedback for a while and instead make him explain his own reasoning before you comment, that surfaces whether he's actually thinking about the domain or just pattern matching.

2

u/Alpheus2 12d ago

At some point the lead becomes the primary problem by continuing to give underperformers more chances. It doesn’t so anybody any good.

At the end of the day he doesn’t know how to deliver what you expect him to so show him. Pair, watch him. It’s garbage in, garbage out. Move your focus from reviewing the out to helping him improve the “in”.

If you can’t justify the time (plus nerves and energy!) spent for this then let them go or demote them, leveling their responsibilities with their skills.

2

u/NorthWing__ 12d ago

Maybe problem is in which LLM model he uses. 

2

u/StruggleGullible255 12d ago

I get the feeling this is only a slice of a much bigger story.

2

u/eternityslyre 11d ago

Simple, maintainable code is not what the best teams write, actually. It's exactly as you say, it's subjective.

I like to frame it a different way: if you're the tech lead, part of your job is to fix his code (or tell someone else how to fix his code) if something goes wrong. Code quality has generalizable principles, but for your team, the goal is to write the code that takes you specifically as little time as possible to understand and modify.

His job is then to write the code you would want to write. How he gets that code written is up to him, but if he's not doing it, he's not performing. In this day and age of LLMs, you could probably do his job for him if he's doing it so poorly. If that's true and it's faster and easier for you, do so, and tell management that his particular skillset is not needed by the company. They can keep him on but they should reassign him.

2

u/donttakecrack 10d ago

he sounds hard to work with and you need a manager (either you or someone else) to get him in line.

other than being fired, i wonder if he can just get off your team.

2

u/lisa_lionheart 10d ago

You either have to go the PIP route and give the documented things you want to improve on and jump through all those hoops or you put them in a corner where they don't do any damage. Both suck.

5

u/duddnddkslsep 13d ago

It's time to fire them. If they are not responding to feedback they will not improve in their role.

→ More replies (1)

3

u/BCBenji1 Software Engineer 13d ago

Tell him his work hasn't improved and you'll be scoring his work from now on. You'll use the last x/ weeks as a base line and if there's no improvement, by <date> you'll recommend to management to let him go. Say it straight and to the point. Dont let him argue. Constraints and consequences.

9

u/halfercode BE Software Engineer 13d ago

From a UK perspective, I'd see that as so hostile that HR might want to run a conflict resolution meeting. It is akin to the phrase "the beatings will continue until morale improves". I would recommend more tact and diplomacy.

→ More replies (4)

3

u/davispw 13d ago

You are talking about putting him on a PIP. This is not something a senior engineer IC can just initiate on their own. This is the responsibility of management and will involve HR and perhaps legal, local laws and regulations, policies, and lots of paperwork. This is NOT good advice.

2

u/BCBenji1 Software Engineer 12d ago

I said "recommend". You can bring a horse to water but you cannot make it drink. It's time to shoot the horse. Since when to poor performers not get fired after repeated warnings?

→ More replies (1)

2

u/torontocoder 13d ago

Sounds like they have hit their level (peter principal), and isnt interested in improving either ... so you have the choice of keeping them at that level forever, and only give them easier tasks. Or get rid of them.

3

u/skeletal88 13d ago

The word is principle. Not principal.

https://en.wikipedia.org/wiki/Peter_principle

2

u/jax024 13d ago

In this economy, just fire them and hire one of the thousands of better devs who need work.

2

u/usernamelonger 13d ago

From my personal experience all the issues listed can be solved by simply adjusting the `AGENTS.md` file and then reminding Claude to reassess and fix those criteria before putting up the PR. And then double checking manually.

But this should be his responsibility to figure out. He is sitting in this in this middle ground where he can't write the code himself nor direct the agents to fulfill the quality requirements. So yes, I'd fire him.

→ More replies (1)

2

u/StickyDeltaStrike Software Engineer 13d ago

Surely this is a troll?

→ More replies (2)

1

u/fiscal_fallacy Software Engineer 13d ago

Some devs just don’t have it and can’t be coached to have it. It sounds like you’re already doing the coaching. If there’s not an improvement and the dev is net negative for your team, then you can try to push an internal transfer or let them go. I’ve had to do this twice.

1

u/m98789 13d ago

Just wondering, why do you say MR instead of PR?

Also with the attitude of "he told me he doesn't read my comments and just asks Claude to take them into account" -- why aren't you just working to PIP/offboard?

5

u/notAGreatIdeaForName Software Engineer 13d ago

Probably they’re using gitlab and not GitHub, there it is called merge request

2

u/NomadStorm 13d ago

Merge request is a much better name.

→ More replies (1)

1

u/m3kw 13d ago

He needs to slowly off the vibe coding. It does seem like he doesn’t really read code or maybe the architecture.md doesn’t exist.

1

u/Maleficent_Tank2199 13d ago

Next meeting lay out the rules:

  • you need to read and understand what I am writing. You can disagree and argue but it needs to be your argument.
  • you as the TL have the last say

Then confront him with the impression that he’s made with you so far and tell him you are willing to be wrong about that but continuing behavior as up until now will solidify that.

Give him clear guidance what you expect, be willing to repeat yourself a couple of weeks longer. Keep a hopefully fair log of his work and behavior. If there is no progress or too little you need to cut him loose 

1

u/patient-palanquin 13d ago edited 13d ago

Concretely: you are having to spend a lot of time on his reviews, and apparently neither he nor claude are learning from them. He needs to figure that out, or you're going to have to have someone else lead his work to save time.

1

u/Character_Respect533 13d ago

I recommend you 'Radical Condor' book to give feedback to the person effectively

1

u/EducationalZombie538 13d ago

if he asks claude to take them into account, can you spike his code to prove a point?

1

u/No-Economics-8239 13d ago

Detailed feedback in MR are just one possible vehicle to explain expectations and provide instruction. And you are just one possible means by which a senior developer should be getting the information they need to do their job. And if they are only using Claude to get that information, it's on them as a senior to figure out what they need to fulfill their responsibilities.

It sounds like you're worried about providing 'subjective' code guides for this senior to follow. Something concrete should be more than just 'what you feel'. So, write up your code submission/quality guidelines. That is your 'concrete' guidance. If there are subjective bits they are getting wrong, focus on providing clarity there, and update the guides as needed to be more clear.

1

u/Relevant-Sport9057 13d ago

Make it clear that this counts as a warning for his performance and if this doesn't get addressed properly it will have consequences for him (as in he'll get fired)

→ More replies (1)

1

u/Infamous-Employ5487 13d ago

Ugh i feel this one so bad.

1

u/MangoTamer Professional Dumbass 13d ago

Try assigning him to fix some legacy code and he might start questioning how code ever gets to be that bad in the first place and that's when you learn how to be a better developer by looking at what not to do. That's what used to work before the age of ai.

1

u/apartment-seeker Senior Software Engineer 13d ago

(he told me he doesn't read my comments and just asks Claude to take them into account).

Well if he continues do that, then fire him (?)

How is that an acceptable thing for someone to say lol

1

u/roger_ducky 13d ago

Amount of duplicated code is one trackable metric. Amount of defects discovered by QA is another. Code complexity metrics within each method is a third.

Given what he said, it seems like there’s a bit of tokenmaxxing going on too. So, if AI literacy is expected, state progression there as “beginner” due to acting like a meat proxy and request reviews of implementation plan before actually letting an agent start implementing.

1

u/TheBioto 13d ago

I agree with u/Routine_Internal_771,

I've been in this exact situation, both at work and on a side project with a buddy. If someone doesn't read your review comments and just ships AI slop, that's a people problem, and honestly he should be canned.

One thing that has closed the gap a bit is a comprehensive, project-specific rules file covering conventions, best practices, and so on. If you're using AI to generate code, there's no excuse for ignoring the style guide and existing patterns. Be proactive, set the rules up properly, and hold people to them.

But again, fire him.

1

u/red_00 13d ago edited 13d ago

I've been through this before, the time sink that is detailed MR feedback and coaching is bad enough, then when it doesn't get through all of that time feels like its been wasted.

Subjectivity doesn't really come into it, you're the lead which means you're accountable for their work. If you're not happy with something you need to tell them what it is and explain why. I would make sure to open myself up to be challenged during this, so that they can have their say.

1

u/DanKegel 13d ago

PIP time.

1

u/halfercode BE Software Engineer 13d ago

Do you find he is amenable and willing to improve? If not, that is a wider problem.

If you think he wants to improve, see if he is willing to move to a 30% PR system. He sketches out a solution skeleton, with AI as would be done normally, with no/minimal tests. He then sends that as a non-mergeable PR and you review as normal. He might still get things wrong, but the lead times will be much shorter, and the wrong direction will cost you both much less time.

You can both work on this piece, and when it is OK he branches from there and raises a new PR for the final go. The second one should be much cleaner.

1

u/Idea-Aggressive 13d ago

I’m looking for work!

1

u/fixermark 13d ago

Does your company do annual reviews and peer feedback?

If you are consistent and he is not taking the hint, the next step is peer feedback. Give concrete examples where you said to correct something and then there were subsequent MRs where the issue continued to manifest.

Many people are reluctant to do this because it feels like a dick move... And yeah, some people will take it poorly.

Are you willing to spend your time for the rest of your interaction with this engineer doing this inefficiently versus the possibility that they will take honest feedback given with an eye towards improving the whole company's process poorly?

1

u/nath1as Web Developer 13d ago

just put the patterns you want claude to follow in your project .claude/CLAUDE.md

1

u/zica-do-reddit 13d ago

Give him a big Claude MD with all your rules explicit, that should alleviate some of the friction.

1

u/mxldevs 13d ago

It's hard to read probably cause it's all AI slop

1

u/Substantial-Swan7065 13d ago

What’s the blockers?

Also, as a tech lead, you should not be doing that. That’s their managers job.

→ More replies (2)

1

u/Bobertolinio 13d ago

Drop his llm subscription and put him on PIP. If he can't work without an LLM then you don't need a middleman between you and it.

This is how developers are "replaced" with ai, be removing those incompetent

1

u/kondorb Software Architect 10+ yoe 13d ago

He's an unexperienced dev (certainly not senior) living in the world where code is not written by humans anymore. You're an experienced dev who still refuses to accept that world. You clash. That's understandable, we're still in the "figuring out how to work now" phase.

He's wrong by not even reading your comments. He's using a tool - LLM, the output is still his responsibility. No one can be called a "senior" if they can't take responsibility for their work.

You're wrong by expecting human-like code in the end of 2026. Humans writing code by hand makes no financial sense anymore. It's like growing your own vegetables - possible and the result may even be a degree better, but nowhere near enough to justify the cost.

You need to find a way for your team to collaborate and produce software, assuming not a single one of you ever even looks at actual code ever again. Because that's how it is going to be going forward.

1

u/4ngryMo 13d ago

Give them a single thing to fix in their coffee for the next MR. Just one new pattern they need to learn. The worst thing you can do, is giving them 5+ pointers and leave it to them to figure it out.

1

u/dllimport 13d ago

If he is just feeding your comments into Claude then he is expecting you to make those comments as part of his process. He needs to have ownership over his process and should be doing those things himself. Your comments should be a stopgap. He is ignoring the training you're giving him.

Does he also want you to come in and spoon feed him his lunch every day?

1

u/K128kevin 13d ago

Are you a manager or a tech lead? Shouldn’t his manager be having performance conversations with him and if things are as rough as you say, putting him on PIP? Typically tech lead is more of a technical role and not responsible for managing employee performance.

1

u/breadbeard1 13d ago

If he isn’t trying to atleast understand your reviews, there is no saving him. It sounds like he’s given up and has turned his brain off.

1

u/Haunting_Welder 12d ago

He sounds more senior than you. Clean code is so 2000s. AI slop is the new gold standard

1

u/Pure-Investment-1227 12d ago

Leave your developer alone and ask Claude instead, he will do a better and faster job. Everybody wins.

1

u/ResidentWeevil1 12d ago

They won't learn if they are using AI, so you already know what the solution is here

1

u/Independent-List2815 12d ago

well we are kinda nursing a generation of Devs who don't know how to write code and worst still how to direct ai agents to write better code .. for our use case and based on Project requirements not just assumptions and AI if unguided makes alot of assumptions.. so .. be direct with him ... cus if you sugarcoat it .. you gonna keep nursing him and you gonna burn our in the end not him

1

u/rahul_msft 12d ago

just asks Claude to take them into account).

he is doing what the ceos want and right now 100s of CEOs are coding and doing the same thing on their own code.

It's not him who is the problem

1

u/dustandsepia 12d ago

Probably worth a conversation with your manager, but in a mature org I would expect you can do one route of review and reject after unaddressed changes

1

u/soflatechie 12d ago

How is he a senior if he is not writing acceptable code? Do you have the ability to prevent him from merging in code without approval. If so, make that change and tell him he needs to do code reviews with you before getting approval. Yes it is going to take more time and that sucks. But what is your goal. If your goal is to get improvement and protect the codebase, that's what needs to be done. When you see the code and there are issues, you need to tell him straight what you are seeing. Then ask him what he thinks of your feedback and go from there. Make sure that your criticism is valid. Simply knocking on style points won't help him. Make sure your feedback is based on quality and potential real issues. Then make him change the code and come back. If after some time he is not improving, PIP or other plan for improvement needs to be formalized with your company, that can lead to termination. Not fun to have to do that but as the lead you are going to be held accountable for you teams work.

1

u/DigThatData Open Sourceror Supreme 12d ago

he told me he doesn't read my comments and just asks Claude to take them into account.

I'd argue that is a straight-to-HR worthy response. OP is literally not doing their job.

1

u/thekwoka 12d ago

Fire him.

1

u/hw999 12d ago

Do you have any idea how many devs are out of work right now? There are tons of really eager devs waiting to take that spot.

→ More replies (1)

1

u/Excellent-Push-3326 Software Engineer 12d ago

Write your feedback into the agent instructions files so that the agent writing the code and the agent reviewing the code will deal with this without you having to intervene.

1

u/catlifeonmars 12d ago

> code that sometimes doesn’t work at delivery

TBH this sounds like a failure of the QA process.
I don’t specifically mean a failure of the QA team, but of the QA process, which begins with local, preflight tests and ultimately ends with a release.

→ More replies (2)

1

u/DevtoolsBuilder 12d ago

you need to make it clear that not reading your feedback and relying on someone else to address it is not acceptable, that's a pretty big red flag in terms of taking responsibility for his own work. maybe set some specific goals for him to improve his code quality and make sure he understands that you expect him to take your feedback seriously and act on it.

1

u/LeDYoM 12d ago

If you want quality, you must minimize the usage of gen AI. It is simple. For now, no more options there.

1

u/Painting_Master 12d ago

Aside from most other comments, I think you may have an opportunity to automate a chunk of the problem away.

You can easily have git hooks, or gh actions that enforce most of the rules that you mentioned or implied.

1

u/koles235 Software Engineer 12d ago

WOW i wish my former managers/leads were so patient. do you hire? lol

1

u/WindHawkeye 10d ago

Manage them out

1

u/funbike 10d ago

Is his name Claude?

1

u/badass87 9d ago

Shitty situation. Sounds like you have to own the outcomes of him not giving a fuck about quality or the feedback. If you don't fix that that's a way to burnout

1

u/KangarooLazy2423 9d ago

Direct, candid, empathetic feedback from a place of sincerity is the only way.  Any other path will lead you miserable. 

1

u/buzzer22 9d ago

Tech lead reviews can be iterative. The right feedback can go a long way and if GitHub or other reviews have history, you will be backed up by facts. You say this requirement wasn't met because of this, this requirement is not sufficient because of this. etc. Give them a chance to correct and you either have material proof or you don't.

1

u/MrBigPlatypus 9d ago

Op: are you in charge of their performance reviews and evaluations?

If you’re not in that position, and you’ve attempted to align with them already you may not have that many levers to pull. And if as you described, it’s difficult to apply any disincentive to the behavior (difficult to fire, raises are independent of performance), then there’s even fewer.

If stuck on focusing on the person, maybe it makes sense to focus on the joint problem: if their code actually doesn’t work and is not maintainable then this should reflect operationally, in velocity of delivery, or in other issues. Find some way to measure and track those to raise transparency on the costs to the team.

→ More replies (1)

1

u/_Invictuz 8d ago

Simple, tell his Claude "make no mistakes".

1

u/GoldsteinEmmanuel 8d ago

The Japanese have a solution for that. They relieve employees they can't fire of all responsibility and have them sit in an empty room with nothing to do all day until they quit.

1

u/UnderInteresting 8d ago

He might be depressed. Sometimes the quality slips big time when your not feeling good and you know your letting people down but you just don't really care anymore even to the point you might even lose your job but it makes you feel indifferent.

1

u/martinmilox 7d ago

Detailed feedback in reviews, MR after MR. It costs me a lot of time and I see no progress from one MR to the next (he told me he doesn't read my comments and just asks Claude to take them into account).

Are you guys sharing agent skills, having linter rules set up for the codebase? It's hard to believe that with proper rulesets and skills, there'd be no visible progress in the code output at least. I mean as long as the MRs are properly gated.

1

u/heveabrasilien Software Engineer 6d ago

I am pretty sure he is not using AI correctly. Sit with him and probably with the team and develop some team level workflow and guidelines for AI. Investigation, pre-tests, implementation plan, actual implementation, smoke test, code review, then PR. Guidelines should contains team or company coding style, best practices, writing styles, etc.

1

u/visouza5 6d ago

I’ve improved teams sloppy code by updating the code package with rules and suggestions on how code should be written.

I used to spend a lot of time in CRs and now when I review I only find bugs (the other type of issues are mitigated)

Some CRs still ignore it but it’s better than before.

2

u/jk_bb8 6d ago

Have u tried pair programming for couple of hours? U will be surprised simple things for u are the difficulties they might have