Written by Dave Cullen
Some industries have very specific interviewing processes all of their own, none more so than Software Engineering and development. Along with conventional sit-down questioning, interviews for these roles also require on-the-spot practical demonstrations of knowledge and ability. Candidates are presented with hypothetical coding algorithm problems and scenarios to resolve in a limited amount of time. Furthermore these tests are conducted through the use of a whiteboard with the interviewer quietly observing and scrutinizing everything the candidate writes.
As you can imagine, this method of candidate screening makes for a nerve wrecking experience. Even the most qualified and talented of engineers can fall victim to performance anxiety given the pressures of whiteboard interviewing. Thankfully there are a few key tips that candidates can follow in order to ensure they successfully showcase their abilities to their best advantage.
1. Practice using a pen or pencil: In order to perfect your whiteboard technique, it is important to familiarise yourself with the actual tools you will be using in the interview. Candidates often practice using their home computer and a compiler; however this means that they are not accustomed to the medium of the whiteboard. In the heat of the moment during the interview, a candidate can get thrown off by having someone standing over their shoulder. With a marker pen in your hand and a large intimidating whiteboard one foot away from your face, it’s easy to tense up and forget the most basic of operations. Simple problems that you would have solved in your sleep with a mouse and keyboard, suddenly become unnecessarily complicated challenges.
2. Don’t panic over small errors: Interviewers expect candidates to be nervous during an interview. Simple mistakes can happen especially when you are without a system like Intellisense or your trusty syntax colouring tools. The important thing is that you don’t lose focus. Don’t allow one small syntax slipup or a forgotten variable to throw you off and cause you to make more errors. One or two blunders here and there will be forgiven just as long as they don’t result in you fluffing the rest of the interview. The interviewer will be curious to see how you overcome and react to these mistakes.
3. Run tests on your code: As you prepare for the interview, take some time to run tests on your code when possible. Such vigilance will give you one less thing to worry about in the whiteboard interview. Your tests don’t have to be too intensive but you could at least check the most essential areas. At the end of the interview you will likely be asked to recommend the types of tests you would run on your programing anyway. You can beat them to the punch by suggesting the kinds of tests you would write in advance, for example, you might run edge cases on your algorithms. By anticipating this step you will likely impress the interviewer and strengthen your candidacy.
4. Ask if you can change the format: Although the whiteboard is becoming a universal convention in candidate assessment, not everyone is comfortable with it. Some hiring managers will be flexible when it comes to the medium being used to conduct the interview. Before your meeting, contact the interviewer and highlight your concerns. Enquire about the possibility of an alternative format, perhaps using a pen and paper or a computer. Having the interview conducted on your own terms will give you a much needed confidence boost.
5. Prepare for the questions: Whether your interview is conducted on the whiteboard or on paper, the questions the interview will ask you are the same. Although you won’t know exactly what the interviewer will throw at you, you can certainly prepare for the kinds of problems you will be asked to solve. Many large software giants like Google have their own specific systems and requirements of candidates. They will expect you to be familiar with them, so be sure to conduct the necessary research. In the main however, the categories you can expect to have to tackle include Functional and technical design, Construction, Algorithms, Data Structures, Testing, Maintenance and Configuration Management. For example, a Java Desktop Developer might be asked to design an API to handle navigation of a web browser, which can be reused in many parts of the application. In terms of Algorithm questions, you may be asked to name an example of a recursive solution you created. For a list of some of the most popular interview questions for software developers visit Noop.Nl
For more advice on acing Software Engineer Interviews visit Paul Tyma’s blog.