The Technical Interview Rant

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

Interviewer perception:

Me:

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.

Interviewer perception:

Me:

When they ask: “How would you make it better”

Interviewer perception:

Me:

Embedded iFrame

When I ask: Can I work on one of your open source projects, or walk you through one of my own?

Interviewer:

Me:

After the Interview

Interviewer:

Me:

The Non-Answer

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.

I dream in Javascript