My least favourite interview technique has to be "talk me through a complex problem on a whiteboard". It's not so much the stress but the fact that you can't have a train of thought longer than 5 seconds before someone finds the silence awkward or interprets it as you're lost and breaks the silence and train of thought. It's a test for solving complex problems in 5 second blocks while being constantly interrupted.
We use a 3 step process, sans whiteboard:<p>1. First interview, the candidate interviews us. What market we serve, what our development processes are, what our technology stack is. If they express interest by being prepared and asking good questions, we send them<p>2. a programming task. Choose 1 of 5 tasks. The tasks are not abstract problems or puzzles, but come out of the designs we've implemented. We ask for 100 lines of code and not more than 2 hours. They take as much calendar time in days as they need, most have full time jobs, and let us know when you're done. The candidate then comes back, typically in 2 to 7 days and hosts a code review in front of our team. I give strict instructions before hand: The purpose of the review is to learn how they thought through the problem and how they solved it, not to criticize their style and approach.<p>3. If we decide we like them to this point, the third interview is with managers from other functions. How well does the candidate communicate, come across to non-developers, express interest in the company and role, etc. It's a check point to look for concerning weaknesses, as well as get buy in from the broader organization.<p>We like this approach because it allows the candidate to code in a much more natural environment. They can take the time they need and comfortably solve. No one spends their professional career coding on a white board. This approach so far has yielded excellent results. We ask developers how much time they took in the programming task and why they chose the one they solved. The programming task is telling, not in the quality of their code and how long they took, but how much did they get into it? We have had the range from candidates who did not complete it at all and opted out, to candidates who stumped 40 year veterans with elegant code. In every case, we learn how well they can express their thoughts, and importantly, their level of love for the discipline. This is as important to me as any other attribute.
> A technical interview has an uncanny resemblance to the trier social stress test [39], a procedure used for decades by psychologists and is the best known “gold standard” procedure [1] for the sole purpose of reliably inducing stress.<p>> The trier social stress test involves having a subject prepare and then deliver an interview-style presentation and perform mental arithmetic, all in front of an audience.<p>> … rather than avoiding unwanted stress, technical interviews may be inadvertently designed with the sole purpose of inducing it.<p>39: <a href="https://www.karger.com/Article/Abstract/119004" rel="nofollow">https://www.karger.com/Article/Abstract/119004</a>
Kind of disappointing that all the top rated comments here are about people's personal opinions about interviewing, and don't engage with the pdf at all. What I found most interesting was Table 1 - it shows that in the unsupervised interview the average score of women was 3/3, while in the supervised version it was less than 1/3. Small sample sizes, but still seems suggestive. (I CTRL-Fed but didn't find much discussion of it in the paper.)
The interview process is somewhat akin to the “stress” gatekeeping in other industries, where people in charge say “I’ve gone through this, so it makes sense that others would have to also or else we risk getting worse people”. While not really in the same ballpark it feels somewhat like the medical residency system, something that everyone knows is drastically unhealthy but it keeps getting propagated because people are afraid of what happens when you change it.<p>As someone with clinically diagnosed and treated anxiety the whiteboard interview is an absolute personal hell. I have extremely good performance ratings everywhere I’ve landed a job even in very high stakes actual work environments, but my opinion on the average interview process is it’s extremely discriminatory against people who deal with practically any mental health issue (which, let’s face it is probably quite prevalent in this industry).
It absolutely does. One of my first programming interviews, post MSc graduation, was essentially a 3hr whiteboard interrogation. I should have walked out after an hour as, in retrospect I was stuck like a rabbit in the headlights, unable to think straight as this unpleasant interviewer essentially tried to dismantle every angle of my understanding of a subject. I was gripped with anxiety and lost confidence. He claimed he was just trying to find out the edges of what I knew but boy did he do it in an unpleasant way. Interrupting, making slightly snide comments, being plain rude at times. I think he was either an actual jerk or maybe just not very good with people.<p>Anyway, other than that interview where I was super stressed and tanked it, all my others have been nothing like it. Just goes to show how stress and a loss of confidence can wreck your chances.
Speaking from personal experience, it absolutely does; both on a mental level (the feeling of being watched and judged, leading to constant second-guessing) and on a physical level, where it invokes the fight-or-flight response. I'm sure the latter in particular was super useful to our ancient ancestors, for whom a shot of adrenaline during stressful situations could be the difference between survival and death. But the physical symptoms - elevated heart rate, dry mouth, tunnel vision, shaking, excess perspiration - are actively harmful to performance in a software engineering interview.<p>I have friends who, before upcoming situations they know will be stressful - interviews for engineers, performances for musicians, surgery for doctors - have obtained prescriptions for beta-blockers, which mitigate the physical symptoms of the fight-or-flight response for a few hours at a time.<p>* <a href="https://en.wikipedia.org/wiki/Beta_blocker#Anxiety" rel="nofollow">https://en.wikipedia.org/wiki/Beta_blocker#Anxiety</a>
We discuss interviewing a lot here. Despite all the proposals things don't really change. FA(A)NG style interviews are just that - whiteboarding solutions to N algorithmic problems in M minutes (or minor variants of this). Either we accept this and move on with solid preparation or modify our priorities such that we're fine with not wanting the money and/or the quality of work (debatable) offered by these companies. At the end of the day, it's a choice and it's still in our hands.
The paper is easy to read, and a bunch of questions that came to mind were addressed, or at least acknowledged, in one place or another of the paper.<p>I appreciated the following tidbit, which I didn't know (since I figured prep for this particular test was now widespread there, by convention, but not officially stated):<p>> <i>students at Stanford take courses for passing technical interviews, CS9: Problem-Solving for the CS Technical Interview.</i><p>And because of things like that, the current interview convention seem even less useful as a predictor, for purposes other than "Did you go to Stanford, or are of similar socioeconomic status, to have been coached on beating the current metric, specifically?"
This is one of the reasons, I prefer small take home assignments which can be later discussed with the interviewer about the pros and cons of the decisions made during coding. As an interviewer, you get more insight into what the candidate was thinking and whether they were able to actually implement something end to end. Leetcode style problems rarely give you that signal from candidates.
We have a rule for technical interviews that we want to "enable each candidate to show the best version of themselves". It seems simple and obvious, but I'm amazed by how happy and excited people are by our interview process. I constantly get emails saying it was such a relief or that they loved it.<p>It just seems so crazy that we pressure technical candidates the way we do, and expect decent results.
My latest system design interview was: design this app. Dude was like "I'm expecting you to lead the conversation". I was like, bitch there's a million things to talk about, at some point you have to tell me where you want the convo to go. Needless to say I failed, when I'm probably overqualified for the job, but heh...
Absolutely. I've had it happen. I have even undergone tests that shows I experience performance anxiety, and that it actually goes up the easier a question is.<p>I've had interview instances where my face felt flushed and my mind completely blank on a question I knew how to do but struggled on. And then 30 minutes after the interview finished, the answer is clear as day in my head because it was indeed something I knew and the anxiety was gone.<p>I feel there is a fair amount of discrimination against those of us who experience anxiety like this, but in a way, I don't care all that much because places that interview certain ways aren't places I want to work anyway.
A kooky theory I harbor is that corporate tech continues to employ algo whiteboard hazing ritual interviews because if they were to evaluate SWEs with tasks more closely resembling the expected day-to-day they would have to pay them an hourly rate under CA labor law or face liability exposure.
Related from last year:<p><i>Does Stress Impact Technical Interview Performance?</i> - <a href="https://news.ycombinator.com/item?id=23844367" rel="nofollow">https://news.ycombinator.com/item?id=23844367</a> - July 2020 (26 comments)
The only time I've ever had a panic attack was when I was white boarding some basic stuff in an interview while I was hungover. Obviously being hungover is non-ideal and one wouldn't expect the interview experience to account for that but nonetheless I have always found it interesting that it took that combination to put me over the edge.<p>I remember leaving as quickly as I could and thinking that I had to find a place to sit down as soon as possible. I made it to Washington Square Park and just sat at a bench for about 30 minutes feeling like I was slowly coming out of a tunnel. Never happened before nor since.
There is no other field where the candidate has to pass an exam ever time they switch jobs. I suggest getting software engineers licensed by an independent party just once (maybe renew every 10 years.)
Tech wouldn't be where it is today without antiquated interviews and an industry of human resource management built on faith and tradition rather than science. Talented people go elsewhere, create new innovation, and prosper while the large tech companies copy or acquire the innovation. You are successful not only because of what you accomplish in life but because of what you don't accomplish. You choose not to spend hundreds of hours training to answer coding problems, prioritizing other activities to advance yourself.
I am surprised that there are not more "traditional tests". Give problem, give person 45 minutes, leave the room, come back and discuss it. I have strong social anxiety. It is extremely difficult to solve a problem with someone watching me. I get panic attacks in at least 1/3 of my interviews. I have never had to code with someone watching me during my day to day job. I am not not interviewing for the job of coding performance artist. Why make me audition like I am an actor or a musician?
I can't say I enjoy interviews, but they're really not that bad. Reading the comments here, you'd think everyone gets paralyzing anxiety during interviews. They're a chance to show off how smart you are.