Ah…the dreaded whiteboard interview.
For those of you in the tech industry who are unfamiliar, or just really lucky to have never been asked to participate in one, the whiteboarding portion of the technical interview process typically consists of the interviewee hand-writing code in front of their potential future employer. Questions can range from simple concepts, code that requires multiple concepts (or has multiple solutions), all the way to the damn near impossible and the actual impossible. What gives? Couldn’t they just check out your coding sample via GitHub or shoot you a quick coding assessment to see if you write clean code? Sure, they could, however they would be missing out on a huge opportunity to see if you are, in fact, the right fit to join their team.
Herein lies the (non-technical) value of the whiteboard interview. I truly believe, especially for the junior developers that I work with on a daily basis, that the value companies derive from the whiteboard interview has much more to do with the individual they are interviewing, and a lot less to do with the code that the individual actually writes.
Hear me out…because I know that last paragraph seemed a bit off the reservation for those preparing for their own whiteboard interview. Is the code important? Yes. It’s still extremely important. Well then, what else is a potential employer getting out of the whiteboarding interview besides the answer to the question “can this person code?”
Your thought process, and ability to communicate that process, will provide more information about you as a developer than turning your back towards your interviewers and just silently writing the correct answer on the whiteboard. This goes back to the old adage from high school and college when your teachers asked you to “show your work.” Partial credit? Yeah, partial credit. Communicating your thought process, even if the code isn’t 100% correct, could actually help you land your dream job. Here’s how:
Your whiteboarding interview may be your first (and only) opportunity to truly demonstrate your technical ability. While you’ve got someone in the room with you, prove to them, beyond just the code, that you are a productive (or unique, or precise, or maniacal, or…) thinker.
How do we do that?
Before you even start to mark up the whiteboard, your first task is to reiterate the task at hand in your own words. Don’t be afraid to say “just so I’m understanding this question correctly, you are looking for me to find x solution by utilizing y technology?”
When you have framed the question in your own words, you are demonstrating a few key attributes. First, it shows that you can listen. Sounds simple enough, right? However, in actuality, this is your first opportunity to demonstrate your receptiveness and ability to take instruction, while also giving you an opportunity to grab any last minute suggestions or hints before you jump into the process.
Second, by reiterating the specific perimeters of the solution, as well as the technologies used (or steps that will need to be taken), you are laying down an archetype of sorts for yourself, as well as for the interviewer, to refer back to if you ever get stuck or lost during the problem. Use this as your anchor. Write quick notes, or a “technical word bank”, on the corner of the board. Refer back to it often.
After you’ve framed the solution, you’re off to the races in actually solving the problem. Remember to think out loud for most (or all) of the exercise, highlighting HOW you are using the prominent pieces of technology that you are coding on the whiteboard. Make sure you highlight “check points” – or smaller objectives – that you have completed along the way to solving the bigger problem. Often times, those interviewing you are willing to give you hints along the way, however, it is almost impossible for them to help you in any capacity if they don’t know where your train of thought is headed.
Throughout the entire interview process, you are basically selling the commodity of ‘you’ to the company you are interviewing for. You are selling your VALUE, providing the “why” if they ultimately decide to bring you on as a member of their team. Your ability to communicate your thought process will be invaluable for the interviewers. Your goal is to demonstrate the answers to these questions during your whiteboarding:
“Does this person think in a logical pattern?”
“Does this person think within a similar ideology as me?”
And lastly, but maybe most importantly…
“Could I see myself working on code 40+ hours a week, 52 weeks out of the year, with this person?”
Heavy stuff, right? You’re probably thinking, “You’re asking me to answer ALL of those questions, while also figuring out the code??”
Well, yes. Your ability to demonstrate that you are (or will be) a productive, skilled, “culture fit” for their team is necessary during this interaction. We all know that the tech industry is notorious for the long hours and late nights of coding. Because of this, when interviewing, it’s best to show your potential team that you have the ability to communicate with them, work on problems together, and come to a general solution of a task at hand. Point blank…show them that you are a cool person to work with.
When you believe you’ve gone as far as you can, ask the question, “I believe this should get the result you were looking for, does it look like that for you?” Bring them back into the code, have them share their thoughts on your work, and interact throughout the critique process. A simple “okay, I understand” won’t get you too far, especially if they are ripping your code apart. Connect the feedback they are giving you to the things that you do know, chiming in and even helping them with the critique process.
This shows self-awareness, a trait that is a must-have for anyone entering a new opportunity with a new company (or for anyone who is looking to stay employed through the day-to-day rigors at their current company). Show them that you are a great listener, while also showing them that you are great with feedback and understand how you would apply that feedback to future coding. If you can, get back to the whiteboard and redo some of the work that you’ve done, following along with their instruction and critique. Show them that you are open to suggestions and that you are a quick learner. Again, in doing this, you are demonstrating that you can be a valuable member of their team, or, “works well with others.”
Getting the final answer on a whiteboarding exercise won’t make or break your chance at getting the job. Sure, if you completely bomb the whiteboard, you may be out of luck. Tech companies need to bring someone on who knows what they are doing. But, going back to the partial credit adage, your ability to show off your communication skills and your thought process will have a much higher impact on those you are interviewing with. Remember when I mentioned some of the questions that are asked of you may have an impossible, or close to impossible solution? Companies do this specifically to understand your thought process. They’ve thrown out any value in you landing at the right answer, because sometimes, especially when you’re entering the workforce, the right answer isn’t always the most important thing to get out of the exercise.
The whiteboard portion of an interview doesn’t have to be dreadful. Of course, preparing for the technology on the job description is important. It is also important to set up practice questions with your tech buddies and participate in mock-whiteboards while talking through each step of your process on your way to the solution. If done correctly, the whiteboard interview can demonstrate the value you have beyond your coding ability and help you land your dream job.