Why is it, that in a world that is currently celebrating diversity, we still continue to narrow that diversity by filtering job applicants by their ability to whiteboard or live program?
When I talk about diversity, I’m not referencing a tangible attribute. Diversity is more than just skin deep; its ingrained in how we think, our experiences, our chemical make-up, the electricity that flows through our bodies, and deep in our DNA. It is the very reason why given 10 programmers of all levels, and a singular problem of mild complexity (that has never been solved and unlike any other), more likely than not, there will not be two solutions exactly the same.
Reasons given for live programming challenges
We want to ensure the applicant can program
Is live programming really the best you got in terms of figuring out if someone can write code?
We want to understand how they think
Interviews are stressful. Imagine trying to study the lifestyle of a fish, by removing it from its natural habitat and placing it on land.
We want to ensure the applicant follows “common efficiency laws” of Computer Science
Programming is an iterative, and collaborative process. How many times do we write a function without having to improve it later? One of the methodologies of Extreme Programming is to code first and optimize last. Why? I’ll give you another magical analogy: because programming is like writing an essay, and essays always have rough drafts (and editors, critics, spell-checkers, grammar checkers, and now programs that take a guess at the quality of the essay, and a myriad of tools at our disposal).
We want to understand their coding style
Many companies enforce their own style and coding standards, that applicants inherit whether they agree with it or not. So unless you don’t have a coding standards document, why bother? You are going to tell them how to code anyway.
The Girl with the Honeybadger Tattoo Sticker
dramatization to reveal how current practices are acts of terrorism
I’ve been through quite a few technical challenges and I’ve always felt like a victim in a Saw Film (You know, where I’m given a perfectly reasonable challenge that is set-up in an environment that promotes failure).
What the interviewer doesn’t know is that I have severe anxiety (which bares little to no effect on my ability to write code under the usual non-life-altering circumstances), that has been intensified by neurological lyme disease. Here are the two perspectives, from my perspective:
Moments of Silence
“They must be googling the answer”
*”Deep breathes, relax, thinking of something happy, now refocus.”
When the interviewer keeps talking to fill the dead air (even more humorous when they do it while the interviewee is trying to program). Bonus points when they suggest a method that isn’t used until the end solution of the problem, unintentionally throwing you off-course.
“They are not good listeners”
“Breathe Deep, Relax, Happy thoughts, You can do this. Please stop talking. I don’t need help, I need to think. Really? How about I come to your office and talk the entire time you write your next program. Great, he is suggesting something and I don’t know why. Am I misunderstanding the problem? If I don’t use it, I fail? Where was I? Breath. Forgot to breath. Dominoes falling….
When they ask: “How would you make it better”
“This code is bullshit unideal”
“Better? I’m just proud that I could solve it while holding back a full cardiac arrest. DO YOU HAVE ANY IDEA HOW LOUD THE RINGING MY EARS ARE RIGHT NOW (No kidding, turn your volume to max and play the video below, it is exactly like that…except when really stressed, I have 2 tones and the feeling of a massive rock on my forehead and chest)?! Did you bother just looking at my open source projects? Ahhhhhh, forgot to breathe…everything is going fuzzy….
When I ask: Can I work on one of your open source projects, or walk you through one of my own?
“Cheater, you will pay someone to write the code.”
“because I want to show you what lies deep in my soul: My love of tech, and my initiative and ambition to give you my work, for free, to one of your projects, that may or may not be shi magical, that you will stand to benefit from. Why? Because I’m awesome, and I want you to know me, and who I really am, and how I possess qualities that some tech challenge will never reveal such as flexibility, candidness, learning capability, creativeness, tenacity, and how everyone thinks I’m hysterical when angry.
After the Interview
“Declines interviewee from applicant dashboard, that sends canned email response to interviewee. Internal note reads: “Revisit if needing a cheap hire” ”
“Think I’ll just work for myself, on open source, for the rest of my life, unpaid…and when times get tough, I’ll place a third world pic on a goFundMe account.” Oh hey, new job alert….
Obviously, this is intentionally written in a satirical fashion, but the situation is very real/unreal.
Yet, this isn’t about my problems versus acknowledging that we are all different.
Truth is, the problem is quite complex. There is no perfect answer, other than to open hiring practices up to flexibility. Give applicants an avenue to showcase what they are good at in their own habitat. Some people will do live programming, some will be open to working on open source of your choice, and others will already have open source and be excited to share it. If I was a hiring manager, I’d promote the last two methods because it benefits both parties. Any reasonable applicant will know that contributing to open source is another addition to the portfolio, or by sharing a current open source project, the business gets exposure to a potential tool.
Either way, stop the hazing. Just because the largest technical frat houses companies in the world do it, doesn’t mean we all should. If you swear that live programming has never failed you, well, maybe it hasn’t failed you , but I can say with complete certainty that you’ve failed some applicants.
To My Kindred Spirits
There is a light at the end of the tunnel. For people like us, the interview process means many days of sleepless nights. Yet, the one thing magical about our situation is that when we do get hired, it is almost always by an awesome manager who understands the complexities of human interaction, and who also knows how to make a very diverse team work really, really well.