Originally published at deepu.tech.
I wanted to write about these for a while but was procrastinating on it. Today I decided to finally pick it up after seeing the below tweet
Antonia Forster@antoniarforster"Whiteboard technical interviews appear to favor men over women... no women successfully solved the problem in the public setting, whereas all women solved it correctly in the private setting".
Interesting findings from NCSU and Microsoft 🤔
theregister.com/AMP/2020/07/15…07:55 AM - 16 Jul 2020
So I guess you got an idea of what I'm talking about. Yes, the technical interview process in the IT industry is broken. It is biased, it's based on the old mentality of how a software developer has to be and based on unrealistic expectations. I guess we are all partly to blame as we didn't push back against this enough. Below are the most common practices during a technical interview these days.
Solving a problem on a whiteboard including writing pseudocode or actual code on a whiteboard or drawing process/technical diagrams.
Most of the IT companies, including most of the big names out there follow this outdated process when evaluating someone's technical credibility.
Coding on the spot while someone watches over you or via a remote session when someone monitors what you do. Most of the time, these assignments are asked to be done in an IDE or environment that you are not familiar with.
Solving coding challenges on a platform like HackerRank or Codility. This normally requires you to complete some short coding problems within a given time and most of these platforms can track your step-by-step input and mostly will have automated tests that may not be visible to you. These often require you to work in environments that are not familiar to you. Coding challenges are not great as it can also cause anxiety and doesn't have a lot of scopes to ask questions or to understand problems at hand but at least they are not as bad as whiteboarding and live coding, as you still have the ability to do this at your convenience and use external resources to look up.
You are given a small application or a problem to be solved at your own convenience, often with a max time limit. You might have back and forth with the company and you might have to explain your solution in an interview. While take-home assignments are better than other options in this list, it still is time-intensive and if you are applying to multiple jobs that require this then you will spend a lot of time doing assignments.
While coding challenges and take-home assignments are not particularly great, they are not as bad and biased as whiteboarding and live coding. These require you to work in an unfamiliar environment without resources like an IDE or code editor. And most importantly you don't have the best tools in a developers toolbelt, Google and Stack overflow :)
How many of us can honestly say that we can perform our best without our favorite IDE, tools, and Google. Like it or not, this is the fact, so why should a technical interview be any different.
Give your future employees the same comfort and tools that your current employees have access to when interviewing them as well. The results could be amazing.
These methods are designed to cause anxiety and pressure. Most people will not be comfortable performing complex tasks in front of strangers who are evaluating your every move. Of course, there will be few who can ace these but what about the remaining? Being able to perform under pressure is not a quality of a great programmer. You are not working as a hacker for an intelligence agency (Remember the popular NSFW scene from the movie Swordfish?).
You are not Hugh Jackman from Swordfish or a hacker working for an intelligence agency
Most of us never work under such pressure and performance anxiety in real life (I'm only talking about the case of someone watching over your shoulder and judging you) you might be under unrelated anxiety and pressure and those are the times we won't be able to do our work properly and we might take sick days and stuff, so what is the point of expecting someone to perform these tasks under pressure for a job.
I generally do well in interviews and don't have any issues solving coding challenges and stuff, once during a tech interview for a Developer Advocate position for a well-known company, the interviewer suddenly asked me to fix a factorial code snippet on the spot over zoom call without ever hinting beforehand that this will be part of the process. I have solved factorials a thousand times, hell; I use them as examples for recursion all the time. Despite that, I completely froze and my brain just shut down, I couldn't even read the four lines of code and make any sense of it as my brain was just frozen and I was feeling so much anxiety and I started behaving like a 1st grader, and was blurting nonsense for the next few minutes. The anxiety was so unbearable that I asked them to end the interview. I would have never accepted the interview if I had known that this was part of it, as I don't think putting myself through such pressure is worth the job.
Imposter syndrome is very common in the software industry and people who struggle with it are the worst hit from these outdated hiring practices. Having to do whiteboarding or live coding will only make the situation worse and if you happen to fail in those, then it will make things even worse. You will lose confidence and will start to believe that you are not good enough. Often times this goes hand in hand with the above points about anxiety.
A recent research from North Carolina State University (NCSU) and Microsoft suggests that whiteboard interviews favor men over women psychologically and are 'anti-women psychological stress examinations'. These interview processes test for stage fright rather than coding competency. Apparently, these processes resemble 'Trier Social Stress Test' a gold standard procedure used by psychologists to induce stress. So the process is not just biased toward women, but also biased towards people susceptible to social or performance anxiety, imposter syndrome, and so on.
In the beginning, I said we are partly to blame. Why? Because in most companies, still doing these interview techniques, it's not something mandated by the company management or some standards, it's mostly people who are in charge of hiring (hiring managers, developers, team leads) who decide the process. So if you are in a position to influence hiring practice and didn't try to change this, then you are part of the problem as well. So what can we do to change this?
- Talk to hiring managers and people in charge of hiring in your company, explain to them issues of whiteboarding and live coding interviews, pressure them to change the process. If you are a team lead, make sure your hiring process doesn't have these.
- Turn down interviews that have whiteboarding or live coding in their process and explain to them why you turned it down. I have done this many times in the past. Of course, this may not be practical if you are desperate for a job. In that case, ask them if they are willing to do something like a coding challenge or take-home assignment instead and explain why you are asking for that. If they still insist, provide honest feedback on how it felt after the final hiring decision is made.
- If you are in some position of power or influence in your company, please voice out against these practices
A company that treats an interviewee well is a company that will treat its employees better.
If you like this article, please leave a like. I would love to hear your thoughts and experiences in the comment.