Also, this argument is some grade school smarty pants "I'm too smart to show my work" bullshit:
> And because the interviewer can’t distinguish “skipped steps due to incompetence” from “skipped steps due to operating at a higher cognitive level,” they default to the interpretation that protects their ego.
I thought the days of hiring toxic "so smart I can't communicate" superstars was over?
One of the unexpected hardest parts was getting people to open up to the idea that they needed to improve something about their communication in interviews. It's so easy to comfort yourself with fictions about the interviewer failing to recognize your qualifications due to their own ego or other explanations. There are a million blog posts, Tweets, Reddit posts, and angry internet comments that will validate these feelings. Getting rejected and then going to the internet to validate your feelings of being wronged is so much easier than trying to reflect on how you could have done better.
Doing mock interviews for people was exhausting due to the time commitment, but it's one way to try to get around the defensiveness that comes from being rejected for a real job. Even with that, some of the mock interview candidates would get angry with the feedback and try to argue with you. It's weird to see. Nobody likes feeling evaluated and judged, so imagining an explanation that shifts the problem to the other person protects their ego.
A reasonable candidate can definitely make the mistake of not showing steps that they think aren’t important (and they can also go the other way and show way too many unimportant steps).
Everyone has their one favorite anecdote about the one person who slipped through the cracks and singlehandedly brought their company to its knees. But I contend that people spend far more energy defending against this use case than the reality warrants.
Why is it that everyone says that soft skills can be more important than hard skills, that engineers talk to people they don’t sit in rooms turning requirements into code, but then, it seems like one of the criticisms about the interview process is “well, engineers can come up with good solutions when alone in a room”
That’s not the job. Articulating technical details when in conversation with your colleagues is.
If you step back a bit from the words on that page and squint, what you might see is something like "Most of what a skilled engineer does is recognize, sense problems, and feel things that may not be obvious."
The discovery of the right path forward for the goals of the organization comes after that and takes time and planning.
First you think, then you think about how to say it, then you talk with others. Then you think again and maybe talk again.
But, it is not like we were designing everything in quick on the spot debates without research.
i cannot explain why it’s not possible for us to fling the flange if i don’t understand how both the flange flanges and the fling flings.
being able to talk about it is a downstream effect of knowing about it.
How well someone can solve a whiteboard challenge or brainteaser is irrelevant unless you are hiring someone to solve 10min whiteboard challenges.
Of course the difficulty is how do you assess what the candidate has honestly achieved in prior jobs - what was there personal contribution, and do they seem to have approached things in a way that suggests transferable/general skills that can be applied to the position you are hiring for.
The graphic at the beginning of the article is certainly one problem - the interviewer needs to themselves have the experience to assess the candidate. There is no point having someone with 5 years of experience interview someone with 20 years, assuming you are hiring them for that level of experience.
I think the best interviewing technique is just to go over the candidates experience, from most recent to as far back as you think is relevant, and get them to talk about each project. What was their role, what were their contributions, why did they make the decisions they did, what might they have done differently, etc. etc. Ask them to summarize and deep dive into the architecture, draw it on a whiteboard perhaps.
I'm fully aware that according to the internet, there is an epidemic of bullshit artists who can go deep on the architecture and tradeoffs and their contribution to the things they worked on, without having actually contributed to those things, but I dunno, the narrative just doesn't jibe with my anecdotal experience.
My only uncertainty here is that I do think I have been very fortunate in the people I have worked with in my career, so I might just be getting lucky. But I have truly never worked with someone who is hired largely on the basis of a strong resume, but genuinely can't grok fizzbuzz, or whatever the contemporary equivalent of that is.
I also recognize that you ran a real company doing real work on this, so I'm generally inclined to defer to your wisdom...
You can tell that I'm very torn on this, because the conventional wisdom is so strongly against my perspective on it, and I generally put a good deal of weight on conventional wisdom. But man, I dunno, it all really feels like an inertia thing that I increasingly question the original foundations of. Sometimes the emperor actually doesn't have any clothes on...
Second, how well the "stint" comes across in the interview is a question of how skilled the candidate is at talking. You can make anything sound like anything in an interview. The interviewer has no reliable way of checking.
> What was their role, what were their contributions
I got a hard reality check on this when my company was getting close to hiring someone I worked with at a previous company. Their resume claimed a lot of achievements that other teams had handled. Their work was always a problem and had to be quarantined from production systems because they were very careless and would even submit broken code without testing it.
They would spend a lot of time in Slack discussing other team’s work so they got good at talking about it. I think they also used a trick where they claim to have competing offers from other companies and not a lot of time for interviews, pressuring the interviewers to do discussion and resume reviews instead of getting into technical questions.
This wasn’t the only time, just the first time. After that I started doing more checking for claims on resumes, including calling old friends who worked with a person. It’s crazy how often someone will claim some responsibility or experience on their resume assuming that nobody will ever check it.
But then I've also read a huge amount about interviewing "correctly" over the years, probably starting with the fizzbuzz article, and eventually participating in "Big Tech" interview panel training, etc. And all of this directly contradicts this natural intuition that I have, and which your comment is espousing.
So I'm honestly left with pretty strong cognitive dissonance about it at this point. Are we wrong? Or is everyone else wrong? How can this consensus on the "right way" have become so ingrained for so long while being so wrong?
(I also haven't been involved in a lot of hiring or at a big tech company since 2022, so I also have no idea how things have evolved to adapt to the advent of AI tools. Surely nobody is doing the same kinds of whiteboard problems as they used to do! Right?!)
The one counterargument that I accept as valid is that this method struggles with equity and bias. It's impossible to have a conversational interview style and ensure everyone is getting equal treatment. And it's impossible to rule out subconscious biases as a factor while you're having that conversation. While giving people cookie cutter panels doesn't completely remove those issues, it helps a lot.
Then one day you encounter a candidate who is great at impressing people. They leave you feeling excited with the possibility of working with them. You feel delighted after each encounter. Then you hire them and they’re not good. At all. They don’t know basic things that you assumed they would based on how they spoke in conversation. They used all the right words and maybe even recited the precisely correct things to say for a system design question about past work, but when they have to do the same work they’re lost.
It’s a weird feeling to discover your intuition about someone was completely wrong, because we all think we’re better than average at separating the wheat from the chaff. I think it happens to everyone who does hiring at scale.
But honestly, does anyone here have experience with doing this kind of interviewing at scale, for experienced software engineering roles? I've been in the industry for coming up on a couple decades, and I have been involved in doing lots of interviews at times, and in that whole period of time, at every company where I've worked, we did the standard multi-round whiteboard / coderpad interviews. Do other folks here actually have recent experience "hiring at scale" in this industry, with a process focused on candidates' experience? Who is doing that?
And also, the question is not "are there ever false positives?" or even "is this biased toward a certain kind of false positive?". Nobody thinks any way of hiring is perfect. Even ignoring bullshit artists, sometimes very competent people just aren't a good fit for the actual demands of a particular job. The question is one of tradeoffs. Are the failure modes and biases of a particular process worse than those of another one?
To me, the current standard process comes at an enormous cost. At any job I've ever had, every time I think that maybe my time there has run its course, I immediately think, ugh, but I'll have to go through the f**ing interview process. I'm not a person who does research on this, so I don't have data or anything, but I must not be alone in this, and I think it is likely a meaningful friction in the job market. (Which, I guess is good for employers, so it probably makes sense that they like the status quo!)
That our industry is so bespoke and different and non-standard around tech stack organization and work culture between shops that in fact someone could have been performing top tier at their previous jobs and just completely not function in your workplace.
And because we have a recency and confirmation bias around your own positions, we treat their failure to thrive in our environment as evidence of incompetence.
When it's just really a bad fit -- one you can't really shake out in a verbal conversation or a whiteboard coding exercise.
Or there could even be something wrong with the way our own workplace is organized. One that we're used to working around, but the new hire is not.
There's so much broken everywhere I've worked. When I see a misfit I generally assume it's a combination of factors, not a person lying or being incompetent (though yes, I've seen that, too)
Mostly, they simply move off to another gig where they return to their previous strong performance. Occasionally they take a hit to their self-confidence and take a while to get back up to speed (we try hard to mitigate this, but it does happen). But sometimes they'll take a break, work out what was causing the poor fit, and come back much stronger than before.
It's not unreasonable to expect a similar pattern outside of consulting - it's just that, for perm staff, the psychological barrier to cutting your losses and moving on are much higher.
On my current team, I care a lot about the ability to write fast code. The most important part of my process is a take-home designed to take 2 hours where the main goal is to solve a relatively easy problem as performantly as possible. Answers have varied from 0.2ms – 50ms.
Take-homes have some obvious disadvantages, but overall I find they're better at finding the people we're looking for than just about every other method. But I'm at a small company, hiring for a fairly specialized team. If the situation was different (e.g. I needed to hire 50 people/year) I'd use a much more standard process.
Giving candidates feedback is good, but it has nothing to do with the likelihood or cost of a bad hire. Making timely decisions is good ceteris paribus, but it's of secondary importance compared to selecting the right candidate. Same with "effort".
Why is that so groundbraking? wouldn't that immediately tell you a lot about the applicant, regardless of the final implementation being a 10 or not?
If you give candidates the choice between a short take home or a 1-hour on-site technical round, almost everyone picks the take home. We’ve tried it.
It’s only online that you get the rants about “free work”, but the people making those complaints usually hate on-site technical interviews equally.
Of course it would be a major red flag if someone couldn't come up with a good sounding solution to something they claimed to be capable of, but a having a plan is not enough. Ideas are really a dime a dozen, and the ability to deliver is the what you really need, which is why VC's tend to fund people, not ideas.
The one thing interviewers need to stay aware of though is that they will have immense insight into the problem whereas the candidate likely has never thought through the problem space before. And this can lead to unfair judgements. I know I've fallen into this trap before, where I'd run the same session with so many candidates that I had a thorough big picture view of every possible approach. I'd see a candidate stumbling a bit and think, "Why can't they see the obvious answer in front of them?" when in fact I wouldn't have seen it on my first go either. I just had seen dozens of candidates go through the same exercise to the point where it seemed like old hat.
We’ve also been increasingly finding very few candidates know how to solve a complex question these days without LLM support lol. How are other folks changing their loops these days?
Please tell me you are joking.
Apart from that when lower down in seniority generally start-ups. There are many founders who get funding, know good people, and will hire them without many interviews. Having a good network is critical for exploiting all of these, as the interviewer has already effectively judged your skills over many years or decades.
At some point as an employer you do want someone who is motivated enough to take some time out of their day to prepare for an interview.
Do you really want an employee who gives so little of a shit that they refuse to use their brain to get a job?
This isn’t exactly a hot labor market in tech. Companies have a good selection of quality talent available right now.
To select for people who are willing to commit to a slow bureaucratic organization, make them go through repetitive interview rounds spread over many weeks.
To select for people who do well under pressure, make the interview stressful.
To select for people who can solve challenging problems, make the interview challenging.
There's no right answer as long as your hiring process is tailored to select for the attributes your company needs.
If you think that’s unreasonable, please go ahead and add a few fire sauce packets to the bag for me.
A 2 hour onsite with the candidate being rapid-fire interviewed by six different different teams and a 20 minute call every couple weeks for three months are very different (and select for very different types of candidates) despite having the same overall duration.
I’m not interested in companies arrogant enough to think people should want to work there so much that they will endure your hoop jumping.
If the interview process takes more than 3 steps and 3h, I'm out.
My interview process is very reasonable. If you’ve hit the point where you are required to do a 2-3 hour technical interview round with me, you’re a short list candidate and only have 1-3 competitors for a very lucrative job.
If that’s too much of a hoop for you, I’ll just take the sandwich, no fries with that.
“Oh, you don’t want to work for us? Well that’s a bullet dodged because not wanting to work for us means you suck (expressed in any number of ways, in this case you say I’m cynical) . We remain awesome!”
However, on the other hand, a lot of keyboard warriors on here love to be edgelords about refusing to take any initiative, as if every single form of interview that makes you work the muscle in your skull is a violation of the Geneva convention.
Like I said, perhaps selfishly, I don’t want to work with people who are going to complain every time they’re made to do something while being paid very good money to do it. I’m not telling them to work a 996 or miss their kids’ dance recital, I’m just asking for a solid 4-6 hours of honest work per day.
Many many folks are the type that is willing to hard grind/suffer short-term to get through a hoop, but as soon as they are inside they turn that 'optimizer' mindset towards 'how can I do the minimum necessary to coast and collect my paycheck'.
And many many folks who are highly motivated to work hard every day at their job are not highly motivated to prepare for jumping through a hoop like a circus clown.
If you as a manager can’t detect your employees coasting that’s a you problem. Understanding how to motivate your current employees is not in the scope of the interview process.
For your second paragraph, we can use a cynical attitude calling this “jumping through a hoop like a circus clown” but do you really want to hire someone with such a cynical view of the minor inconvenience of interviewing?
A lot of candidates are very accepting of the fact that interviews will take some work to complete and don’t take a cynical attitude to it.
I don’t have any interest in hiring someone who thinks 2-3 hours of time for a short list candidate interview after the screening process is unreasonable.
If you have made it to my 2-3 hour interview process, you are only competing against 2-3 people for the job. This isn’t some kind of unreasonable waste of time, I’m offering salaries multiple times the median salary, sign-on bonus, equity, generous PTO and free healthcare plan, etc. Having a chance to get all that is definitely worth 3 hours of interviews.
I don’t really need to hire the person who has $10 million in their bank account and refuses to lift a finger to get a job. That person can enjoy their life and do something else.
do you agree with this?
A good engineer is likely to find an equivalent job with a shorter or less bureaucratic interview process.
They sent me a summary document before the meeting, but I couldn't see the code until the interview. I felt like I identified the issue and where to make changes rather quickly, like 10 minutes of looking around and talking through how all the components and APIs fit together.
Then the interviewer asked me to implement a datetime solution, which in this time-boxed window my mind raced around to multiple solutions that I talked through out loud: I could write it myself which would definitely take some time for me to remember all of the syntax involved and reason through the problem, I could download an existing library which would also take some time to read documentation, I could google around for existing solutions in somewhere like Stack Overflow which is pretty hit and miss, or I could prompt an AI agent to write a solution for me. I talked through all of these, they wanted to know how I'd do it by hand at first, which I talked through for a bit but admitted I wasn't sure if it was a good way to go about it. Then I said given the time constraints the AI prompt route would probably make the most sense. By the time we arrived at that and tried it for a bit our time was basically up. And I got the impression suggesting AI to help code didn't impress the interviewer at all.
If others are able to stand out in this scenario then I guess I'll just admit I'm not the top candidate. My brain just doesn't work that quickly. I like to spend time gathering context and tinkering before really getting into the solution, and that probably doesn't come across well in these situations.
As a senior, I would much prefer a candidate who can discuss options more than write code - the writing itself is secondary, especially with AI. I want to see someone grapple with tradeoffs, clarify what they know and what breadcrumbs they want to follow before committing to a solution.
They are testing for diligence just like exams in Confucian based systems.
Soon they'll add phrenology assessments and will call it science
I've also seen quieter people who were average in interviews become excellent builders once they had a real problem to solve.
Interviews are useful, but the ability to ship, maintain and improve real projects should probably carry more weight.
But how do you assess this? Maybe we should get them to write a document that details what they've done, and then invite them to a conversation to discuss it.
Oh wait...
This part is good.
> as we see fit. you will be judged based on technical content, choices, taste and your overall approach and strategy for moving us forward and convincing us that you're the right person to do it. good luck!
This part is confrontational and will lead to worse outcomes. "As we see fit" signals capriciousness. "You will be judged" signals hostility. "you're the right person" engineers conflict; there is no "the right" person, only "a good" person. And telling someone "good luck!" in this context is like telling them to try not to die while standing on a narrow plank over a pit of sharp spikes. No matter how you think you mean it, it will come across as callous to many.
"We are going to push on the technical details, both those we agree with and disagree with. This is where the rubber meets the road. You've painted a picture, how does it stand up to scrutiny and challenge. In the end, while there may not be perfect alignment, we're looking to see how your ideas go through the process of validation and how we get there, communication, exploration, and collaboration-wise."
if you can scope out your problem to a simplified version & have a pen & paper / whiteboard discussion with a candidate. the candidate starts from a blank slate. they create their own constraints, validate their own assumptions etc. if they can't design something that works - u can prove this since you already have a working product in production. that way interview takes place in less than 1:30hr. saving time for u & candidate.
you cover: communication, critical thinking, technical chops. 3 birds with one stone.
but unfortunately most people don't want to do that - because 1. their products r fugazi (fueled by vc money), they're on ego trips (we gonna scale) & lastly want to make interviewing a hazing|humiliation ritual.
This is very true and one of the easiest ways to find that out is to put people into a pressure situation and see how they respond.
And of course, you need to find out if someone has a famous clue of how to go about solving problems.
How do you assess developers when AI makes it possible to create software without even knowing the language?
I don’t think code review of AI is important at all - specially given the developer might not even know the language, in which case it’s irrelevant.
I think ability to build checking, verification, linting, testing and cross LLM code review mechanisms is important, which ensure that fast changing or unpredictably changing ai code has consistent behavior and is security checked.
Y'all, it's not that difficult. You can just pretend we're like everyone else because gasp our profession simply isn't that special like we all think it is for some stupid reason.
Some companies I think do indicate skill, like a L5 at Google can do fizzbuzz I'm sure, but somewhere like Cisco or random small startup might as well be nowhere. As for education, no CS program in the country is a guarantee.
don't you realize it's exactly like
"attractive women reject the wrong suitors"
???
So I guess I don't realize it's exactly like, I personally I feel it is significantly different.