This is the first part of a three-part series on software engineering interviews.
The idea of technical interviews leaves even the best of us shaking in our boots. A simple google search on software engineering interviews brings overwhelming results on programming questions, what to read, etc. It can get very overwhelming when preparing for a tech interview. All the time in the world would not feel enough. It feels like you need to consume all computer science and programming knowledge there is out there in the span of a few days or weeks. From my two cents, that is not a good feeling to have. This usually happens sometimes because the interviewee doesn’t know what the interview will be like. Some companies may clearly inform the applicants on what to expect once they pass the résumé screening stage, some may do it vaguely in a one-line email, and some may not at all.
Different companies evaluate their applicants in different ways. The good thing is you may know what to expect when you’re applying for the job. The requirements in the job description are a good enough hint to what the applicant will expect should they proceed.
Here’s what I have gathered from interviews I have been in and feedback from other interviewees.
Types of interviews:
These types of interviews test the knowledge on a specific technology. For instance, if the company is looking for a React developer or Django developer then expect to build, showcase and discuss that technology. The tests and stages will all be built around that specific technology or programming language. Sometimes you may be asked to build something close to that company’s system in the relevant language or debug a project that has already been built.
Computer Science Fundamentals
This interview tests your problem-solving skills, analytical and creative thinking and finding optimal solutions using computer science basics. It tests your knowledge in basic computer science concepts. The language used here does not really matter, as long as you are able to solve the problem at hand in the most optimum way. Many large technology companies tend to go with this approach. You may have a really cool project under your belt but you also need to understand the basics of computer science like data structures and algorithms.
Stages of interviews:
Getting to this stage usually means your résumé stood out enough to put on the pile of ‘To Contact’, so tap yourself on the back. This is the stage where the interviewer, usually a senior software engineer, finds out more about the applicants other than what they have read on their résumé. Phone screenings are phonecalls of an average of 30-45 minutes where the senior software engineer finds out the enthusiasm of the applicant in joining the company, their passion for technology and programming and their communication skills.
A tip to pass this stage is to be enthusiastic, know your audience so that you can ask questions and also take part in the conversation, and lastly be honest about your skills and your passions. At least that way you’ll give your interviewer a good idea of what kind of developer and person you are.
Remote Coding Challenge
This stage involves a take-home coding problem. Depending on the rules, the applicant may have 24-48 hours to solve it or the applicant is required to solve it live as the interviewers watch, usually through a video interview and online code editors. For the latter, the interviewers want to watch the problem-solving process of the applicant.
Being watched as you code, especially by people you want to impress is very scary. It helps to talk as you code. (Thinking out loud). They better understand your problem-solving process (which is the main reason for this type of interview) and may sometimes pitch in an idea or two that will help.
- If you’re stuck, say it.
- Be clear and articulate as you explain what you’re doing and why you’re doing it. Remember you’re coding for an audience who need to understand your thought process.
- Be confident even if you’re wrong. No one’s perfect.
- Stay calm. This may seem impossible but your chances are better off when you’re calmer than when you’re getting a mini anxiety attack.
Lucky you if the instructions require you to solve the challenge in a few days. You have some time to work on it and the best part is that you are not under the spotlight. However, this doesn’t mean get comfortable. You still need to put in the work.
- Google, look for optimal ways to solve the problem.
- Document your work because you will not be there to explain to your interviewer(s) as they evaluate your work.
- Go the extra mile. Fulfill all the requirements needed in solving the challenge and add something extra. That’ll show your enthusiasm.
Usually happens as the last technical assessment. The remote coding challenge is the last stage in some companies while others may proceed to this one so that they can narrow down their pool of applicants. The whiteboard challenge is almost like the remote coding challenge except in this one, the applicant solves the problem using a whiteboard and marker, while the interviewers watch. I know! Frightening.
This stage tests your creative thinking, problem-solving skills, and thinking process.
It may seem frightening, but here are a few tips on handling it:
- Ask questions to make sure you understand the problem. Don’t just rush into writing code. That puts off most interviewers. Also, describe the problem to the interviewers in your own words (how you have understood it)
- Solve the problem as you talk. Thinking out loud is always a good way to keep the interviewers attentive and in sync with what you’re writing away on the whiteboard. It’s also a trick in calming your nerves.
- Feel free to try different and new ideas whenever you’re stuck. You don’t have to keep hitting a wall. Build a door or window, or dig under it, whatever works for you. This will demonstrate your initiative as well as creativity.
Coding interviews are like math exams in high school and university. Often you’ll get partial credit for showing your working and putting in some effort to find a solution. – Refael (Pramp)
- Be clear, articulate and legible. Remember you already understand what you’re doing but the people who hold your chance of employment don’t. They rely on you to understand.
Some advice I’ve picked up over time
Interview the company as well. Find out whether they are good for you, whether they respect your time and need to grow. It’s your career life on the line. Ask tons of questions.
Take every stage you get to as a lesson to proceed to your next search. Find your strengths and weaknesses and don’t take it personally when you get cut off in one of the stages. Work hard on what you can control and don’t worry about what you can’t.