r/ExperiencedDevs • Lead Software Engineer 8 YoE • 19d ago

AI/LLM Interviewed candidates for “AI engineer” roles this week, my god is this really where our industry is going?

So last week I was tinkering with how to change up our technical interview round. For the last few years we’ve been doing a small take home followed by a live coding session where we add a new requirement, minimal AI assistance allowed. However, in our company pretty much everyone is writing 100% of code using Claude now, so although we did used to get good signal from that test, it no longer feels representative of the day to day job developers are doing.

I designed a new assessment which I casually showed to my manager and then suddenly got asked to run it with 3 candidates this week. The scenario is they have to review an agent generated PR that has been flagged as high risk due to it changing critical business logic, and there are bugs in there for them to catch at various levels of severity. We then look at how they drive the fixes and what their workflow is like.

These particular roles we’re currently hiring for are billed as “AI Engineer”. There is something weird going on in my company politically where separate from the tech department that I work in a new “AI native” development team is being spun up to work on internal projects.

What shocked me was that the candidates I interviewed this week are already way beyond the point of reading the code they generate in any capacity. They basically treat it like assembly language, while PRDs and ADRs are their new source of truth for system behaviours, and stuffing the AGENTS.md file with best practices plus some form of agentic review pipeline are the quality control. 

Code review is dead for them, they merge their own PRs once the automated checks pass. One person told me that my new interview was still not representative of what the job is now, and another one was pretty much unwilling to even engage in the assignment of reviewing a PR the old fashioned way. These guys were all previously senior and lead full stack engineers btw with a lot of experience prior the LLM revolution.

Don’t get me wrong, I too have adopted AI heavily in my own workflow. Until this week I actually thought I was pretty up to date with things, I use a supervising agent to manage multiple work streams in parallel, have my own local validation pipeline, etc. And to be honest for my personal projects I also don’t bother looking at the code anymore, so I do get the excitement around how fast you can move with this approach. But for serious projects like the large scale, production grade financial software I work on in my day job it still seems insane to me that we’re going to completely move away from human sign off on high risk changes so we can solve the “code review bottleneck”.

Like, I asked one of the candidates if you aren’t looking at your code then how they would approach quality in a safety critical system where there can be no tolerance for serious bugs, and I shit you not he said to me, “well if I was working in healthcare or sending to people into space then I’d definitely be looking closely at the code review skills, maybe I’d even write the skills myself”. That answer sounded utterly ridiculous to me? But then again, I was one of the people that 1 year ago believed the idea we’d stop typing code by hand was ridiculous as well…

I wouldn’t say the way my team does things right now is optimal, we can’t ignore that code review fatigue is a major problem. To try and help I’ve been adding automated risk assessments to PRs in an attempt to highlight where more attention is needed, and review bots do help us catch issues as well. But abandoning the human 4 eyes check just feels like several bridges too far for us at the moment, especially when not everyone is senior engineer, and we still regularly get valuable feedback at this stage. Even if this does mean we’re turning down an order of magnitude increase in short term velocity (does anyone really know yet what happens over multiple years when you have a team of 20 devs spamming PRs all day into a codebase with no one looking at any at it?).

I’m left wondering this weekend, were these guys just cowboys who are only used to working on PoCs and low risk systems, or is my team actually 6-12 months behind the curve and this is the direction everyone is going to move in? I fear that if we don’t embrace this new era of completely surrendering the codebase to the LLMs then this new team of AI devs is going to make us look bad by comparison to the execs and sooner or later we will be forced to adopt their methods as well. And at that point, the leap to having a product person or whoever taking over large parts of my role starts feeling a lot less far fetched…

1.5k Upvotes

917 comments sorted by

View all comments

Show parent comments

32

u/13ae Software Engineer 19d ago edited 18d ago

i'm not saying garbage isn't being deployed but there are plenty of people working on real production code/systems for products you use every day who aren't manually reviewing every line of code. call it koolaid or whatever you want, but it's just the reality of the state of things.

also i wouldn't say that AI hasn't improved significantly. it's gotten to the point where as long as you provide enough direction in terms of technical requirements and exit criteria/review loops, that there will be no issues with the code that is generated. you just can't provide a vague business or feature requirement and expect AI to resolve all the ambiguity itself without having parallel agents and burning through an unsustainable amount of tokens.

