Types of technical interviews
A whiteboard interview is meant to test how you solve problems and how you communicate your thinking. It is intimidating, but if you read this guide carefully and you prepare yourself, this kind of technical interview can become almost fun to do.
What is a whiteboard technical interview?
Interviewers will hand you a marker and will ask you to either write code, or draw something on a whiteboard. Depending on the type of job you’re applying for, questions may vary a lot but in the end, you’ll always have to come up with a solution on the spot. Keep in mind that these kinds of technical exercises are not made to test if you can code, but will mostly validate how you solve problems. The good part about these tests is that if you feel comfortable for the role, you’re likely to handle this challenge very well.
How does the company proceed and what to expect?
The interviewer will come up with one big question or with multiple small questions and you’ll have to either code or draw your answer. Once you’ve come up with a solution on the whiteboard, be prepared to answer more questions about what you’ve just done.
What is it?
This is pretty much the easiest one to accomplish since you usually don’t have a time limit to achieve the challenge. This is the time to show how you can produce clean code and how you handle a task!
What should you do?
First, make sure you write down all requirements that are asked in a list that you can refer to. When you submit your final code, make sure all requirements are completed!
It is totally fine to copy/paste some code you find online, but if you do, make sure you understand it completely and you give credits to the author (in a comment section).
Even if they don’t ask you to do it, you should create a
README.md file to explain how your project works with prerequisites, installation steps, screenshots and small description of features that are available.
If you know someone that can understand your code, you can ask them to do a small code review before you submit it.
Finally, make sure you understand everything you do because you will probably be asked to explain your code in front of interviewers!
Just like the home assignment, the interviewer will come up with a question and will ask you to code a complete solution for that problem. It can either be an algorithm to solve or a complete full-stack project. Unlike the home assignment, this time you will probably be timeboxed and this can become very tricky if you have no clue how to achieve the solution or if you get stuck somewhere during the process. We encourage you to read the “During the test” article to help you if something like this happens to you.
Your behaviour will probably change if someone is watching you, but the key here is to stay calm and split the problem into smaller pieces. You might have to modify and add small pieces of code inside code that already exists and was provided to you. If this happens, make sure you read and understand the code that is currently in place. Finally, make sure you clean your code before submitting it (remove all console logs, all debuggers, etc…) and don’t forget to add some comments!
Out loud questions
Some interviewers want to know your general understanding of fundamental programming concepts. This kind of technical test will sometimes be combined with any other technical test since it doesn’t validate if you know how to code, but mostly if you know your theory. Make sure you know all fundamental concepts of the technology you’re applying for. A small trick is to Google the name of the technology and add some keywords such as “fundamentals”, “basic concepts”, “interview questions”.
If you don’t know the answer to a question, you can try something but don’t lie to them, they will know and they might keep you asking more advanced questions on that subject and you will end up in a deadend!
How to prepare
Glassdoor interview section
Let’s say you have a technical interview but you have no clue what to expect. There’s a website called Glassdoor where current and former employees anonymously review companies but they also have a section where people can talk about their experience during a specific company’s interview. All you have to do is go to Glassdoor, enter a company name and choose “Interviews” in the dropdown (you can also enter a location). Choose the proper company in the results page, then you can select a job position with the filters.
Read “Cracking the Coding Interview”
There is an amazing and complete book called “Cracking the Coding Interview” written by Gayle Laakmann McDowell about coding interviews. It covers all topics related to typical problems in computer science that are often asked during coding interviews. On top of that, believe it or not but this book has 189 programming questions and solutions about different subjects such as data structures and algorithms. Even if this book is essentially focused for jobs in big companies like Google, Facebook, Amazon and Apple, the first parts are extremely relevant for all types of interviews.
Start projects from scratch
A good way to practice yourself is to start small projects from scratch. It can be anything that takes approximately 4 hours or less to do! You can create your own boilerplate or you can use this awesome tool that creates boilerplate for you called CodeSandbox that can be found here: https://codesandbox.io/. For API calls, you can use this tool that returns items for you called JSON placeholder: https://jsonplaceholder.typicode.com/. When you code a project from scratch, try to do it on your own (without googling stuff), it’ll help you a lot during a technical interview when you won’t have access to Google. Here’s a list of small projects you can try to do:
- A todo list of items that you can toggle completed status (with some cute styling).
- An input that displays an autocomplete with results when the user starts typing something
- Front-End application with protected routes and a small sign in/sign up form
We can’t do this article without talking about HackerRank. With over 7 million developers, this is one of the best website out there to practice your skills. You can easily track your progression and become very comfortable doing “problem solving” questions. Even if this is a pretty good resource, don’t spend all of your time on this website since it only covers specific computer science fields.
Practice makes perfect
You can use a tool like https://www.interviewbit.com/practice/ to practice technical questions that might get asked in interviews.