During my time working in the Banking and Financial services industry I was responsible for delivering outplacement support to members of staff . Effectively I delivered support to staff leaving the bank (when the bank was the only Job they had ever known) to ensure they were Job ready and prepared to dip their toes in the recruitment market. One thing I taught in the workshops I delivered was the importance of proper planning when preparing for interviews. I spoke of the 7 P’s of planning – Proper Planning and Preparation Prevents Painfully Poor Performance. The Special forces actually apply these principals and the same applies in an interview, interviewing is not rocket science but it is important to prepare and prepare again!
There is no need to fear a technical interview as with a little positive mental attitude you just need to take every interview opportunity as a valuable learning experience. After all, the hiring manager has already opened the interview room door therefore they are already interested in your skills. So here is a few hints and tips to help you plan and prepare.
Before the Interview
Get Some Good Reading Material
If you follow the 7 P’s principals then you will allow yourself plenty of time to plan and prepare. Working through a preparation book will not only refresh your algorithms, but it will put you in the right problem solving mindset ahead of the interview.
Most importantly pick the right preparation book for your level and interests. Cracking the Coding Interview (available on Amazon) is a great resource but if you are not already a reasonably experienced programmer it won’t make up for experience. If you are just starting out as a Junior programmer the resources such as Programming Interviews Exposed: Secrets to Landing Your Next Job. There are numerous specialised and advanced books out there for those with more experience.
Practice Makes Perfect: Applying the 7 P’s
Nothing beats nerves better than planning, preparation and practise, so start whiteboarding whenever you can even with really small problems. Coding interview books offer nearly endless sample problems, but you can use problems you are already working on, too. Pose the problem to yourself (or ask a technically inclined friend to pose it to you, for a more realistic set up), map out your strategy and put marker to the whiteboard. The more comfortable you are marking up that blank board at home the more confident you will be during the interview process.
Don’t Overload Yourself
The Technology sector in Northern Ireland is such a competitive space and therefore it may be a common occurance that you find yourself involved in several interview processes for multiple employers at the same time so be sure to leave a couple of hours (if not days) between interviews. If you have multiple interviews in one day with limited time between each this may impact on your performance. You could be adding unneccessary pressure trying to get to each interview and run the possibility of maxing out your logic bank by the time you get to the latter interviews.
Also quite important ensure you get a proper nights sleep before your interview day. Nothing worse going into an interview with sleep deprivation.
During the Interview
Be Prepared for Anything
Once you have made it to the interview you should be prepared for a few different types of problem solving. The interviewers may ask you to talk through how you would solve a problem, they may open a computer and ask you to guide them through creating code, or they may have you write the code yourself on a whiteboard. Be prepared for variation and don’t get tripped up on the details! No matter what method your interviewers are using do remember it is your problem solving skills that they are really testing.
When you are presented with a problem think it through and make sure that you fully understand what you are being asked to do. Don’t be afraid to ask questions early if you are unsure of anything. The Interviewers should let you know this during their initial introduction to the process. If there are edge cases for example ask how your interviewers want them to be handled. Should you show an exception? break?
Also make sure to ask procedural questions regarding the format and process to understand what the interviewers are looking for and what your constraints are, for example, Is there a specific language you’d like me to give the solution in? Or, Can I assume I have access to a Python Library?
And never make assumptions. Even if you are pretty sure it is safe, mention out aloud what it is you are thinking so the interviewers can let you know if you are missing something.
Take Your Time
Once you understand the question being asked, don’t be afraid to take a minute and process before you start solving the problem. As long as you aren’t being barraged with quick knowledge based questions pausing after being asked the question is a good thing. I have always recommended that you use a class of water as a way of slowing down your thought process so that you aren’t too reactive, listen to the question, take a sip of water whilst you process the answer – respond!! The water also prevents you from getting cotton mouth due to interview nerves. Of course make sure you are not taking 10 minutes to solve it in your head without saying a word.
The point is to use your time up front to structure your approach, not to try and write all the code in your head before your touch marker to whiteboard.
Think Big Picture
Think about the big picture of the problem first. It is fine to pseudo code the overall structure as long as you tell the interviewers that is what you are doing and you intend to go back and actually code later. It is a good way to off-load the organising of the problem so your brain has more room for processing. This will also help if you run out of time in the end; the interviewers at least know that you had planned to finish out the task even if you didn’t get to the details.
Also, don’t worry at first about finding the most effecient way to solve the problem, unless it naturally pops into your mind. Nail a less efficient solution and then discuss why it is less than ideal. Then, if you have time or see a better way to solve the problem, move on to a more time- or space- friendly algorithm. Even if all you have time to do is finish your less efficient version and then explain how you would do it better thats not a bad answer.
Talk It Out
Most importantly. Talk. Ensure that you bring your interviewers along with you when you are solving the problem. This can be as simple as outling what you are about to do whilst you are doing it (“So i’ll need a for-loop to iterate through all the items in this list”) or posing problems to yourself as you go (“This means i’ll need a better way to access the information; hmm, i’ll get back to that later”).
Talking through your thought process gives your interviewers a window into how you think, and that is ultimately the purpose of the interview. Even if you think your solution is amazing, it is better for them to know how you approached the problem and got to your answer than to see the full-fledged answer and not have a clue about what led you there. It also gives the interviewers a chance to help you along if you are stuck or going down a path that is a dead end.
Bring Your People Skills – Be Ready to Sell Yourself
Just because you are going for an engineering/developer role doesn’t mean you can slack on being personable and selling your softer skills in the interview. I have been privy to interviews with extremely technical and talented developers that unfortunately were unsuccessful because they lacked the positive behaviours and did not demonstrate that they were the right culture fit for the company. It is not all about what you say but also how you say it!
Curiousity and enthusiasm are prized in any employee and developers are no different. Ask about the companies engineering team, its technology stack, and the companies toughest problems it is tackling for the product. Of course there is a fine line between being enthusiastic and being sycophant, so keep it genuine, but everyone loves a candidate who is interested in the product he or she will be working on.
Learn Something New – Every Interview is a Valuable Experience
Finally, one thing that interviewees most often miss is the learning opportunity. Hopefully, you will learn something new in each interview – you’ll require a new idea or a new tool or get some insight into interesting products and technology. The more your think about your interviews in this way, the more valuable that time will be in the long run.
I hope you have found some value in this article.