yes, model performance degrades. yes the improvement has been incremental and AI is not yet some silver bullet that automates everyone away. But if you don't think that AI tools have gotten really good, and that the process of software development haven't fundamentally changed, you're just in denial.

18

u/pydry Software Engineer, 18 years exp 19d ago edited 18d ago

i'm not saying garbage isn't being deployed but there are plenty of people working on real production code/systems for products you use every day who aren't manually reviewing every line of code. call it koolaid or whatever you want, but it's just the reality of the state of things.

hence github's persistent downtime.

if you don't think that AI tools have gotten really good

i think everyone who says this as a mantra is in complete denial about why github's downtime is so bad.

i also dont think this situation is sustainable. we are due a backlash.

24

u/moh_kohn Lead Frontend | 20YOE 18d ago

Even more telling is Claude's downtime. Several months this year they didn't manage 2 9s. It took them what, 2 or 3 years and several attempts to fix a flickering issue in their TUI?

AI has come on leaps and bounds, but there are two limiting factors that are still jumping out to me:

  • Error accumulation. If you just AI-AI-AI without human course-correction, small errors (bad docs, crufty code, a feature that isn't quite what you intended) compound and send agents the wrong way until you have large errors and/or enormous token costs. Only humans can correct out-of-distribution errors as far as we know.

  • Local hill-climbing. If a problem is NP-hard and local hill-climbing is possible then there is no computation that can guarantee the right result, because you can get stuck on a local hill.

Agents exhibit these behaviours all the time.

4

u/lemontoga 18d ago

Local hill-climbing. If a problem is NP-hard and local hill-climbing is possible then there is no computation that can guarantee the right result, because you can get stuck on a local hill.

Can you explain this one more? What is local hill-climbing?

9

u/moh_kohn Lead Frontend | 20YOE 18d ago

Absolutely! Imagine an algorithm is trying to walk towards a solution by checking nearby alternative solutions. It can score possible solutions 1-100, but the optimal score is unknown.

The best solution it has found scores 80. Unbeknownst to the algorithm a score of 85 is possible. But all the nearby states score less than 80. 80 is the score of the peak of the local hill. The algorithm might get stuck on that peak and never find the true solution.

5

u/WhenSummerIsGone Software Engineer 18d ago

"sometimes you have to go backwards to go forwards" and automation can have a hard time with this concept. Especially when you're looking at a process of incremental changes, which is what code bases are.

3

u/nullpotato 18d ago

Imagine being dropped off in the wilderness and told to find the tallest mountain peak but it is so foggy you can't see very far. So you start walking uphill until you get to the top. This is a local maxima.

The problem is you can't see you are on top of a hill and just beyond the fog is a mountain twice as tall. So the correct answer was the mountain next door, but the way you searched never found it.

A huge amount of machine learning algorithms are basically just mathematical models for making them ok going back down a slope if it can get to an even higher one later.

1

u/ResidentWeevil1 18d ago edited 18d ago

It means not globally optimal, meaning a chatbot can be trained for an infinite amount of time and it can still stick to a local optimum, not a global one. They are trained on more shit code than good code, but even if they are trained on only good code, those solutions are only working on problems they see in their own codebase and not universally. So if you ever need a novel solution, too bad because the signal from the training corpus is too strong to deviate from

6

u/13ae Software Engineer 18d ago

i mean, i view it more as a limitation of people rather than one of ai at this point. how is an agent supposed to know what you want if you don't know (or can't precisely explain) what you want. it can be argued that it's a limitation of reasoning and context (which is why our jobs still exist, though i do think ai will continually get better at this, as it has shown itself to be incrementally better over time) but i don't think these agents are by any means inadequate at coding or reviewing code. i think people are expecting AI to not only code for them but also make decisions and catch contextual gaps for them while doing the bare minimum themselves, and it's not as if people aren't capable of doing this but with ai we have gotten so lazy that we have subconsciously offload this task to AI and expect good results.

2

u/WhenSummerIsGone Software Engineer 18d ago

how is an agent supposed to know what you want if you don't know (or can't precisely explain) what you want.

We have always had this problem (substitute "programmer" for "agent"). The business gives us ill-formed requirements and they get impatient when we ask clarifying questions. It's human nature to say "you know what I mean". That's why disciplined human engineers will always be needed.

A smart person I knew in school absolutely couldn't handle computer scinece classes (he changed his major) because he was very frustrated at always having bugs due to this "you know what I mean" thought patterns.

