Most people agree that whiteboard interviews suck. They have little co-relation with the job requirements and thousands of great engineers are being rejected every day just because they don’t do well with CS 101 types of questions. On a flip side, the whiteboard interview have been the industry standard for many years and they are not going away anytime soon.
I personally was in the “whiteboard interviews are stupid” camp since the beginning of my career. While I enjoy solving puzzles, I felt frustrated by my inability to communicate true value that I could bring to the company. Instead of investing the time to get good at whiteboard interviews, I got angry and blamed the process, the company, the questions, or the interviewer.
While this approach did not stop me from being able to maintain employment, it did cause me to miss out on many interesting opportunities.
Whiteboard Interviews are Here To Stay
Whiteboard interviews have a very high false negative rate (rejecting people who are good), but they also have a low false positive rate (hiring people who are not good).
Prospective employers are operating in a very competitive space. A day or two of interviews is the only interaction they will get with a prospective employee, before deciding to spend hundreds of thousands of dollars to hire them. For this reason alone companies are much more concern with false positive, than they are with false negatives. Not hiring somebody who is good costs them 4-5 hours of lost engineering time (assuming they can hire somebody equally good down the road), hiring somebody who is not good can cost a lot more money in the long run.
There are a lot of great engineers who do poorly on the whiteboard interviews. At the same time there are few bad engineers (although they do exist) who can do extremely well on the whiteboard interview.
Assuming that companies are able to secure a steady flow of potential talent (and good companies can), it makes a lot of sense for them to stick with whiteboard interviews.
No hidden agenda
I used to believe that I got rejected after many whiteboard interviews, not because I did poorly, but because I didn’t have the same (right) background as the interviewer. I served in the military, I was a Front End Engineer, I didn’t go to a fancy school, I used the wrong language, I’ve used the wrong framework etc.
This false believe was shattered when I watched a friend of mine get an offer from Google and Facebook at the same time, and have two companies compete for the right to hire him. My friend did not have a fancy CS degree, actually he did not have ANY CS degree. My friend did not have a fancy blog. My friend had no following online. My friend did not speak English well, he only lived in the United States for 1 year. But my friend practiced and got really good at whiteboard interviews. This was literally the only secret to his success.
Biggest bang for the buck
My decision to start this blog was partially my reaction to hating the whiteboard interviews. I understood that potential employers needed a way to see that I can bring something to the table, even if I was not doing great at the whiteboard interviews. This blog did help, but not in the ways that I expected. I’ve expected that people would start reaching out to me saying something along the lines of “You are great, come work with us“. What I got instead was, “Your blog looks interesting, come interview with us“, LOL.
First few times this happened, I wanted to cry. Soon I realized that no one will hire me on the spot, unless I do something truly amazing. Having a blog or an open source project most likely will not result in a job offer. An interview offer, sure, but not a job offer.
Here is a famous Twitt from creator of Homebrew?
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
— Max Howell (@mxcl) June 10, 2015
brew is not cool enough to get somebody a job at Google, chances are some random blog or open source project won’t be good enough either.
Guess what IS good enough to get a job at Google? Being good at whiteboard interviews.
I love blogging and I wouldn’t give it up for the world. That being said, if my goal is to get more job offers, my time is MUCH better invested in preparing for the job interviews. Blogging is a great tool for sharing knowledge and motivating personal growth. It’s just doesn’t help nearly as much when it comes to career. Sure it can get me a bunch of interviews, but so can a well polished resume.
Investment that will continue to pay off
As I mention earlier, I started out my career as a Front End engineer. I’ve only been working full time in this field for five years. In that time span we went through at least three major revolutions in the technology stacks that we’ve used. When I started everyone was using Backbone and jQuery as their main tools of the trade. Then it seem like Angular 1 for a while was taking over the world, only to lose that spot to React a year or two later.
Why am I telling all of this here?
Because, unlike Front End tech, whiteboard interviews changed very little in the same amount of time. Even though I am senior Angular 1 developer now, very few people care. It’s old.
Have I taken the time to become a senior whiteboard engineer instead, the skill would serve me well for many more years to come.
Experience != Not Having to Whiteboard
I used to think that having a lot of experience would help me avoid whiteboard interviews. This might be true for leadership or architect roles, but it is not the case for regular software engineers.
I think one of the best times for me do well on a regular whiteboard interview was in my 3rd year in college, right around the time I took an Algorithms and Data Structures class. My brain was really used to writing out those types of questions fast and accurately in C.
By the time I was done with my Master’s degree and went to my first tech interview, I forgot all about it. I was surprised when I was asked to explain how I calculated time complexity of a binary search algorithm. I remembered it was log(n), but the math behind it (in my mind at time) was long forgotten as useless information.
Today I see a lot of similar surprise/annoyance/eye-rolls when I interview more experienced programmers, only to see them struggle through implementing a very simple whiteboard question a minute or so later. Perhaps I am the bad guy for asking a whiteboard question. At the same time, it is the best tool that I have to avoid giving false positive in 45 minutes that I have to get to know this person.
Years of experience will help a person get hired, but only assuming that they can do as well as other candidates in their interview. If I had to choose between an alleged experience or a good whiteboard performance, I would choose good whiteboard performance every time. I believe so would most other interviewers.
Don’t leave opportunities on the table
If I could go back in time to my Junior year in college, I would pay extra attention in my Algorithms and Data Structures class and I would invest a lot more time to help me prepare for whiteboard interviews.
I did OK in my career up to this point. I got to work in good companies with some interesting people. That being said, there is no doubt in my mind that I have missed out on a lot of opportunities in the past five years, because I did not invest enough time into getting good at whiteboard interviews.
That is a mistake that I plan to remedy going forward. I would encourage everyone, from a freshman in college to an experienced software engineer, to do the same. Wether we like it or not, there is no escaping whiteboard interviews.
Programming Interviews Exposed
There are a lot of books written on the subject, but Programming Interviews Exposed is by far my favorite.
A lot of other books try to provide sample problem and solutions, a task that is better left to online programs. Programming Interviews Exposed instead gives a good overview of everything that a person is expected to know in an easy to digest format. If a person could read one book before their next interview, I would highly recommend this one.
Algorithms specification on Coursera
I took the first two courses of Algorithms specification on Coursera (and so did my friend who got a job offer at Google and Facebook). It’s a set of video lectures recorded by a Tim Roughgarden, a Computer Science professor at Stanford. I highly recommend it, especially for engineers who do not have a formal CS background.
Online Coding Dojos
I’ve asked a lot of engineers who do well on their whiteboard interviews how they prepare, and the answer is always the same – practice.
My drill instructor used to say that “perfect practice, makes perfect”. This makes as much sense for military drill as it does for preparing for whiteboard interviews.
Whiteboard interviews are here to stay. We might as well accept this as a fact and learn to use it to our advantage.
An interview is just a game. A game that follows a certain set of rules, has very big prizes, and takes practice to get good at.