Over the years I’ve been able to experience a few roles in the software and technology industries, and I’ve had the opportunity to interview and be interviewed for these roles. Below I will share some important steps to help prepare for an interview, and provide a few tips to help job seekers find success in the interview process. The intended audience is primarily the Software Engineering Community, but much of the same is true for any contributor role.
1) Learn about the interview process.
Learning about the process provides critical context that can easily make the difference when it comes to getting the offer. It’s important for potential interview candidates to recognize that interviewing is a distinct skill, and it requires practice and a bit of knowledge to make a successful impression. First, educate yourself on the company and it’s business, learn which products they sell and who are the competitors. Also, search for blogs and articles which provide insight into the company’s interview process. This simple step is cost free, and it makes an impression during an interview. It demonstrates initiative and shows that you’re invested in the process, and it can help lead to more focused conversations, which can be a good source of data points for the interviewer. Conversely, it’s usually obvious when a candidate is unfamiliar with the company or it’s business.
2) Prepare your best stories
During the interview, you’ll be asked questions to assess your competency in relevant professional skills. It’s important to be honest and be prepared to recall a relevant story from professional experience. When you’re new to the role or industry you may not have professional experience related to interview question. In this case it can be appropriate to recall a story from a relevant personal or scholastic experience. I sometimes find it difficult to recall my best stories during the interview process. It’s easy to be distracted by the unfamiliar surroundings and the pressure to perform well. One trick that can help navigate the distraction is to spend 30 minutes reflecting on career accomplishments, and write them down on a peice of paper as a simple list. Consider repeating the exercise to add details and more examples. This exercise will help to improve your confidence and leads to a smoother/easier interview experience. Another advantage with this exercise is you can reference this paper during a phone interview to help trigger recall.
Many companies will publish a set of business principles to help guide decision making within the business culture. And this provides another opportunity to make a strong impression by presenting stories which demostrate alignment to one or more leadership principles. As another exercise, try printing out the company leadership principles and write down one or two relevant stories next to each. You can also create flash cards with each leadership principle to practice recalling examples (ideally with a partner).
3) Practice for interview testing
Depending on the role being offered, you may be required to take tests during the interview process. For software engineers, these tests will include questions to test your knowledge of specific areas, such as algorithms or system design. There are several online tools to help you practice and get better at coding for specific competencies. Hackerrank.com has worked well for me. It’s free and has lots of good questions across several categories. If you get stuck on a coding problem, try recreating the test in your local development studio so that you can take advantage of the extra tooling. I’ve found that features like auto-fill and break-points help me focus on improving my problem solving skills rather than get distracted by syntactic knowledge gaps. Once you’re comfortable solving problems, try running through the problems without the additional aids, this will help improve your ability to recall specifics. There are lots of useful books on the topic of interviewing for tech roles, I would highly recommend reading Cracking the Coding Interview by Gayle Laakmann McDowell. The book provides an interview perspective from several large companies, and is filled with the kinds of exercises that are common in a technical interview. At some point you may be asked to solve a system design question. It’s good to brush up on design principles and architectural patterns. Youtube has several great videos on this topic.
4) Present your best self
Be authentic, be positive, be professional, you got this! If the interview is virtual, be sure to arrange for a quiet interview location and test out your audio equipment to confirm it’s ready. Also, be aware that the interviewer has to take detailed notes while staying engaged in the conversation. Speak clearly and provide concise answers, pausing to allow the interviewer to capture the notes. It’s important to be aware of time and avoid providing tangential details, let the interviewer prompt with follow up questions as needed.
As part of the interview process, you’re likely going to be asked questions about your weaknesses. It can be difficult to strike a balance when responding to a question like “tell me about a time you failed” or “tell me about a weakness”. These are important questions to prepare for because they can be hard to recover from if they go poorly. Remember that failure can and does happen, we all make mistakes (me too!). Telling a story about a failure you experienced can be a really good thing too. Be prepared to talk about lessons learned, things you could have done differently, and most importantly the steps you have taken to prevent it from happening again.
To Close:
Good luck and best wishes for finding your next great job!