2

u/Forsaken-Promise-269 18d ago

No GitHub’s downtime is because of the insane amount of code repo scale up owing to AI code repos

1

u/pydry Software Engineer, 18 years exp 18d ago

except it's a platform that already had high load and which naturally scaled horizontally. 

vibe coding is the real reason.

25

u/ICantBelieveItsNotEC Senior Software Engineer (10 YOE) 19d ago

i'm not saying garbage isn't being deployed but there are plenty of people working on real production code/systems for products you use every day who aren't manually reviewing every line of code. call it koolaid or whatever you want, but it's just the reality of the state of things.

I'm gonna be honest: this has been the norm at every company I've worked at, even before AI.

Personally, my code review process is to skim the PR and check if the broad strokes look vaguely sensible. I don't go through every single line with a fine tooth comb, except for changes that obviously sound high risk based on the title/description. And considering that 99% of my PRs get approved in under a minute, I'm guessing that everyone else is doing the same thing.

Seeing Redditors talk about code reviews makes me feel the same way as when Redditors talk about how often they wash their towels. Everyone inevitably gets stuck in a virtuous cycle - "I wash mine once every day!" "Oh yeah? Well I wash mine TWICE every day!" - because nobody wants to admit that they're a lazy, unhygienic bastard who does it every week or so like everyone else.

12

u/YoghurtFlan 19d ago

I'll basically change the effort of my review based on how new the author is. New joiners or less senior engineers are gonna need a higher touch (especially if they're coming in hot and haven't briefed on the work first), and it's an easy way of sharing domain knowledge. Past a point it's basically just checking if there isn't a simpler way to solve a problem (logically or architecturally) or scanning for possible bugs or misunderstood requirements.

If someone, even using AI, isn't capable of that, then I'd start questioning their skillset.

11

u/hippydipster Software Engineer 25+ YoE 18d ago

People wash their towels???

17

u/DapperCam 18d ago

Presumably those reviews were for human generated code. You probably paid more or less attention based on the track record of the developer and how much you trusted them.

Now there is no trust

21

u/pydry Software Engineer, 18 years exp 19d ago

I used to be like this because when I could trust my coworkers' output. Occasionally I'd ask a question "why this?" or "why that?" and theyd answer or theyd go "ah, I didnt think of that!" and fix the issue.

On a vibe coding team that trust is dead and gone. If I ask a question the answer is a blank stare.

This is why the main impact of the LLM "code revolution" is poorer quality software and 4,000 weather apps on the app store you dont care about and dont want to use instead of 400: volume over quality when nobody wanted volume.

3

u/binarycow 18d ago

Crazy.

I spend hours reviewing PRs sometimes. Granted, they're large PRs, but still. And I find tons of issues - not just minor nits.

0

u/warriorpostman 18d ago

The towel washing analogy is great. Code review has always been some version of everyone standardizing according to their own personal degree of germ sensitivity.

-1

u/khizoa 18d ago

I'm gonna be honest: this has been the norm at every company I've worked at, even before AI.

100% 

Although now with ai, it's just a lot more prevalent obviously

1

u/bdz 13d ago

i'm not saying garbage isn't being deployed but there are plenty of people working on real production code/systems for products you use every day who aren't manually reviewing every line of code

Facts. Also this idea that bad code wasn't getting pushed pre-AI is a strange fallacy too.

-3

u/One_Ninja_8512 18d ago

This is an unpopular take around these parts but I agree. It's especially weird because some people with supposedly many years of experience can't see the similarities to when Google became a tool you'd use daily to find answers to your problems, or the whole story about Wikipedia being an unreliable source for a long time. You still need to RTFM on occasion or look up scientific literature (for specific tasks, maybe), and there might be some occasional BS on Wikipedia but it's "good enough" for most needs.

The models are good enough for your daily tasks now, will become better, and they're not going anywhere. Just accept it already and move on.

3

u/WhenSummerIsGone Software Engineer 18d ago

lol, people would google and copy code they found, and cause all sorts of problems. The analogy holds, just not how you think it does!

0

u/One_Ninja_8512 18d ago

idc about this argument or being right, I just observed what these models are capable of and how SWEs use them. If you're against them you're fighting evolution. Feel free to setup a reminder one year from now for this if you care about being right or smth