Preparing for a software engineer interview can be daunting. There's a lot to consider, and it's hard to know where to start. In this blog post, I'll go over the steps you need to take in order to prepare for your next software engineer interview.
The first step — Research
Know your audience. Does the hiring company have any information about their interview process? Some companies have a very structured, sometimes technically intense recruitment process. In many cases there are multiple interview rounds that might consist of:
- General meet and greet
- Technical - Coding, algorithms, data structures
- Technical - Architecture, system design, solutions
- Culture, communication, mentorship, leadership
As best as possible you should go into the interview prepared for any of the above. Some companies might outline these various stages or they might combine elements of each into an unstructured interview. The more you know about what you're going into, the better you'll do.
Next — Do your homework
Depending on the role, technical interviews can consist of a general discussion around coding problems, or hypothetical system architecture problems. They can sometimes take the form of a whiteboard or virtual coding session, or may even ask you to complete an online test, or a takeaway coding project. In any case, there are some fundamentals you can brush up on, including:
- Algorithms
- Data structures
- Systems architecture
- Testing - E2e, integration, unit
What I personally look for as a hiring manager
As an Engineering manager, hiring and developing a team of engineers is a key aspect of my role. Everybody has a different approach and philosophy in what they look for. For me, I look for the following in a very rough order of priority:
- Technical ability - Obviously very important. People need to demonstrate their technical ability. I'm not so interested in whether you can successfully link a list off the top of your head, or if you have memorised every browser api method, but rather, your approach to technical problems. How you step through understanding the problem and identifying the root cause, and how you communicate how you will address the problem.
- Communication - Even if someone is somewhat less technically inclined - If they are a good communicator with the right attitude, their potential value to the team may be just as high as someone who is more highly technically skilled or experienced.
- Culture fit - Check your ego at the door. Engineers can be strongly opinionated. How they deal with their opinions in situations where they are at odds with other members of the team, is a true testament to a potential hire. Again, I'd rather hire someone who communicates well and can constructively discuss their view on things rather than someone who stubbornly refuses to see any other point of view.
More tips
- Ask questions! It shows you are engaged and interested
- The more you can find out about the company, role and other people the better you'll be prepared and the more engaged you'll seem
- Try and relax. As hard as it is, the more relaxed you are, the more articulate you'll be