We had the pleasure of interviewing Sean Prashad, Site Reliability Engineer at Twitter, about preparing for technical interviews. Sean dishes out some of the most important algorithms he thinks engineers should know before going to a technical interview. It’s vital to know the foundational data structures and algorithms that the industry uses before going to a technical interview so you can be prepared for the technical questions. This article and guides linked below will help prepare you for your next interview! Technical interviews can be challenging. What algorithms should you know? How can you best answer behavioral questions? We address some of these questions and more in this article!
To get the best use out of this content you should look into all of the algorithms Sean mentions and study and learn them for yourself. This will help prepare you for your next technical interview.
The most important algorithms to know if you’re cramming for a technical interview are breadth-first search (BFS) and depth-first search (DFS). These two algorithms add a lot of value if you only have a short time to study.
Other useful algorithms include binary search, siding windows (which teaches you the difference between a substring and subsequence substrings), and backtracking.
As you may already know, all algorithms are good for searching specific values or targets. You can apply them on 2D matrices, binary trees or binary search trees, directed or undirected graphs, and strings.
What do most people get wrong during the preparation process for technical interviews?
- Not doing enough mock interviews to prepare for technical interviews.
- Not applying the knowledge you already have in mock interviews to see what skills you need to work on more.
Red and green flags for technical interview prep
- Red flag: Individuals who immediately jump into solutions and coding before the interviewer gives them the green light.
- Green flag: Individuals who are aware of tradeoffs. For example, if there’s a solution you can use, like a map for introducing linear space, versus another solution where you don’t need it, but it’s a higher time complexity. The engineer should be aware of this tradeoff.
- Green flag: Individuals able to produce readable code and the correct solution. You (the engineer) should be able to translate an idea into code. This comes with a lot of practice.
What should you consider when preparing for behavioral interviews?
- Soft skills are just as important as technical skills.
- Be ready to talk about your past roles, accomplishments, projects you’ve worked on, low points, and high points. Make sure you document or take note of all these points so you have answers to behavioral questions about your past work experience.
- Behavioral interviews showcase your personal brand and what you’ve accomplished.
- The interviewer wants to see the depth of your thinking on projects you’ve worked on, and that you aren’t just mindlessly putting your head down and working.
- The interviewer also wants to know what it’s like working with you. Can you communicate clearly? Are you able to explain technical concepts clearly? Are you able to show levels of growth and self-awareness?
Du’An Lightfoot, the creator of LabEveryday and Senior Cloud Networking Developer Advocate at AWS, recently published an article about handling technical interviews over the phone. Du’An recommends having the list of job responsibilities right in front of you while you conduct the interview, so you can be clear and honest about your suitability for the role. He says:
“[The list of job responsibilities provides] an overview of what your day-to-day tasks will be in the position you’re applying for. Oftentimes this will be very general when you read this section. Ask yourself if you have experience with the listed responsibilities. If so, be able to explain when, where and how you managed those responsibilities. Mentioning projects is also a great look to your future employer. If you do not have these responsibilities on your resume, be creative. Think of relatable technologies and tasks that you have done before. Also, do your research to be able to communicate that you have an understanding of the technology or role.”
Maximizing the impact of your experiences
Speak about any side projects you’ve done. Walk through the reason you started the project and how you went about developing it. This will most likely give you bonus points in the interview process and may impress your interviewer.
Remember to study the algorithms mentioned in this article. If you need extra practice with algorithms and coding questions, review the best Leetcode study guide, created by Sean. And check out Sean’s blog—you might learn a thing or two! You can also watch the full video of Sean explaining how to best prepare for technical interviews. Don’t forget to practice your soft skills as well. Our interview guide for our Engineering Partners runs you through what potential questions an interviewer might ask.