I’m a software engineer at Amazon. Here’s my step-by-step guide to nailing the technical interview and breaking into tech.

This as-told-to essay is based on a conversation with Rahmel Bailey, a 25-year-old software engineer at Amazon based in Seattle. It’s been edited for length and clarity.

I’ve been a software engineer at Amazon for over two years. I also work as a lead at FYJump, a platform that helps early-career tech workers find entry-level roles, develop skills, and prepare for interviews. We cater to people who don’t have many connections in the industry and need help getting their foot in the door.

Nearly every software engineering or related role will require some form of technical interview, so it’s critical for applicants to prepare and perform well.

I’ve conducted many mock technical interviews and helped clients build the skills to finally break into the industry. These are my suggestions on how to nail a technical interview and land a dream tech job.

Get clear on what kind of tech job you’re looking for

Before you start preparing for technical interviews, you need to define your career goals and get clear on which types of jobs you’ll be applying for. The preparation for a coding interview at a bank may look entirely different than one at a Big Tech company, so identifying your goal will help you map out a preparation plan.

Master the fundamental data structures that make up coding problems

I advise new programmers looking for entry-level jobs at smaller companies to master the fundamental data structures and algorithms that make up most technical coding problems. I recommend mastering eight basic data structures: arrays, strings, linked lists, hash maps, sets, queues, sorting algorithms, and binary search. You can watch YouTube videos about these concepts or take Google’s free data structures and algorithms course by Coursera.

If you’re applying to Big Tech companies like Amazon or Google, which tend to have more in-depth technical interviews, you’ll need to learn more advanced data structures and algorithms like binary search trees and advanced graph algorithms. Depending on your learning style, you can do this through courses, textbooks, or YouTube videos.

Focus on repetition

Leetcode is a popular online database of coding interview problems. Many people say the best way to prepare for an interview is to do hundreds or even thousands of questions on Leetcode, but I don’t think that’s the way. I believe it’s more important to have a thorough understanding of the core concepts than to go through as many problems as possible.

I tell my clients to study smarter, not harder, by focusing on repetition. Spend as much time as you can thoroughly understanding each problem.

Take a look at the solution and backtrack to try to piece together how you may have arrived at that answer. When you move on to a new question the next day, return to your previous question and attempt to solve it again. I also advise people to use Blind 75 and NeetCode for additional practice problems and interview resources.

Here’s what stops even brilliant engineers from acing their technical interview

It’s one thing to be able to find solutions when you’re practicing at home, alone, with unlimited time and resources, but interviewing live is a whole other beast. Not only do you need to have a conceptual understanding of each problem, you also have to talk through your thought process and collaborate with the interviewer all within a time constraint.

Therefore, I recommend people prepare with mock interviews. Reach out to an engineer or a friend to give you an interview, or watch videos online of other people receiving mock interviews. Giving someone else a mock interview can even be helpful because you’ll learn what it’s like from the interviewer’s perspective.

You could be a brilliant engineer who understands each concept thoroughly. But, if you go into the interview and start silently coding, you aren’t proving your abilities to the greatest extent. I think communication skills are the distinction that separates people who get into more advanced tech companies from those who don’t.

A step-by-step guide to nailing your technical interview

Many technical interviews are about 45 minutes and include one to five coding questions. After a quick greeting, you’ll be given a problem.

  • The first thing you should do is ask the interviewer clarifying questions to understand the specifics of what they want. Depending on the question, you might ask about the size of the data or if there’s a situation where the data could be empty. Ask about edge cases, which are unlikely but possible situations to expect. Write out the assumptions you agree on so it’s clear for you both to see.
  • Next, you’ll provide a basic solution that isn’t the most efficient before designing an even better solution based on the requirements. Make sure to talk through your process and draw it out, either in pseudocode or just plain English. The interviewer might give you some feedback or suggestions until you reach an agreement. This is your cue to begin coding and talk out loud as you do so.
  • Once it’s complete, you can test your code with the example data provided or through an assertion test, a function that tests your code.
  • Lastly, explain your solution, including its benefits and trade-offs.

There’s not always one correct answer

Engineering is about pros and cons, or the best answer for the situation. The interview process isn’t easy, but if you’re willing to dedicate time to learning and surround yourself with people who are willing to help you, you will be successful.

Similar Posts

Leave a Reply