Why do companies interview senior engineers like they're interviewing juniors?
Posted by TheFinalDiagnosis@reddit | ExperiencedDevs | View on Reddit | 287 comments
I'm so tired of this.
I have 12 years experience. Built systems that process millions of transactions. Led teams. Shipped products.
And companies still want me to:
- Do LeetCode problems
- Explain what a hash table is
- Take a 4-hour coding challenge
- Go through 6 rounds of interviews
At this level, shouldn't you be asking about:
- Systems I've designed and why I made specific trade-offs
- How I've led technical initiatives
- How I've debugged production incidents
- How I evaluate and mentor other engineers
Instead I'm reversing binary trees.
The companies that hired me fast asked about real work, showed me their actual codebase, and made decisions quickly. Those are the ones who actually get good senior engineers.
Everyone else is stuck with their "rigorous process" wondering why they can't fill roles.
UK-sHaDoW@reddit
Because most companies have hired people that have great CVS. But are completely useless when hired.
Basically what you say on your CV means nothing to companies now.
DowntownLizard@reddit
The very obvious, but clearly not obvious solution, is to ask them about something technical they worked on and drill deeper and deeper acting dumb. You very quickly learn how much they know and they are in a realm of knowledge that aren't dumbass leetcode problems that aren't even useful irl.
You can use that approach on soft skills too. Mentorship? Tell me more.
oupablo@reddit
And yet that's exactly how every single manager is hired.
AncientPC@reddit
As an EM applicant, I've always had to do 2-3 system design interviews at FAANG companies.
I've also had to do role play interviews (e.g. meditate this conflict between two senior SWEs), produce a roadmap, present and explain system architecture for a current project on my team that I was not involved in.
While interviewing EM applicants asking subjective questions (e.g. name a time your team missed a deadline and how did you respond?), you end up filtering out a lot of poor candidates because they're making it up on the spot, lack specific details, and/or can't handle follow up questions that probe deeper.
There are better ways to interview managers.
oupablo@reddit
Engineers, you will find a stack of foam weapons behind you. You have 2 minutes to pick a weapon and practice with it. We shall then entire combat for 3 rounds. A strike is worth 1 point. A fatal (as determined by our panel of esteemed judges) strike is worth 2 additional points. The one with the most points at the end wins.
rgbhfg@reddit
Systems design is way easier than leetcode. The issue is most Eng managers are non technical these days at FANG.
dmazzoni@reddit
Really? That hasn't been my experience at Google and Apple. Every first and second level manager I can think of started out as a software engineer.
Izacus@reddit
I'm certain that when people say FAANG with some crazy statement they usually just mean Amazon.
Life-Principle-3771@reddit
Amazon SDM's are also expected to do system design rounds. Every manager that I had at Amazon (and admittedly this was several years ago) had IC experience and were usually Senior Developers that transitioned over.
rgbhfg@reddit
Google and Apple do technical coding rounds for managers. Other “big tech” do not
EddieJones6@reddit
? My managers at FAANG were all very technical and former IC themselves. I was a bit amazed at their ability to provide technical input on certain things.
rgbhfg@reddit
Many managers at Amazon and Microsoft couldn’t code fizz buzz
EddieJones6@reddit
Not my experience. But also, coding isn’t the only part of being technical. Some would say the actual coding is way less technical than other aspects of an engineers job.
Choperello@reddit
I’m not sure where you get that every single EM I’ve encountered at 4 FAANG companies in my own career so far have all come up to the IC path m, every single one.
rgbhfg@reddit
Many yes. I’m currently dealing with two managers in FAANG who couldn’t tell me the difference between CI and CD.
AncientPC@reddit
Yeah, I don't agree and I like system design questions. I've designed production systems dealing with 100k+ qps (read and write), and/or <20 ms p95 latency but still had some difficulty with some of Meta and Google's questions.
I would say Leetcode medium questions are fair game, but feel like Leetcode hard is unrealistic.
rgbhfg@reddit
Believe those companies require managers to pass a coding round. Many don’t
GMKrey@reddit
Most EMs are non technical everywhere
davispw@reddit
As a FAANG SWE, I am grateful that my management chain up through Director knows very well exactly wtf I am talking about.
Potential4752@reddit
If you can come up with a leetcode equivalent for managers then I’m sure there is money to be made.
SableSnail@reddit
I mean it's a pretty low bar, you just need technical questions that are mostly irrelevant to the job and that they haven't had to study since college.
So probably ask them about the Harvard Citation Format or something.
oupablo@reddit
It's just a counter of how many times they ask if you're "on schedule" during the interview.
Potential4752@reddit
Leetcode proves that you have the ability to write code. The actual problem you solve isn’t really relevant.
Asking a knowledge based question is not the same thing.
bluetrust@reddit
I feel like Leetcode interviews are all about knowing that "one weird trick" that class of problems falls into to make it efficient in time and space, and that a brute force or "obvious" approach is actually a failing grade. But maybe I'm wrong and I'm overthinking it.
Radrezzz@reddit
If it were something actually useful on the job then everyone who writes software for a living would know how to ace it.
Droma-1701@reddit
Ask them about leadership and management, the difference between the two; coaching and mentoring, the difference between the two and how they build learning and coaching cultures, again the difference between the two; change management and how they go about it; innovation pipelines, what stages they've identified and used, define fail fast and it's importance and how they filter ideas; their favoured Talent Acquisition strategies, the difference between high potentials and high performers and how that ties into the performance bell curve, how have they dealt with under performers in the past, how have they uplifted people into high performance; what their favoured delivery framework is, where they've used it, how they've flexed away to another framework, what they like/dislike about them both; finally describe your team/company's key constraints and issues, ask for a strategic response to that scenario taking into account all of the above. L&M is a piece of piss compared to coding from a complexity perspective, the challenge is the breadth of knowledge and skills, the "monkey with a machine gun" haphazard way that problems get thrown at you from every level and direction, and the complete lack of any consistent training, mentoring or coaching new leaders tend to be given when people are uplifted from delivery roles, even on the fact that any of the above schools of knowledge exist.
UK-sHaDoW@reddit
I agree.
agumonkey@reddit
remember the most important point here, is that if you suck technically, you have to excel at being a cunning lazy teammate waving your hands around so that people do the job for you
-- S. Cummaster
Groove-Theory@reddit
And yet even when grilling seniors like juniors, this still happens.
But this has been true since the existence of our history yet standards are always subjectively increasing. What's different is that no one has any floor of saying "this person has actually achieved X or competent in Y". Whether it be like an accreditation or something softer, every company literally has to redundantly, and subjectively, filter out people through their OWN accreditation (or whatever you wanna call it)
It's inefficient yet this industry continues to shoot itself in the ass.
KronktheKronk@reddit
People do all this code challenge bullshit and still hire people who are completely useless when hired.
Napolean_BonerFarte@reddit
Isn’t that what professional references are for? You can say all this in an interview and the hiring manager gives your last boss a call to confirm you aren’t making it all up. I don’t see how asking the candidate to reverse a binary tree lends any more credibility to their experience about mentoring or debugging production incidents.
Sensitive-Ear-3896@reddit
Except in the us most companies have a policy of not saying more than start end date and titles. Because anything else they can be sued for
AncientPC@reddit
As an HM who has made and received a bunch of reference calls, you get really good at reading between the lines.
Also, where did you get the notion that you can be sued for giving a reference?
Sensitive-Ear-3896@reddit
Companies can absolutely be sued for giving bad references. Which brings me to the other problem fake references
AncientPC@reddit
Forgive me, but your argument is not very persuasive.
Sensitive-Ear-3896@reddit
Be sure to file a complaint with just about every Fortune 500 company.
intorio@reddit
You can only be successfully sued for giving false information in a reference. If you stick to opinion and avoid examples (where your memory might be faulty), there is no way they will succeed.
The trouble, from HR and senior managements perspective, is that doesn't protect you from all the costs of the lawsuit and there isn't really a benefit to the company worth the risk. That's why many companies have a 'no reference' policy.
Sensitive-Ear-3896@reddit
Yes truth is absolute defense against libel defamation slander. Work can be tough to prove though, and most companies want to avoid discovery I.e which things did person work on vs others in a department etc. now I will give references even if company prohibits it, but I will never say anything bad about a fellow worker
ohcrocsle@reddit
Because you can be sued for defamation or on other grounds based on a bad reference if it meets certain criteria.
NO_FIX_AUTOCORRECT@reddit
Can't call my last boss because he can't know i am looking for a new job or I'll get fired
Spring0fLife@reddit
You'd rather listen to a random "boss" person opinion than do an actual test of skills? Jeez
Signal_Till_933@reddit
Yeah I could literally get a random person to get me a reference.
The tech assessments/leetcode have their place. Within reason though don’t give me one where I’m solving your legit prod issues in an hour.
MinimumArmadillo2394@reddit
References suck anyway. Do people really still have their boss's personal phone number from 2 years ago? What do you do if the company went under so emails dont exist anymore? What if your former manager is now overseas?
thedeuceisloose@reddit
I do, it’s called networking
MinimumArmadillo2394@reddit
They can contact me for work stuff via slack or email. Why would they need my phone number? Especially if Im remote?
thedeuceisloose@reddit
I enjoy having colleagues who I can text, I’m sorry this is weird for you
CommunistRonSwanson@reddit
Am I taking crazy pills lol do you guys seriously not have networks of peers you can count on? What in the antisocial schizoid hell is this thread?
Signal_Till_933@reddit
I agree completely, especially the phone numbers and emails from years ago.
It would be nice if linked in could actually be what it was supposed to be and fill those requirements for us, like YES this person DID work here and this is what they did.
It’s archaic but I do see some value in it. If you can’t get even ONE person to say you’re skill or easy to work with then I’d hire the guy who’s got a team of ppl saying he’s great.
Napolean_BonerFarte@reddit
How do you test the skills of mentoring or debugging production incidents in an interview?
Akthrawn17@reddit
You do what is done in real life. You hand the candidate a small project with errors and ask them to review it. Or give them an example pull request and ask them to review it.
Mimic the real world scenarios as best you can. Leetcode is not the real world for the majority of companies.
Spring0fLife@reddit
You don't. You can test general problem solving and debugging skills though, and there are many ways to do that - not necessarily leetcode.
Potential4752@reddit
Definitely not, the reference likely won’t say much and there is zero trust anyway.
But it is what referrals are for.
Ill-Bullfrog-5360@reddit
Large companies use hire right. Your credit score (where allowed), TWN (the work number) register of each of your paychecks amounts and criminal etc checks.
That stuff gets you in the door
skeletal88@reddit
you don't want your boss to know you are interviewing, most of the time
redditisaphony@reddit
References are hit or miss, unless you have a particular reason to trust the reference. Obviously, people will list references that will speak favorably of them. Sometimes they just like them or are friends. Sometimes they're too nice to be honest. Sometimes the incompetence goes all the way up.
coyote_of_the_month@reddit
I've given glowing a glowing reference to someone I couldn't stand, because I didn't like the company and I wanted to inflict a bad hire on them.
Martin_Aurelius@reddit
I've done the same just because it meant the bad employee was leaving our shop. It wasn't about "inflicting" him on the company or vice-versa, just getting rid of him.
colcatsup@reddit
I gave a reference for a couple of folks in the past, and I asked the caller for more clarification about work style, environment, etc. It caught both of them offguard a bit - 'never been asked that before!' - I don't really know how.
In one case, the guy under consideration can work *fine* in a team. In fact, he *needs* a team structure. He'll get lost in the weeds on his own. The other guy - complete opposite - can work with others, but gives best work when left alone for moderate periods to crank. Both have their place, but each would do very poorly in orgs that forced the opposite workstyle.
Both guys got their jobs. I'm not sure my reference made much of a difference, but maybe helping to clarify with the HR folks gave a little nudge? Like... I knew the people enough to know their style, and cared enough to double check it would work out for both sides?
beyphy@reddit
In the US at least, many companies forbid giving any HR related info other than hiring dates and title. Doing otherwise opens them up to lawsuits.
In general, anything that requires talking to someone i.e. a job applicant about their experience, a manager about working with the applicant, etc. can be gamed. People can (and will) lie through their teeth and say anything and everything they need to in order to get a job.
When people like that are hired, they make both the hiring manager and recruiter look dumb. So that's why most companies require applicants to prove their skills now regardless of claimed experience. It's to weed out these types of applicants.
UK-sHaDoW@reddit
Most companies just state employment dates these dates.
Several-Parsnip-1620@reddit
I hire without leetcode and it hasn’t been an issue. If you talk shop with someone for an hour or two you can figure out who engineers and who doesn’t.
Just because it’s not provable doesn’t mean you can’t figure it out. Other technical industries do just fine without leetcode equivalents
PhysiologyIsPhun@reddit
I don't see how demonstrating a working knowledge of dynamic programming live in 40 minutes provides any more proof that you architected a system that handles billions of transactions per day or mentored 5 junior engineers to become top contributors. Why not just have someone who is competent ask the interviewee technical questions? It's so easy to tell if someone is bullshitting
Illustrious_Pea_3470@reddit
I haven’t been asked a DP question since I got past the mid-level loops at FAANG. Senior loops have all been much more reasonable.
ohcrocsle@reddit
The problem is that most people are terrible at interviewing and these processes are supposed to be guardrails for the bad ones. I was watching "a life engineered" podcast when he interviewed Casey Muratori and they talked about this problem specifically. I think he was saying that the best hiring managers at Amazon were slightly better than 50/50 picking winners vs not, but the worst were much worse than random selection.
Any-Neat5158@reddit
For every ten senior engineers who talks the talk, maybe 2-3 of them can actually walk the walk. So while you feel it's BS, it's really a "show me you are what you say you are". They don't wanna find out that you can't do shit several months in after they paid you all that money and wasted all that time.
I've seen local bars hire supposed big shot chefs from big time places in big cities that couldn't cook a simple burger well. Don't tell me what you can do. Show me.
mirageofstars@reddit
Yep. I’ve met a number of senior engineers who were just junior engineers with 10 YOE.
rxreyn3@reddit
So experience doesn’t equate to continued development?
DogOfTheBone@reddit
This is a great comment. It happens all the time and is kind of crazy. People can rise really, really high in seniority (and pay) as software engineers at one company, or type of company, and yet be totally useless in other companies.
A good interview process will be as tailored as possible to the specific needs of the company.
What I've seen happen over and over is the mismatch between big tech and startup needs, where someone with an impressive resume that has big titles at Google, Amazon, Microsoft, whatever interviews for a startup. They do well in the interview and get hired, but whoops turns out they are completely useless in a startup environment. This indicates a failure in the interviewing process and that the startup is trying to interview like big tech - big mistake.
skeletordescent@reddit
It's things like this that really trip my impostor syndrome (I'm not blaming you, just observing). I've been a developer now for about 8 years and I have never once felt like I truly know what I'm doing or that my work is anything special compared to a lot of the really talented devs I work with. It's been something I've mentored juniors on about how this career is a lot of studying constantly and it's something I try to do but man its exhausting. Most days aside from spending time with my family I really don't do a lot else aside from study and work. I suspect this is a path to burnout but I don't want to fail at this and I don't now how else to grind this stuff into my head.
CommunistRonSwanson@reddit
The tests prove less than an actual interview or conversation would.
Ok_Cancel_7891@reddit
There is a probation period for such purposes
throwaway_0x90@reddit
"Probation periods" are almost useless because firing people is very hard and negatively impacts the employees around them.
DigmonsDrill@reddit
"Probation period" indicates non-American thinking. In America we can just fire your ass. And it's still a massive headache that employers would prefer to avoid.
redditisaphony@reddit
There's still a huge cost to firing someone during a probationary period.
If it's for a single opening, you've wound down your hiring pipeline, and possibly lost the opportunity to hire other candidates you interviewed.
It takes time and effort from the team to onboard someone and help them ramp up. Even more so if it's someone that's incompetent.
Then the manager needs to spend time and energy evaluating the person and making the difficult decision to let them go. Then you need to go through all the HR stuff and bureaucracy, and ultimately it really sucks having to fire people and it's mentally draining for everyone involved (candidate included, of course).
And also you have paid them for this time they spent as a drain on the team.
So you're spending time, money, and stress, to buy what basically amounts to a huge delay in your hiring and lost time on the projects you needed help with in the first place.
A lot of roles require solving problems like this. That's why we learn this stuff in school. Even if a particular role isn't heavy on the algorithms, being able to solve these still displays either aptitude or a willingness to dedicate oneself to a task (i.e. studying for an interview).
boredsoftwareguy@reddit
A company shouldn't be expected to burn 1-3 months of salary on people because they're shitty hires and we want the interview process to be more approachable. That is not sustainable for any period of time.
Furthermore, even when you have awful candidates most HR departments are going to forward you through the PIP process and draw things out longer to CYA. That's more energy and time the entire team, not just the manager, has to invest in a bad hire.
Ok_Cancel_7891@reddit
Sure, but if someone would ask me to reverse a binary tree (or similar), they would be equaly bad environment
boredsoftwareguy@reddit
That's a big leap.
Navadvisor@reddit
Probation period is not real at my company. If you want to let someone go it doesn't matter it's the same HR torture machine.
UK-sHaDoW@reddit
Managers hate firing people. Even when it's risk free. No one likes awkward conversations.
oVtcovOgwUP0j5sMQx2F@reddit
It can be less about avoidance and more about believing in people's capacity to learn and grow, which is at the heart of good management. It's a tough instinct to fight against when the reason many are in management is because that same instinct is so strong
oVtcovOgwUP0j5sMQx2F@reddit
Booooo what a wasteful notion. Probation is a backstop not an ingress filter.
notmsndotcom@reddit
Because the interview process is broken
Old-Programmer-2689@reddit
they have processes for hiring that are totally useless. They hire really bad workers, but good at interviews. Most of the best swe don't do interviews for years. And are really bad doing it
Ok-Entertainer-1414@reddit
This doesn't square at all with what I've seen. FAANG interviews are optimized to correlate with performance review scores. Anything that's not predictive of performance review scores gets cut. There's a reason they still ask algorithms challenges
Old-Programmer-2689@reddit
They are firing people like hell. Maybe all hiring, and performance scores are simply bullshit
Ok-Entertainer-1414@reddit
"Companies want to lay people off to cut costs" doesn't imply "companies don't how how to hire or evaluate highly qualified people"...
throwawaypgm@reddit
in another post this person claims to be a final-year med school student. surely they can't also be a dev with 12yr experience?
CherimoyaChump@reddit
Their profile is pretty suspicious. There are other posts which seem to be part of a coordinated adbot approach, where account A posts a setup topic and account B subtly advertises their product in the comments. Also this post is just a simple ad: https://www.reddit.com/r/cheaptravel/comments/1ow1zjk/trying_to_figure_out_if_organized_travel_can/
Ok-Entertainer-1414@reddit
The cadence of the post makes it clear it's AI
2053_Traveler@reddit
Bots can do more than one thing at a time you know…
SypeSypher@reddit
benefit of the doubt, I'm a SWE with 7 yeo rn and I'm working on premed prereqs to get out of this field
assuming I'm successful I'll be in med school with 11-12 yoe
MyPotatoSenpai@reddit
Idk the number of people who can't answer three simple coding questions I ask juniors and expect them and have seen then answer within 30 minutes is staggering, things to the degree of "write a function to find repeating characters in a string and tell me how many total repetitions there are". It filters out so many people it's actually disheartening. I've seen "Sr" candidates outright fail to answer just that in 30 minutes. I don't even care if you answer perfectly I just want to see your thought process and I tell them this.
joshocar@reddit
The problem here is that this is also filtering for people who don't get anxious or nervous or, people who are willing to just memorize a bunch of solution patterns. Did that person really not know how to code or did they just get jammed up by being nervous? Biologically, our frontal cortex starts to shut down when we are under a ton of stress or are anxious, which is exactly what a coding interview is for a lot of people.
We think we are testing for coding, but that really isn't it. I have given 50+ interviews for junior/mid level engineers at a big tech company and am someone who has experienced this myself. I wasn't even asking leetcode questions, but rather oop and design related questions.
Izacus@reddit
What you need to learn about the world is that it isn't fair.
The problem interviewers are solving is "we need to get 1 capable person" not "we need to get 1 anxious person" or "we need to hire you". As long as they get one valuable hire from the process, they got what they wanted.
So now it's on you if you want to work at such places and work on fixing the anxiety (for most people, dealing with public speaking, presentations and intreviews is a learnable, practicable skill) or skip them.
joshocar@reddit
I am not talking about "fairness", I am talking about hiring the best people. In my experience, hiring the right people is extremely important, if not the most important thing a company needs to do well. We are unintentionally filtering based on a feature that very likely has little affect on their actual job performance meaning we are likely leaving a lot of great talent on the table and hiring sub-optimally (which I think is actually and understatement).
Public speaking and coding interviews are very different things. I don't think is is correct to lump them together.
Izacus@reddit
In practice the problem isn't "hiring the absolutely best person" it's "hiring a good, capable ANY person". With social and presentation skills if possible.
joshocar@reddit
I think that this is where the main disagreement is. From my experience, which is around 15 years, just for reference on where I am coming from, I have seen teams dynamics and performance change drastically with a single very talented hire. Finding the rare star can matter a lot for how well and fast a product is delivered, same goes for losing one. It can really mean the difference between a project succeeding and failing. I think the type of project also matters too, but that really is just a measure of the scale of impact.
If you haven't seen this then I would understand thinking it doesn't matter, just get someone competent.
For managers, I agree with your statement. It is more about finding a competent one than a star and trying as hard as possible to filter out bad managers. A bad manager can do so much harm, it is ridiculous.
dmazzoni@reddit
Yes but that's why you aren't banned for life if you have a bad interview. You can try again with the next job opening.
Mr_Gobble_Gobble@reddit
I mean isn’t said anxious person going to perform somewhat sub-optimally regardless of what type of interview they have? I don’t think that’s a good excuse for not using leetcode or some other programming intensive exercise.
joshocar@reddit
No, I disagree with this.
For one, it is not an excuse, it is a biological fact about how our brains work.
Secondly, there are many types of interviews that are not so immediately high stress like a 30m DSA test where you can still check that they can code.
quantummufasa@reddit
What's the full question out of curiosity?
boredsoftwareguy@reddit
With AI it is easier than ever to throw together an impressive resume. I just went through weeks of interviewing and it was disheartening.
We don’t use AI to filter resumes, but we will start now. The candidate pool was so awful this round. People applying for Sr SDE or Sr DevOps roles with incredible resumes who legit can’t figure out how to make a directory or list files from the terminal or implement anything without relying on AI.
boredsoftwareguy@reddit
There’s an interesting mix of responses here. As a hiring manager and long time IC, I can tell you it has nothing to do with upper management or HR being detached from reality and candidates.
In my 20+ year career it has always been engineering teams that come up with these interviews. Why? Because everyone has been burned by the fancy fluff resume and smooth talker who could ace a college exam but can’t write a simple feature. A bad hired does more than just not deliver code.
oupablo@reddit
Everyone has been burned by every interview process though. The truth is, someone can interview well and suck at their job for any number of reasons. People try to treat interviewing as a science and the truth of the matter is that it's like 75% luck.
Izacus@reddit
The bitter pill truth is also that using these challenges has a positive correlation to hiring capable candidates.
robertbieber@reddit
No one ever really seems to account for the fact that at bigger companies they do, in fact, track the correlation between interview performance and job performance. Early in my career at FB, for insurance, they stopped giving system design interviews to new grads because the data wasn't showing that they really predicted job performance. When you're hiring thousands of engineers, you can actually get some pretty good numbers on these things
oupablo@reddit
Well you can't track the opposite. Which is to say, how many fully capable, or better, candidates did you reject? They may be happy with 80% of hired candidates meet/exceed demands but what if dumping the process only drops that to 75% and reduces interview times by 80%.
Companies have a tendencies to go all in on metrics. I.e., "we swapped to leet code and our employee performance metric when from 75% to 80% on new hires." Never mind that the hiring process is 3x as long because interviews take longer, they reject more candidates than ever which means interviewing more candidates than ever, and now they've got some poor senior developers who's entire calendar is just filled with screening after screening.
All this to say, just because the company is tracking it with metrics doesn't mean they're doing it smartly.
Izacus@reddit
For a company it's rather irrelevant how many good candidates did they reject if they good a good employee at the end of the process. You're trying to solve a different problem than the interviewer.
oupablo@reddit
I understand that, but the amount of time they spend interviewing people is a company problem and more rejections means more interviews means more time spent.
robertbieber@reddit
I mean sure it's always possible that everyone at the top of the industry just sucks at interpreting metrics, but I've never seen any indication that's the case
Beli_Mawrr@reddit
If there is a correlation which i don't believe, it is by luck. You're testing for a completely different skillet than the job needs
Izacus@reddit
Turns out, studies show that it's not really true. That's what "correlation" means.
boredsoftwareguy@reddit
No argument there.
AIOWW3ORINACV@reddit
I just want someone who is human and has above average technical proficiency on tests, but not outstanding, and can debug their way out of a paper bag.
Outstanding results mean you are a try-hard and that culture will peculate down on other team members onto a culture of overwork and perfection. Studying for the test is a different skill than on-your-feet reasoning.
There's one other performance I don't tolerate: people who jump too fast into implementations and don't ask questions. These people are like AI (and if they use AI, will blindly trust it). You will get a working solution but it will be totally the wrong one. The lowest performer I worked with fit this archetype. He was good at coding but put a project I was in charge of in serious jeopardy, and I had to explain to the PO why even with very detailed ticket descriptions we weren't delivering.
The best hires are basically average coders who are really good at communicating and can think on their feet. You're stuck on an incident call at midnight, with Splunk up, and a guy looking at legacy code written 10 years ago by people that no longer work there. Do you want the tryhard, or the guy who can actually reason?
boredsoftwareguy@reddit
This is a very valid point. The only roles where I've seen the technical interview involve debugging has been DevOps/SRE type roles. "Debug this failing k8s deployment", "Determine why terraform is failing", etc.
Have you seen any SDE debugging interviews done well?
AIOWW3ORINACV@reddit
I have only seen a few interviews where there was some aspect of debugging. I don't think it's as common for SDE as SRE. I think that's appropriate, though.
The way I guard against the 'jump to conclusions' guy is that in one of my coding tests I give to people, I have people do some reading and transformation of a file. I provide a rough spec for the data format but I insert some extra unused fields. The best people will question that, and I try to emulate the effects of legacy code. Undocumented fields and behaviors are common and I'd want somebody to ask questions about it at least. Ignoring it is bad, but assuming it does something that it doesn't actually do is way worse.
EstateNo833@reddit
Gets burned by someone who can ace an exam.
Gives a leetcode exam as part of the hiring process to weed out that person.
🤔🤔🤔
A hiring manager indeed.
boredsoftwareguy@reddit
Did I say leetcode? I didn't and no where I have worked has used them. We did however have a very hands on and involved technical coding challenge.
EstateNo833@reddit
The post your responding does. So youre telling him that based on the experience being burned, teams implement the things hes complaining about. Do you expect us to magically know which ones if you dont implement all of them?
Also. What do you think leetcode is if not a hands-on, technical coding challenge? What do you think college coding exams are, if not a hands-on, technical coding challenge?
Could you be any more of a hiring manager if you tried?
compute_fail_24@reddit
You are ridiculous 😂
EstateNo833@reddit
Do you have an actual counter-argument?
A complex leet-code question is a several hour, hands on coding challenge.
Most upper-level collegiate coding exams are a several hour, hands on coding challenge.
Youre not interviewing someone for 6 hours. We both know that. So if youre giving a "technical, hands-on coding challenge" for several hours.....guess what youre mimicking?
And people wonder why no one takes hiring managers seriously.
The_Ghost_Round@reddit
Found the loser who can't pass coding interviews lmao
boredsoftwareguy@reddit
How often in your day-to-day are you solving leetcode problems in your codebases? Do you really feel that's a hands-on challenge that reflects the work you'll be doing? How many of your college exams were "hands-on"? Throughout my degrees projects and practicals were far less common than your traditional examination.
OP wasn't specifically posting just about leetcode. Their post is more generally about bad hiring processes. They enumerated multiple different problems but you focused on the only one that would allow you to make a quip about being a "hiring manager".
Tells this manager all they need to know about you as a problem solver ;) You strike me as that pedantic pain on the team who argues with everyone because they used the wrong word or didn't handhold you to the more reasonable explanation and solution.
EstateNo833@reddit
How often does your team solve real-world applications with a single person in several hours of coding? The vast majority of my college exams were hands-on. They were coding exams, do you think they were multiple choice?
They listed four problems. I grabbed the first one. So 25% of the discussion, youre saying is totally irrelevant and not worth addressing?
Tells this dev all they need to know about your priorization of your ego over the well-being of the team;) You strike me as the kind of hiring manager who doesnt like to have their processes or mindsets challenged regardless of the logical flaws they might have.
Izacus@reddit
Yeah, these topics mostly just show who's never actually interviewed at scale and who did.
lastWallE@reddit
What about personal projects? Will this prove that a person is willing to learn new things and fast? And also is knowing these things in the projects?
boredsoftwareguy@reddit
I do give some weight to personal projects but it's tough because folks with families or other obligations may not have the same amount of free time. Hiring is tough.
compute_fail_24@reddit
I’ve got three kids and no longer touch coding outside work hours, but my resume shows 8 promotions in 11 years so there’s that
Spring0fLife@reddit
Milrich@reddit
It's hilarious how he quotes things that should be easy for a senior engineer to answer. Yeah, if you struggle with these, you're not competent.
HiroProtagonist66@reddit
In your day to day job, when was the last time you had to reverse a binary tree?
When was the last time you used a binary tree in day to day work and didn’t use a library? Oh, and had 45 minutes to remember and implement?
Spring0fLife@reddit
You can't write 5 lines of code in 45 minutes? That's how long the code to reverse a binary tree is.
MHIREOFFICIAL@reddit
You can't explain how a thorium reactor works in 2 minutes? That's how long it takes to describe one.
Oh that's not relevant to the job? Well too bad.
Spring0fLife@reddit
Thorium reactor structure is irrelevant to SDE job. Being able to write a basic code is.
MHIREOFFICIAL@reddit
Not once have I used a binary tree over 15 years in my entire career, never once has there been a use case for it. It might as well be a thorium reactor.
DigmonsDrill@reddit
I've never ever had to write a list of 100 numbers but replace the ones divisible by 3 with Fizz and ones divisible by 5 with Buzz and the ones divisible by 15 with FizzBuzz. Yet I can write it in a few minutes.
Anyone who can't write FizzBuzz should not be in this subreddit. Even if they never heard of it until 5 seconds ago. I'm sure there are people in the world to whom Fizzbuzz is no easier to understand than a Thorium reactor but you don't want those people working for you.
There's no super magic trick to inverting a binary tree. I don't think I've ever worked with them although I've used data structures that rely on them a lot. Even not knowing anything about them, anyone who wants to be a developer should look at https://assets.leetcode.com/uploads/2021/03/14/invert1-tree.jpg and know within 5 seconds what the solution is.
Spring0fLife@reddit
It doesn't matter if you used it or not.
The question is - can you ask a few questions about the presented problem and implement the solution according to the requirements.
Honestly I cringe super hard from your companions between tree reversal and thorium reactors. It's a super basic problem, literally any capable software developer should be able to figure out what a tree is and how to reverse it by asking some questions to the interviewer - even if they never heard about trees before.
SalamiJack@reddit
This is the type of thinking that leads to a no hire. This question is just meant to test your recursive fundamentals. Forget binary trees, they’re just a standardized definition of a recursive data structure. It’s not too uncommon to work with a recursive data structure, right? Do you honestly need a library to traverse a nested object and do some menial business logic or data transformation? I hope not.
DigmonsDrill@reddit
I didn't even know exactly what "reverse a binary tree" meant, so I turned on a timer for 15 minutes and found the problem
https://leetcode.com/problems/invert-binary-tree/submissions/1829718370/
For C++ this is asking "do you understand pointers? do you understand null checks? do you understand recursion?"
I lost a few minutes because I didn't understand their input/output format. If it was a live interview I'd ask a clarifying question. Still got it in plenty of time.
Again, I didn't even know the terminology and got it. A senior who can't do that in a few minutes is a fraud.
kincaidDev@reddit
The only way to get around it is to build software that makes money for yourself. I have 10 years experience, leetcode and live coding interviews are a complete waste of my time. Ive thought they were a waste of my time for years, so this year I doubled down on that thought process, stopped studying for interviews, refused to do live coding interviews altogether and focused on building complex software projects that only I could build, things that didn’t exist before but I wanted or needed to work the way I thought would be more efficient and allow me to build the things I wanted to build when I started another job but didn’t have time to do outside of work.
Ive built over a dozen niche, complex products e2e this year. Ive helped 3 startups build products e2e since July, 1 launched a few weeks ago and has 10k daily users, one will be launching by end of month and the other will launch in December. Paid in sweat equity for the product launching this month and paid regularly for the other 2. Im making almost double what I was making in 2024, more than Id make in most faang jobs.
The only way these waste of time interview processes are going to go away is if good engineers find alternative ways to make money and refuse to go through these processes
SuspiciousOctopuss@reddit
We hired a senior dev in my last company because he was great on paper, and answered everything system design related. Only after hiring we realised he needed daily hand-holding while even setting up the environment, let alone doing his first ticket and so on.
Sad part was that he was hired at a much more senior level than me and my peers - yet we had to spoon-feed him these things. It was awkward for us and humiliating for him.
For interviews, somewhere in the middle was the best approach. Definitely one coding round is required to weed out bad coders. And one or two system design rounds for senior devs, mandatory as well. We changed our interview process after this, and it worked well for us.
Beli_Mawrr@reddit
Of course he needed help setting up his environment and doing his first ticket lol. Even a Senior you don't expect to be running on their first day.
SuspiciousOctopuss@reddit
Nah it was more about him being completely unfamiliar with coding workflows. It was like he hadn't done any coding in his previous job.
We also hired other junior devs who could follow documentation and get set up on their own. It shows quite easily when someone is uncomfortable. And I didn't say we expected him to be all done on the first day but it extended way beyond that.
Western-Image7125@reddit
It’s a very tough situation, and I’ve been on both sides trying to interview others and be interviewed myself. When I’m interviewing someone and they describe something that sounds very impressive and complicated, the entire time I’m trying to wrap my head around 1) how do I make complete sense of what this person is saying and 2) how does it relate to the work we have to do in our team. When I am being interviewed I try to describe my work in ways which demonstrate general concepts in CS and ML so it’s relatable, but of course I get it if the other person cannot relate to it and hence cannot get the signal to hire or reject they are looking for. Hence you have the situation we have. Unfortunately there are way too many people really good at talking a big game but the moment I ask them to implement something simple that uses a hashmap - they have no idea why they would use one. And I’m sorry, it doesn’t matter if you have 1 or 20 years in the field, not knowing how to use a hashmap just means I can’t even work with you on the same team.
ExperiencedDevs-ModTeam@reddit
Rule 9: No Low Effort Posts, Excessive Venting, or Bragging.
Using this subreddit to crowd source answers to something that isn't really contributing to the spirit of this subreddit is forbidden at moderator's discretion. This includes posts that are mostly focused around venting or bragging; both of these types of posts are difficult to moderate and don't contribute much to the subreddit.
kayakyakr@reddit
I've interviewed "seniors" with impressive resumes who couldn't program their way out of a paper bag.
I prefer an IRL implementation problem, but it's still good to find a way to confirm you can code before hiring.
I've also had an engineer try to cheat their way out of a challenge using AI. They failed the challenge miserably. So you might be a great engineer with plenty of relevant experience, but there are plenty of fakes out there and the hiring process is designed to weed those out.
The other aspect of the hiring process is looking for and finding people that fit your company culture. Pairing in a code challenge is a good way to get that
Wandering_Oblivious@reddit
> I've interviewed "seniors" with impressive resumes who couldn't program their way out of a paper bag.
As in they didn't do well in the live-coding portion of the interview? Because if so then there's a concept called "spurious correlation" that you should study.
MinimumArmadillo2394@reddit
I interviewed a staff/principal level engineer from walmart who could write code but couldnt explain what it does. Ive interviewed engineers at the same level who couldnt write a solution simple enough another person could pick up their code and use/change it. They were using things like heaps and priority queues to find minimum values in a stack, which is over engineering a solution when the stack has, at most, 10 integers.
Its a genuine problem. The industry inherently attracts people who dont communicate, then they get far enough somewhere they think they can just transition to leadership without knowing how to communicate a solution others can see, understand, and use.
schlechtums@reddit
We ask our candidates to talk through what they are doing as a way of mitigating and understanding this. Live coding jitters are real. But if you can talk your way through what you’re going for and defend your thoughts intelligently I’ll hire you with a failed coding exercise.
HiroProtagonist66@reddit
“Talking thru” what you’re doing doesn’t help. If you as a candidate is staring at an empty page, the clock is ticking and the interviewers are staring at you….
It physically takes time to type in boilerplate and that’s once you have an idea what you want to do. And if that idea doesn’t work, there’s no time to recover.
You all may say “oh we only want to see how you think” but my recent experience shows that’s a lie. If yo don’t bang out the perfect, optimal solution, you’re out.
yxhuvud@reddit
The company I work for have an exercise like this. It is very simple, yet we don't expect people to finish it. We also very explicitly communicate that we don't expect them to finish it. Some still do finish it, but it is a very small minority, even among the ones that get hired.
ampersand355@reddit
The problem with what you describe is that many companies say things like this as a psychological trick to see if you fall for it. It's the same tricks Microsoft and Google used to use when they'd meet you for dinner and see if you added salt to your food before tasting it. Or pair you with a hiring manager that pretended to be completely non-technical.
schlechtums@reddit
I didn’t say I’d hire someone who produced nothing. That’s no different than architecture and design questions. But if they’re struggling with things then talking it out can save them with me.
kayakyakr@reddit
Seen failures in live coding and take home. Seen people who couldn't talk through the code they submitted in take home.
Unfortunately, the cost of making a bad hire is very high and the interview process is a game to give confidence that we're not making a bad hire. But it's also difficult to give allowances for people that are bad in one situation or another.
I've also run interviews without a coding challenge at all. We used what I called the "trivia" interview to get a good indicator. Bunch of common but very specific questions around the framework that showed if you've done real work in it.
It still created rejections.
Sweet_Championship44@reddit
“Trivia” questions are even worse than live coding. I would imagine that would give you even worse results.
kayakyakr@reddit
It was about as effective as leetcode, which is to say it was okay but not perfect
Sweet_Championship44@reddit
I would argue leetcode similarly provides no real value. Frankly, there isn’t much you can do 6 hours or less to find out if a candidate is truly qualified for the job.
Anyone who claims they have an interview method that has a better success rate than random chance is most likely in the middle of the dunning-Kruger curve.
kayakyakr@reddit
I think you can spot enough red flags in 4-5 hours of interviews to avoid the most obvious bad hires. Probably can get there in 3.
Finding a great hire is random chance, but that's not the point because most teams don't need the great hire, they just need someone who works well within the team.
Sweet_Championship44@reddit
Can you? Yes. Just the same as there are successful stock market traders who found actual alpha in the market like Warren buffet.
But the amount of people who are actually able to observe and discern those red flags properly, is likely very few. Warren buffet was an anomaly, less than 1% of day traders consistently beat the market over a long enough time horizon. The same way that very few traders are competent enough to beat the market, despite their confidence, few interviewers are competent at interviewing, despite their confidence.
ReginaldDouchely@reddit
It's not really spurious correlation in this case though, is it?
If you can code it live, you're good enough at coding
If you can't code it live, you're good at coding and bad at live, or you're bad at coding and good at live, or bad at coding and bad at live
That really sucks for the candidates that are good at coding but bad at doing it live, because the interviewers might not be able to tell the difference. But as long as the interviewer is getting enough people that succeed at the live part to fill up their team, they've got no incentive to change what they're doing to recognize the shy coders.
drakgremlin@reddit
What is the third factor you're referring to?
KingJulien@reddit
Yeah in my experience live coding isn’t the same skillset as actually coding. Add in pressure and someone breathing down your neck and artificial problem statement etc and its easy to choke
rudiXOR@reddit
You can easily interview a great leetcoder and get an abysmal engineer. There is something called probation period and also paid trial days are an option.
qwaai@reddit
And a lot of good engineers aren't going to accept offers with probationary periods because they can get equally good offers that don't come with the risk that the company can give them the boot with 0 repercussions for however long the period is.
kayakyakr@reddit
I've found that it takes between two to four months for a developer to be fully scaled into an enterprise app. During that time, you're training them, giving them entry tasks to work on, setting them up with equipment, and so on. Hiring someone, even on a trial basis is expensive.
Then deciding that you are going to fire them 90 days in means you have to ramp the hiring back up.
Then there's the litigious folks who know they're bad devs but are going to threaten to sue for employment discrimination so as to keep their jobs (ran into one of those. Wasn't my hire, but wound up being my problem for a short time)
Better to not hire anyone than make a bad hire, even if you treat a new employee like an intern on a trial.
one-wandering-mind@reddit
How often is someone good on a code challenge, and bad on real life problems?
How often is someone bad on a code challenge and good on real life problems?
Seems like there is a better way to assess by doing something that is more real life. Yes not taking about what they did , but have them try to find a bug in some code, review some unseen code, talk about tradeoffs in code they haven't seen before, ect. Are those things worse assessments then a live leetcode coding challenge on average?
Izacus@reddit
Google did research and found out skill at code challenges heavily correlates with skill at work.
culturedgoat@reddit
I’ve seen both cases, but I agree the modem engineering screening/interviewing process is flawed. I’ve just been unable to come up with a better system that doesn’t involve extensive free project work…
oupablo@reddit
Live coding is beneficial just to see a process. My issue with live coding is that it's always done as new development which only accounts for like 10% of work ever done. A better problem would be debugging existing code but that takes way more prep work.
Evinceo@reddit
I've seen lige coding interviews where we work on an existing app, or just have a good amount of scaffolding in the evaluation environment.
kayakyakr@reddit
Also don't want to make it too much like our current app. Candidates get sus when you ask them to solve something in a codebase that looks real.
But you've hit the nail on the head, I've found this to be the most effective way to conduct take homes and live coding.
kayakyakr@reddit
Done all of those as a HM. Except leetcode. Leetcode is pretty worthless.
My coding challenge usually starts with a functional app that we ask a user to pair with a dev to either solve a bug or implement a new feature. The takeaway is both can you code and can you work with a pair.
Don't get me wrong, I'm not in any way defending leetcode. It's a challenge of last resort. OP indicated that they disliked any form of coding/technical challenge, which is just not sustainable in today's world.
As a hm, I have to work in the framework that HR gives me at times. I try my best to minimize touches while maximizing read. Cost of a bad hire is unfortunately too high to risk hiring candidates with low insight.
drakgremlin@reddit
Those who can confidently live code in front of a live audience have never for me after joining. It's also how you'll get help.
With this comes guard rails recognizing live coding on front of judging is hard. It's stressful. You're going to make mistakes. Complexity is dialed way back.
I don't do leet code. They must solve practical problems.
eddie_cat@reddit
I've worked at places that had very rigorous interview processes and still managed to hire people that sucked at doing the job. I think if we got rid of all of the bullshit rounds and just talk to people like in normal interviews for pretty much every other job that exists, we would probably have a similar rate of bad hires as we do with all the hurdles.
kayakyakr@reddit
I agree.
If I got to design an interview, these days, I'd do: HM screen, technical challenge (pair, live coding, real life app), then the panel of engineering culture, product and design, and maybe system design for senior and higher.
3 rounds, 4-5 hours. That's been what I've found to have worked.
I've avoided the bad hire so far while filling every role I've opened, so it's largely working.
eddie_cat@reddit
That... Sounds like exactly what I am saying I don't think is worth doing haha. It's crazy if that is your abbreviated interview process, how many rounds are you actually doing?!
kayakyakr@reddit
3 rounds. HM, technical, panel. 7-9 people. It gives a good read and puts you in front of enough of your future teammates to see if they'll like you or not.
Technical aside, at the end of the day, we're just trying to figure out if you will fit with the current team
oupablo@reddit
Yeah. I find it funny how unpredictable interviewing is in general. I worked at a startup where I had to hire out my team. I didn't do any kind of coding challenge other than questioning some basic practices verbally. Had no issues with that team. At other companies I've worked with people that had resumes littered with FAANG positions that were just absolutely terrible. It was mind boggling to meet. They managed to pass an 87 round, leet code filled interview process to work at a FAANG company and can't even build the basics of a CRUD microservice here.
trudesign@reddit
I interviewed someone yesterday with 20 years of experience and he didn’t know what a variable was in JavaScript, or the diff between a const and a let. If they can’t answer the basics, I don’t necessarily want them even trying to answer something complicated.
Distinct_Bad_6276@reddit
I can’t count the number of 10+ YoE PhDs I have interviewed who can’t write a simple for loop. Their skills look like a perfect match on paper but they can’t produce more than two working lines of code for our fairly easy, non-LC tech screen.
kayakyakr@reddit
Having sat on the taker side of algorithm live coding recently, the one thing I have found is that it activates a portion of my brain I haven't really used since college. It's okay for me because I am weird and enjoy that stuff, but it's not day to day.
funny you mention the for loop, I was in one yesterday and had to remember a manual for loop. Having worked in 5-6 languages, I always have to take a moment to remember the basic syntax structures of my current 😂.
Distinct_Bad_6276@reddit
I get the language switching problem, though I assume people would brush up on the basics before an interview. We don’t have that issue in the ML domain since 99% of teams use python (perhaps in addition to other languages like C++).
alien3d@reddit
I dislike ai , some try me to do live coding . Okay I open vscode and it keep auto suggest something what I wrote and me keep deleting the code suggested . Time change a lot while we old times really depend on oop auto complete not ai .
Artistic-Border7880@reddit
I interviewed someone for a senior position who picked a programming language they are not very familiar with, struggled, I recommended them for a P2 level and still got hired as P3. Sometimes it’s more politics than hard skills.
ebawho@reddit
This. Since there is no real way to tell on paper if someone can program. I’ve interviewed great looking candidates with tons of experience that can’t solve simple problems. I want to screen them out quickly before moving onto the more interesting questions OP refers to.
I’ve also interviewed lesser experienced people that are fantastic. 10 years or whatever on paper doesn’t mean much because there are plenty of people that have 1 year of experience 10 times..
Few-Impact3986@reddit
because that is how google does it.
Inner_Painting_8329@reddit
As a hiring manager, someone I interviewed a few years back for a very senior EM role couldn’t do anything seemingly sophisticated and was pretty much incompetent, yet claiming 20 years of experience. Another candidate I interviewed claimed to have XYZ skills, yet in the interview, they actually relied on their teammates for those things. People embellish and lie on their resumes, OP.
Unfair-Sleep-3022@reddit
Most companies do both. They still want to know you're not all talk.
How is this so hard to grasp?
phoenixmatrix@reddit
Because people lie on their resume. There's also a lot of people who have 1 year of experience 12 times rather than 12 years of experience.
The cost of a bad hire is really high, and firing someone impacts moral, so its pretty hard to fire people at a lot of companies. Also note that interviewing (as the interviewer) is a different skillset and most people, including managers and HR, suck at it. No way around it.
And then for large companies there's the issue with discrimination and legals, which requires processes to be quantifiable and objective, and its really hard to be objective with the type of questions I'd ask more senior people, but very easy with bullshit like leetcode.
I work for a small unknown company and when we last opened a senior role, we got 450 applicants in about 10 minutes. When I worked at big name tech co, we'd get 10s of thousands of applicants. So we could afford to do kind of whatever we wanted. The main limit was that some of the better engineers wouldn't deal with bullshit, so we had to balance that out.
With that being said, I've done a LOT of work tweaking our interview process to be respectful of people's time while still getting the data points we need. There's still a little bit of bullshit in it, and more rounds than I'd like because of various constraints, but some of us do try really hard!
I've gotten really positive feedback about our current process, and it's been doing very well at separating shitty applicants from the good one. But we have more flexibility since we're small.
devoutsalsa@reddit
Let's be honest. A lot of engineers at every level aren't that great. I had an interview not too long ago where I tanked it because I was tripping up over the syntax of an if/else statement in a language I don't use everyday. Do I know how to do conditional logic? Of course. Would I hire someone for a language specific job that couldn't do an if/else statement in an interview? Probably not.
So I guess we do Leetcode questions because we don't have a better idea yet.
NovaCanticle9@reddit
I relate to this a lot. You can know conditional logic cold and still freeze when you have a timer, a laggy browser IDE and two strangers watching every keystroke. I try to remind myself that if we filter only for people who game that format well, we miss a lot of solid seniors who are great once they are back in a normal environment.
zirouk@reddit
The thing that always gets me with these browser coding sessions is a lack of test suite feedback or debugger to help me. Feels like I’m only allowed to code with two fingers.
chaos_battery@reddit
It's all a stupid ass game that I don't take too seriously. A lot of people don't want to admit this to themselves or others but interviewing is highly subjective. Hell, I've hired people based on how they look just because I want some eye candy around the office. Sure, I made sure they could do the job but if it came down between candidate a and Canada b with candidate a looking hotter to me, I'm choosing candidate a. It's just the reality of life. That's an extreme example but there are others. Some people want an absolute perfect interview where they are talking to a human compiler that doesn't need a debugger or anything else. That's just not how anybody works in 2025 or ever for that matter. Give me a damn IDE and actually pay me if you want me to do a 1 hour or two hour session of take-home assignments.
But I don't do take homes anymore. If I do, it's only because the company interests me slightly more than the average application I'm blasting out. So I'll take it and then run it through AI to get to 80% and then tweak it real fast to get it the rest of the way. I'm still not putting a lot of time into that crap.
The best interviews I've had and the ones that I've given are the ones where you have a 1 hour technical meeting and you just go over what the candidate knows and have a conversation that's technical in nature to get a feel for what they know or don't know. You'd be amazed at how many people can't describe the differences between an interface and an abstract class. The bar doesn't have to be very high to find competent and quality engineers.
tinycockatoo@reddit
what
Maxion@reddit
Or autocomplete, or any of your regular tools.
Try taking a mechanic out of his own shop, and tell him he as 10 minutes to do an oil change on old car with a rusted oil plug, the shop power off, and a different car lift that he's never seen before.
SanityAsymptote@reddit
The worst I've ever seen was the stack overflow interview. They had me coding in what was basically a Google doc file and honestly expected my code to work/pass their tests I couldn't see first run.
I explained that the way I code is basically a conversation with the debugger and I could functionally guarantee my solution would work if they'd let me just open chrome dev tools to just verify my logic.
They would not, and my solution missed one of their test cases because I couldn't verify anything. I fixed it in literally 20 seconds after the interview and immediately emailed the interviewer my corrected solution, to which I (understandably) got no response.
Fortunately I had an offer for 50% more than Stack overflow was paying come in about an hour after I finished that interview, so that softened the blow considerably.
Man 2022 was a great time to be looking for a job.
tralfamadorian808@reddit
“We found that performance is reduced by more than half, by simply being watched by an interviewer.”
https://par.nsf.gov/servlets/purl/10196170
LeetCode is a terrible, biased way to screen candidates. Take home assignments followed by a live discussion achieve the same if not better result.
NO_FIX_AUTOCORRECT@reddit
Embarrassing but, i had a job interview where the test question was i had to resolve the error. It was in C.
Ok, long story short, the build error was that a line was missing a semicolon. But several things, first, i had been writing for several years Android applications, Java and kotlin, so kotlin doesn't end lines with those and for Java, Android studio is really good about telling you when you've missed one so i am used to fixing it right away. And then in c, the error description is pretty cryptic, plus even when i wrote in c a lot i just didn't get this error very often. So i spent an embarrassing amount of time debugging this in the interview.
Of course, in real life i could have googled the error and then felt stupid, but fixing it would've taken 10 seconds.
It didn't help that they never told me we were going to do a coding assessment, nor that the language would be c, or else i would have at least prepped for it, reviewed the c manual or something
Neat-Molasses-9172@reddit
I've been in tech for 20 years...
...i still google conditional syntax damn near every time I use it on the job. (I'm an infrastructure engineer tho, so I don't use them quite as consistently as software devs)
meester_@reddit
Copilot finishes most of my hrefs anyway
I meant
Fucking copilot sto{endif}
oupablo@reddit
Nothing frustrates me more than in interview that drops you into an unfamiliar situation like that. When I interview, I tell them to handle it in the IDE of their choice. You're already stressed about the interview. There's no need to dump you in unfamiliar territory too. I want to test your ability to work through a coding problem not learn how to use a terrible IDE that you'll never touch on the job.
When I code, I rely heavily on the debugger. This seems to be a feature that is absent in every single one of those terrible web IDEs used for coding interview. That means I'm basically not able to work in my standard way. That just seems unfair.
ninetofivedev@reddit
It's not hard to learn, you just have to put in effort.
Typically it's our own hubris that keeps us from interviewing well. We're software engineers with 10+ years of experience. We should be able to ace any challenge you give us!
Nope. Mother fucker, you need to sit down and prepare.
Appropriate-Wing6607@reddit
No you must solve this obscure math problem like you’ve memorized it! But not too much like you memorized it because then you might be cheating.
Also make up some fake numbers in your resume to seem like the unicorn hire that if you actually were you would not being applying to this underpaid role.
Western_Objective209@reddit
If you've forgotten how to do basic coding tasks, they are worried you are more of a manager/meetings attender than someone who builds software
Rascal2pt0@reddit
Been considering a move into management just to avoid Leetcode during interviews. If you’ve ever paid a bill online or thru the phone some of my code is more than likely in there. I’ve built the entire e-commerce side of multi million dollar businesses.
I suck at Leetcode brain teasers.
roger_ducky@reddit
People cargo-culted tech company hiring process without realizing the main purpose it serves:
They had way too many applicants (because they had ridiculously above-average pay) and needed a “fair” way to filter out 90-95% of applicants without getting hit with a discrimination suit.
People who implemented that then wonder why they only had 5 people pass their process out of 100…
thefox828@reddit
I interviewed 30 candidates recently. For most of them the coding questions would not have been necessary, because it was either clear from just talking that they are not a good fit or because they did really well. But two candidates claimed a lot of experience and being experts in multiple languages. Turned out the two were not even able to write a python function adding two numbers on a whiteboard. But from talking and CV they sounded great. I would also always do coding questions for seeing the thought process, the communication, the handling of a stressful situation.
virtuallynudebot@reddit
The companies that get this right usually have senior engineers or CTOs doing the recruiting, not generic recruiters following a checklist. Or they work with specialized technical recruiters who actually understand this. The best interview I had was set up through paraform - the recruiter actually understood what senior-level meant.
CaptainFiddleToots@reddit
I interviewed a guy with "16 years of experience in Java". He couldn't create a list
yxhuvud@reddit
Honestly, you need to do both. Very, very many try to pass themselves off as seniors while being nothing of the sort, and having a sanity-check that they have the basics has shown itself to be necessary.
spitfiredd@reddit
It’s almost like other industries never found a solution for this, certifications. No not the BS ones you can take online now; I’m talking proctored test when you go into a center and you have to check your phone and other personal items. Doctors, Lawyers, engineers (sans software), actuaries, accountants, pretty much all professional jobs require you take some kind of test and ot a series or tests and then there’s continuing education you have to at regular intervals.
The actuarial exams are a good model since there are multiple tests you have to take over a ten year period. Jobs sponsor candidates and payout bonuses for tests passed and milestones reached. They even give the candidates study hours so they can prepare, which is during work hours. I spent 8 years working alongside actuaries as an embedded data engineer; I always thought it was cool they got study hours (and folks were really serious about not bothering them either).
If software eng had this it would cut through most of the fakers we have now in this industry. It would also give juniors and others a real path to entry into the industry, not the predatory boot camp industry. The only downside would be it would be harder and take more time (things Silicon Valley hates).
krespyywanted@reddit
Simple. They want someone technically adept, not a "mentor"
TheSpanxxx@reddit
I've interviewed and hired 100s of devs in my career. I was in IC roles for over 20 years and consulting at Fortune 100 level companies as an EA/SA for nearly 10 of that, and have run teams as small as 4 and as large as 100.
One definitely true thing I have learned about interviewing software engineers is this : it isn't easy. Big HR teams and processes actually make it substantially harder, too. Software is complex, people are complex, the roles are complex, the background experience is complex. The problem I've seen creep in is the idea that a fixed set of questions asked to every candidate is an HR team's idea of a "fair hiring practice" and the outcome of the interview should be an objective score based on those questions. No. 100 times no. It takes talent to interview talent. Many times you aren't looking for a specific skill despite what every finance manager and hr manager believe. What you are most often looking for is the TYPE of experience, the CAPABILITY of the engineer, and the MINDSET of the person.
The reality of large complex software systems is that you will never walk in knowing every piece of their stack fluently, every pattern they've cobbled together, or any premise of the logic in their system. For senior engineers, it's as much about "what have you seen and how did you solve it" than anything else.
I've learned entirely new coding languages in a couple of months in new shops because one of dozen components in their platform used something i hadn't been exposed to before. But WHAT it was used for, I did have experience in.
Teasing out the right info in a couple of short conversations in order to make a decision is very difficult. Especially when organizations have made it so hard to remove someone who is absolutely not going to help the team succeed. I've seen an org block the removal of a dev who the team had literally given no work to for months because they couldn't trust that person and repeatedly complained to their leadership about. You get very timid about picking the wrong person because you're afraid you'll be stuck with them.
I'm far more interested in talking through projects with you and organically poking into your experience to have you explain your choices, challenges, and lessons learned so I can see exactly what your depth of understanding of your work was and how your mind works.
zayelion@reddit
Three factors.
Google does it so it's o viously right, right? Group think. They Google the answer of how to do something they don't know how to do and have given no thought to and follow the instructions like a robot.
In management there is the concept of S tier players and liars. S tier players always hire and try to find other S tier people, but they make mistakes and get lied to occassionally degrading the company. People also have varied talent sets and could just be weak in the art of hiring. A tier eventually hires B tier and around B tier people start having insecurities and purposely hire people less skilled than them. Hince the concept of up and out.
Lastly, they aren't actually hiring and are milking you for correct answers to later get from a junior thats under valued or for a raft of correct concepts to look for in the real hire. You're a training run to teach them what competence looks and behaves like.
GND52@reddit
The ideal hiring process would involve temporary employment. Work for me for a week, if you're doing ok, we'll move on to a month, then 3 months, then 6 months, then a year, and it just goes on like that. If at any point you show that you're not capable of doing the work we part ways.
Unfortunately it's too expensive to fire someone, even in the US. Forget about it in any European country. So we have to have to spend more time vetting candidates before we hire them. But there's no interview process that provides anywhere near the insight into the quality of a candidate like actual work being done.
It should be much easier to both hire and fire people. The job market would clear much faster.
Illustrious_Pea_3470@reddit
I’m a staff engineer and I don’t really get all the hand wringing about this.
1) you still get a systems design round, and the higher your level, the higher your bar.
2) it’s not like leetcoding has gotten much harder for me as time went on
3) why should they trust me? How can they even know my level wasn’t just luck or mislabeling?
nfollin@reddit
We do a coding take home because the staff engineers who apply seem to shockingly fail it, and our senior engineers code a lot still. The rest of it, I don't because its useless.
UnableCurrent8518@reddit
Not sure about the solution. I think take home case is the best, so you can code and present your trade offs. If an interviewer can’t spot if you dont know how to code by talking with you about your challenge code that is another issue.
But nowadays, specially with coding assistants, having a live coding interview, for a senior, in my opinion, is a waste of time for both sides. I am currently dropping applications that require it and I think we all should do it.
Maybe, just maybe, we can start doing them but with the assistence of AI? So you can bring a real use case and check how the senior solve the requirements and tests and deals with the coding issues spit from AI and deal with trade offs?
Can’t we agree already that for most of cases, when used correctly, AI do a better job than a human but still needs the right human to do the job?
The vision in my opinion is align the tests with the real word. In the real world almost nobody codes with people looking at you. Nobody codes with someone worried about your train of thought. Most of people are using Ai under the hood. Most are not ready to assume. This is my assumption and opinion.
Most of us at the end of the day are CRUD builders, integration makers or pipeline maintainers. This is not rocket science. We have complicated it too much.
Some might work with real risks and build systems that might kill a person, so yeah, then we can be more strict.
We are swamped in tricky and cheaty complexities because many of seniors that help to build the application tests think they work at big4, faangs or whatever.
When I was a tech leader I recruited more than 27 people in one company. No live coding. Most of them are still in the same company performing well afaik. It was more about curiosity, transparency and getting shit done.
Good code is working code, tested, no security flaws and meeting the requirements for that specific moment without messing future implementations. And if you are a senior, even if you don’t now how to write that specific line of code, you can smell it.
phattybrisket@reddit
I have interviewed so many 'senior' engineers who seemingly can't code. Years of experience counts for nothing if you can't code.
Reardon-0101@reddit
Agree. These are the best types of questions but also requires a very seasoned interviewer
Choperello@reddit
Because there are a shit ton of people out there with supposedly 12 years of experience that can’t figure out fizz buzz or even know what a hash table is.
Navadvisor@reddit
Because of all the shameless liars out there and that corporations can't fire people once hired unless that person commits an egregious crime on the job.
Foreign_Addition2844@reddit
I've seen people get laid off their first week on the job for no fault of their own - its not that hard to let people go.
FrickenHamster@reddit
Getting laid off is very different legally than getting fired.
The only time a company doesn't have a lengthy expensive pip process is when they cannot afford one and are on the brink of failure.
Navadvisor@reddit
At my company that is impossible, and a lot of companies are like mine, I'm sure a lot of companies are like yours too.
FlipperBumperKickout@reddit
Why shouldn't they be able to fire someone?
Navadvisor@reddit
They should be able to but my large corporation they will not, performance is subjective, did you really try to train them Nav? They haven't shown up for work for half of their first 2 weeks (and other more egregious stuff I don't want to get into), let's give them some more time they might sue us unless we build a paper trail.
FlipperBumperKickout@reddit
Feels more like a problem with your company than anything else
Navadvisor@reddit
I think it's a problem with a lot of large bureaucratic companies. But I can't type out ours is uniquely bad, it seems bad to me....
Solid_Mongoose_3269@reddit
Exactly. I have about 20 years in multiple languages, and get the "here's your homework" that is in no way related. I have a resume, references, large companies, etc.
Whats worse is the "live coding" ones where they watch your screen. No developer knows everything, and we all usually look something up to refresh, depending on what we're doing, but in these situations we're scared to look stupid.
rudiXOR@reddit
Because they can and it requires commitment and the grinding proofs that you can obey and be a good cooperate drone.
PanicSwtchd@reddit
Because people lie and their resumes are puffed up all the time. A senior is very easy to determine when going through LeetCode problems, or talking about Hash Tables and taking a 4 hr coding challenge and going through 6 rounds of interviews.
It ultimately comes down to can you talk to the talk while walking the walk.
Companies have tried doing away with skill assessments for senior engineers and they get burned.
literally_sai@reddit
I don't get your point? Wouldn't you want to vet someone who gets paid significantly more and whose more free when it comes to decision making? I fully expect a senior to be capable of solving Leetcode problems and explaining what a hashmap is
Twirrim@reddit
Leetcode exercises are bullshit that don't actually reflect any kind of real world programming you're expecting a candidate to do on the job. Not does it actually reflect how you work.
I've ended up losing out on a job because I was rusty on dynamic programming and couldn't write code to solve the knapsack problem when there were 4 properties to consider. I lost out on another one because I'd forgotten about a particular graph traversal algorithm (one specific algorithm, mind.). I get prep docs from companies telling me to make sure I know at least 3 different sorting algorithms off the top of my head.
In over 20 years in the field I've used dynamic programming once, graph traversal once in a blue moon, and never had to implement a sorting algorithm.
In each case where I've had to implement the more unusual algorithms I've had reference material at hand to guide where I needed it. In the case of that real world scenario where I had to do dynamic programming scenario, I used the or-tools library's implementation because it's highly polished and extremely quick. The interviewer, of course, wouldn't accept that as part of my answer.
For good measure, leetcode and whiteboard coding exercises have a lot of peer reviewed research demonstrating that they're actually discriminatory, biasing against women, certain ethnic minorities, and a number of types of non-neurotypical people.
One of the strongest developers I know, who I'd quite literally take a pay cut to go work with again, cannot pass leetcode interviews to save their life. It doesn't work for their brain, it gets them into anxiety spirals in ways I have never once seen them go on the job. This is someone I've worked with during incident calls when everything is literally burning down around us, and with VPs+ harrassing for status updates, and they're as cool as a cucumber. I've never once seen them spiral on the job despite working closely with them in lots of scenarios.
With leetcode what you end up doing is eliminating a lot of solid candidates because they don't think the same way you do, and can't code in ways you don't actually do on the job.
SartanaNonPerdona@reddit
Me crying in 15 years experience 🥲
HiroProtagonist66@reddit
Oh I feel this so hard. I have over twice the experience you do and I had the same experience with the added bonus of “test anxiety” for live coding interviews.
If I was lying about being able to code, I would not have a resume showing at least 5 years experience at every position I’ve held.
The company that finally hired me did it on the basis of discussions around design, philosophy, problem solving skills.
evergreen-spacecat@reddit
Because it takes 30 seconds to generate or bullshit a senior dev CV. Because many people succeed to stay at senior positions for years just because they are great with customers or know the game and doesn’t even know how to make a basic algorithm. You need to check
Orjigagd@reddit
Because I've seen people with great looking CVs crash out on simple coding shit. People lie.
WeHaveTheMeeps@reddit
We don’t have a governing body or license. I spent most of my career (reluctantly) working in rails and despite its “convention” everyone did it differently.
I’ve left tech to go to healthcare and there’s extensive licensing thus one or two interviews.
That said, I don’t feel the interviews are really reasonable or effective.
For all the people who say “well we do these interviews because we’ve hired bad people,” I can’t help but say I’ve worked at prestigious companies and we still hired shit people with lots of rounds.
1One2Twenty2Two@reddit
Because they don't know any better. All the companies that do Leetcode rounds will tell you that it's to see how you approach and solve problems, but they don't care. They will take the guy that had the chance to practice the problems 100 times.
Kaizen321@reddit
Here’s the answer.
Let’s take a random problem and neither the interviewer or interviewee has done before. That’s how the real work works: shit is broken in production, no one knows Let’s solved it.
1One2Twenty2Two@reddit
In one of the best interviews I did, the interviewer gave me a couple of classes and asked me to refactor. It led to great discussions and it wasn't very stressful since you know that there is more than one good solution.
Kaizen321@reddit
Ah nice one!
Can relate. I had a similar experience, the code was isolated and kinda trivial-ish (for someone experienced). It was a simple api code with awful practices. The interviewers saw my WTH reaction and turned into a conversation, same as you.
(It was a code dealing with api every day and yeah I got the job)
throwaway_0x90@reddit
Because what it means to be "Senior" can vary
***wildy***from company to company.At a certain extremely well-known telecom company, job titles simply reflected how many years you've been there - not your actual skillset. There were "Senior Developers" there that never heard of the ping command.
ummaycoc@reddit
Why can't I just vibe interview my way into a high paying career?
yousernamefail@reddit
I can answer this because I regularly conduct interviews for senior engineers: People lie. A LOT.
In fairness, our technical interview is an hour long and doesn't involve leetcode. It's just a few silly coding challenges to make sure you understand basic logic and decision structures. Any engineer could do it, juniors included. AND YET, maybe half of our applicants fail it. We're just weeding out the liars. 🤷♀️
CraftyAd2599@reddit
I recently interviewed a bunch of candidates for a senior data engineer position and a number of them could not write a simple pyspark code for a problem even though their resume had pyspark listed with more than 3 years of experience in it mentioned by them during the interview. A majority of them were South Asian and at the risk of sounding the wrong way, I do think the culture allows for a tendency to fluff and get through the door as a way to rise up the ranks any way possible. This maybe bias and stereotype on my end but it’s something I have noticed and an expensive bad hire that we had to let go scarred my company who had to then revamp our hiring process to ensure they could write and deliver code.
Skarzogg@reddit
I think interviewers are lazy, it's normally a bunch of engineers being dragged out to do this interview they don't want to do so they grab a leetcode medium.
I am very much of the opinion leetcode is not actually an indicator of anything other than how much you study leetcode.
For example... my common question is something along the lines of "open your favorite editor and let's start with a simple bit set class, I want to be able to own an array of let's say single bytes that we will expose helper methods to manipulate the memory."
You'll be surprised i have associates who claim to know Cpp that can even setup the class. In leetcode you normally just write your answer in the framework provided.
I'll then dive into systems questions, why should we heap allocate this... when you call malloc or new what do you think the kernel is doing, virtualization, cache locality... move on to making the class templated, polymorphism, thread safety, data synchronization across threads, ... ect
Those are the skills and knowledge that relevant to being useful on my team, I don't care if you know how to order a linked list in optimal time... thats never something we need to do ... and even if we did, you just look it up when you need it.
I think leetcode is dumb, I think if thats how you filter candidates youre filtering for who can solve homework problems. If you have a position open, take some time, figure out what skills are relevant for your team and format an interview plan based on that.
Kaizen321@reddit
System is broken. Probably always been.
Inexperience hiring people getting dumped and then saying all “sr” are useless. This leet code., etc etc.
Or let’s interview like Google does it (stems from way back then).
Or some places don’t know how to interview. Some would not pass their own interview.
How about this: let’s both solve a leet problem that we both don’t know the answer to?
(The men is real when they have a crazy tough interview process and their code is mess,process is a joke and a toxic workplace)
Distinct_Bad_6276@reddit
Every single place I’ve interviewed as a senior has given opportunities to demonstrate this knowledge in addition to the technical screen. System design interview gives you the chance to talk about previous similar systems, “leadership principles” interview with a director lets you talk about leadership, heck even if neither of those interviews exist, the HM always asks about this stuff. I understand not all companies are the same, but if you don’t feel that they’re giving you opportunities to show off, it’s because you can’t see them.
tr14l@reddit
You have no idea how many people who hold "senior" titles have absolutely no idea wtf they are doing. To the point that they sometimes can't code at all. Like, not that their code is messy or not good, they literally can't do it. For loops escape them.
So, the fundamentals are always under scrutiny.
That said, I've changed the format of my interviews to focus on more practical skills like, debugging, code reviews and system design, and usually a very easy coding problem (like fizzbuzz or something slightly more complicated, just to show the very write SOME type of code).
Then usually I'll grill them in product-driven philosophies, ask them about best practices and see if they come up with caveats on when to use them or not. Anyone overly dogmatic gets cut. Lack of critical thinking and ability to assess and appraise a circumstance. I can use Claude if I need someone to half-assed implement the same solution every time.
Basically I've geared my interviews toward "mentor, guard dogging and decision making"
lambda_legion_2026@reddit
I'll agree with the group that it's all because of the charlatans out there. People who talk a good game but can't code worth shit. I've interviewed folks like that before. Some level of proof that you know how to code is mandatory for an interview.
mcampo84@reddit
Because there’s a lot of title inflation and enough incompetent people applying for the jobs that this level of screening is necessary. It’s a lot more expensive to hire the wrong candidate than it is to have a longer selection process.
beyphy@reddit
The truth is that it sucks. And everyone knows it sucks. And it likely weeds out some good candidates. But there's no better system for weeding out bad candidates.
I've never seen anyone complain about the system who has been able to suggest a better system. Any suggestions they typically make can be easily gamed.
lambdasintheoutfield@reddit
The answer is risk mitigation.
For me personally, from places I have interviewed, the most sensible interviews for me have been a weighted combination of
I have had more formal system design where I literally build out and scale an application the interviewer had in mind. I have also had a bit more informal where the interviewer asked me about the most significant software I have architected, analyzed design choices, identify potential bottlenecks and how I’d scale.
^ I think this works well personally.
This is for Senior SWE roles. As I approach Lead/Staff SWE level, I think if I was interviewing someone for my job, I would additionally throw in questions about broader technical strategy, understanding of the industry, management and examples of how to effectively delegate tasking under budgetary constraints and time pressure.
brainmydamage@reddit
Coding interviews are almost always about the coddling the interviewer's ego, not about measuring meaningful skills or knowledge.
bradgardner@reddit
Because the amount of people I’ve interviewed this year with 7+ YOE that can’t demonstrate in any way that they can do simple tasks in their preferred stack is crazy high.
I would love to talk about how someone led technical initiatives, but first the basics.
martinbean@reddit
Are you passing these interviews and getting hired? I mean, if they’re “junior” interviews then they should be easy to ace, right…?
Distinct_Bad_6276@reddit
Yeah, this post comes off as OP trying to cope with his own lack of skills, and a severe lack of awareness. If OP actually has 12 YoE and has functioned as a team lead, I feel he should have a good understanding by now of why everyone needs to pass the same technical bar.
Artistic-Border7880@reddit
But then what would you expect projects to be at that company?
iMac_Hunt@reddit
The only one listed that I have issue with is leetcode - it takes me week of preparation to nail these types of problems and very quickly lose the skill if I don’t use it.
aruisdante@reddit
As someone that’s given well over 600 technical interviews across multiple companies:
A well designed panel of interviews shouldn’t need to change based on the level of the person being interviewed (on a technical IC track at least). Everyone should get one algorithms focused interview, one “general programming” interview, one system design focused interview, a manager interview that focuses on fit-for-team, and a final non-technical interview that focuses on “fit for company” and ideally is given by someone not in the same directorship (or boss+2 tree) as the team hiring.
What should change depending on the candidate’s target level (not their on paper level, levels don’t transfer across companies at all. I’ve interviewed people with principal engineer titles (L8) from their previous company that wouldn’t pass the Software Engineer 2 (L4) bar at mine) is the signal you expect to get out of a candidate from those interviews.
For example, on the most high performing team I worked on, our “general skills” technical interview consisted of two parts.
The first was a 20 minute code review. We had an ~300 line “PR” that we would give the candidate, and ask them to give feedback on it. A junior candidate might find the basic, obvious syntactical or logical errors (the straight defects in the code). A mid to low senior might find that some of the code could be replaced by standard library facilities (IE “this for loop is just
std::find”). A high senior might find flaws in the actual design of the functionality and suggests potential improvements to the API to better serve the original requirements.The second was implementation of some basic data structures with a few wrinkles put on top (for example, a hash table with O(1) deletion of a random key while maintaining the rest of the O(1) properties). We actually let candidates use any existing facilities for these, since the point was to test how you might extend functionality with a wrinkle. The more senior the candidate, the more we would expect them to finish, and the more we would expect them to understand where to use something that already exists vs writing a purpose-specific optimization.
The same “scaling difficulty” applied for the algorithms question. We had answer keys for the stock couple of questions we asked that broke down what things we would expect candidates of different levels to know, and what follow up questions to probe them to test that knowledge. We actually didn’t care if they wrote functioning code at all for this one, pseudo code was fine, since the point was to test algorithm understanding and critical thinking skills. I once had a particularly bright junior candidate actually derive breadth first search during this interview from first principles because it didn’t click that that was what he was doing for him till he finished. He didn’t actually finish the problem, but that was more than enough signal to pass a junior candidate. Whereas a senior candidate not knowing BFS would have been harder to pass (keep in mind this team worked in a problem space directly concerned with graph searching, so BFS is domain relevant knowledge).
I guess what I’m saying is: the problem is not asking the same questions to candidates of all levels. You can get very good signal from doing that. The problem is asking bad questions with no clear understanding of the signal you’re trying to get out of them. And this happens because many companies severely undervalue interviewing and the general hiring process at their companies. For example it took one of the senior engineers on my team over a week to come up with that sample PR and its answer key, as well as several rounds of trialling it against other people on the team to get feedback. And then we spent time training everyone on the team on how to give each of the interviews. We took it really seriously. And the company itself had extensive interview training and guidelines (that some teams took more seriously than others). The debrief process during the hiring panel was also focused not only on making a hiring decision, but giving feedback to the interviewers on how they could improve their interview skills to get better signal in the future. That company had an incredibly good track record of making quality hires even when it was in hyper scaling mode.
On the other hand, other companies I have worked for, despite having similar interview panel compositions, don’t take the process seriously at all. There is no standardized processes, interviewers are not calibrated against each other to have similar ideas of what constitutes junior/senior/staff level performance, there are no standardized question banks with answer keys, forget being tuned to domain knowledge relevant to different teams. Hell they don’t even require debriefs. Suffice to say, these companies do not have good track records hiring talent, and it shows. The candidate experience also sucks, because it winds up seeming like a total crap shoot if they get hired.
TL;DR is that hiring for software engineers is really, really hard. Companies that invest in interview process and care about both hiring outcomes and candidate experience do better. But no one really knows for sure how to objectively evaluate skills as complex as those needed for software engineering in a series of 6-7 hour long interviews. It’s easy to fall back then to blindly doing leetcode interviews without thought at assume that’s going to be “useful” signal, but really all that tests is how well the candidate studied leetcode problems (and thus, generally, how recently they were in university). Those companies generally have bad track records of hiring good candidates.
Foreign_Addition2844@reddit
Because the interviewers are juniors too
itemluminouswadison@reddit
It's an expanded skill-set yes but if your sr dev isn't strong in coding basics, how are they going to lead a team and set standards and catch bad patterns and smells
rende@reddit
The worst is the people doing the interview and or the coding test arent competent.. thats why they are tasked with hiring someone…
Milrich@reddit
Why did the guy assigned to build a skyscraper recruit another 100 workers to help him? Surely, he wasn't competent if he couldn't build it all by himself!
rende@reddit
Thats not what I meant.
I understand they have the problem they need to hire talent, but the way they are testing is irrelevant because they don’t know how developers work. If you are hiring an rocket scientist whats the point of having then build a water rocket as a test
Fresh-String6226@reddit
Because there are many, many people that can discuss all of the things you mentioned, sound amazing in the interview, and then quickly fall apart for anything hands-on and technical while on the job.
Companies would rather lose out on great candidates that couldn’t take the time to prep for technical interviews, rather than risking very costly bad hires.
serial_crusher@reddit
I’
There’s enough bullshitters out there who will claim to have 12YOE but not know the basics. I like a process that asks the same questions of all levels, then judges their answers by different expectations for different levels.
So yeah we’re gonna do a behavioral round where I expect a senior dev to tell me about the architecture problem he solved, but I expect a junior to tell me about the tricky UI bug he fixed with help. We’re going to do a system design interview where I expect to coach the junior through some parts of it and gage how coachable he is.
Batman_Punster@reddit
Architect with 35 years experience in embedded FW. Interviewed at a company 3 years ago and they gave me a programming assignment doing bit manipulation. Low-level bit manipulation. As an architect, I don't do coding anymore, but they had been interviewing junior and mid-level programmers and that was in their script. I passed and got the job, but the time would have been better task focusing on key tasks for the job I was interviewing for.
tango650@reddit
Well how are they are going to know you're a senior before they've tested you ?
Inverse the problem: You're the employerand you're hiring a guy. What system do you design to avoid jokers? I think sooner or later you end up with leet code at one place or another in the process.
joefuture@reddit
Back in the day at Microsoft we gave coding problems and strange “make you think” questions because we wanted to see how people think. We did not hire for specific knowledge. If you didn’t get the solution it didn’t always mean a no. We wanted to see your thought process. We knew that tech would change over time and we wanted people who were lifelong learners and could adapt quickly. I feel like everyone else does it the opposite now. If you don’t have very specific domain knowledge or haven’t spent 10k hours on leet, it’s a non-starter.
IMovedYourCheese@reddit
Because there are plenty of "senior" engineers (I'd say the majority in fact) who don't know what a hash table is and can't write 10 lines of code.
StuckWithSports@reddit
That’s the curse of feature developer positions. There’s a lot of armchair senior and lead devs. People can become so hands off and middle management that they forget how to code.
That’s why I likely won’t ever go back to backend and distributed systems interviews despite my background as a streaming developer. I’ll just do platform engineering and cloud architecture, then overstep expectations and code features as well or contribute to open source to keep my coding skills up. Interviews are usually internally design, take homes, and conversation.
Fearless_Back5063@reddit
I went through a couple of interviews this year for lead positions and it was a mix of both. Usually the less experienced interviewers were asking technical questions only. But I think going through both kinds of questions gives you the best view of the candidate.
IGotSkills@reddit
Because people lie
AllHailTheCATS@reddit
Because some seniors can't do those things, in fact it can be hard to find people who do those things full stop.
Answer them well if you find them easy then use soft skills to upsell yourself when they ask you about experience, challenges etc.
SatisfactionEven3709@reddit
Employers want people who are good at interviewing. They don’t care about skill. This is why everything must be done in ultra-formulaic processes including the STAR method, which is designed for fluent bullshitters.
Most hr/recruitment types have learnt everything they know from textbooks. Senior management listen to them
hitanthrope@reddit
The answer to your question is, yes, this is absolutely what they should be doing.
If I am hiring somebody who is going to write code, I need to see some code they have written so that I can look at it, and grill them a bit on why they made certain choices or didn't try other things. I don't care what the code is. I don't even really care if somebody else wrote it as long as you can defend their choices for them with some intelligence.
Beyond that, we are just having a conversation. I am not convinced at all that this "leetcode" stuff is helpful. To the point that I sincerely believe that if I filled a company with the "best" leetcoders, I am certain the software produced would be utter, utter shite. It's a mistake, but also, there are at least as many bad interviewers as bad engineers, and there are a lot of bad engineers.
DirtyWetNoises@reddit
Because they are incompetent hacks
kaizenkaos@reddit
It's because people suck at networking.
Pttrnr@reddit
HR. it's a checklist and there are no exceptions. because they don't know what matters.
nycgavin@reddit
because anyone can pretend to be a senior if they studied for the interview
ancientweasel@reddit
In my experience the higher yo go up the more rounds of interviews there are since they are going to pay more money.
cachemonet0x0cf6619@reddit
Companies don’t really know how to hire and are just repeating what they saw google say they are doing.
jdgordon@reddit
Mostly because they have stupid HR/recruiting practices which think all engineers are the same, or they specifically don't want seniors. I'm in the same boat as you and mostly tell companies not to waste my time with this nonsense.
Smaller companies tend to do it more correctly in my experience.
StoryRadiant1919@reddit
The interests of hiring management (not managers) in those companies is not aligned with recruits, the existing staff or even often with shareholders. until there is mire alignment, it will always suck for candidates.