close
close

Amazon Software Engineer Reveals How to Pass a Technical Interview

Amazon Software Engineer Reveals How to Pass a Technical Interview

  • Rahmel Bailey shares tips for acing technical interviews in the tech industry.
  • Understanding basic concepts and communication skills are critical to interview success.
  • Mock interviews and targeted practice can improve your preparation for coding tests.

This essay is said to be based on a conversation with Rahmel Bailey, a 25-year-old Amazon software engineer from Seattle. It has been edited for length and clarity.

I’ve been working as a software engineer at Amazon for over two years. I also work as an executive at FYJump, a platform that helps aspiring tech workers find entry-level jobs, develop skills, and prepare for interviews. We serve people who don’t have many connections in the industry and need help.

Almost every software development or related position will require some form of technical interview, so it is imperative for candidates to prepare well and perform well.

I have conducted numerous mock technical interviews and helped clients gain the skills needed to ultimately break into the industry. These are my tips on how to ace the technical interview and land your dream job in tech.

Get a clear picture of the type of technology job you’re looking for

Before you begin preparing for technical interviews, you need to determine your career goals and understand what types of jobs you will be applying for. Preparing for a coding interview at a bank can be completely different from an interview at a large tech company, so defining your goal will help you create a preparation plan.

Master the fundamental data structures that create coding challenges.

My advice to aspiring programmers looking for entry-level jobs in small companies is to master the fundamental data structures and algorithms that make up the majority of 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 videos about these concepts on YouTube or take Google’s free course on Data Structures and Algorithms on 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 complex data structures and algorithms like binary search trees and advanced graph algorithms. Depending on your learning style, you can do this through courses, tutorials, or YouTube videos.

Focus on repetition

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

I advise my clients to study smarter, not harder, by focusing on repetition. Spend as much time as possible fully understanding each issue.

Take a look at the solution and work back to try to understand how you might have arrived at that answer. When you move on to a new question the next day, go back to the previous question and try to solve it again. I also encourage people to use Blind 75 and NeetCode for more practice problems and interview resources.

This is what prevents even brilliant engineers from successfully passing a technical interview

It’s one thing to be able to find solutions when you’re training at home, alone, with unlimited time and resources, but it’s another thing entirely to interview live. Not only do you need to have a conceptual understanding of each problem, but you also need to discuss your thought process and collaborate with the interviewer, all within a limited time frame.

Therefore, I recommend that people prepare for a mock interview. Ask an engineer or friend to interview you, or watch online videos of other people going through mock interviews. Conducting a mock interview can even be helpful because you’ll get to know what it’s like from the interviewer’s point of view.

You could become a brilliant engineer who understands every concept thoroughly. But if you show up for an interview and start silently coding, you won’t be able to fully prove your abilities. I think communication skills are the difference that separates people who get into more advanced tech companies from those who don’t.

Step-by-step guide to conducting a technical interview

Many technical interviews last about 45 minutes and include one to five programming questions. After a quick greeting, you’ll have a problem.

  • The first thing you should do is ask the interviewer clarifying questions to understand the specifics of what he wants. Depending on the question, you might ask about the size of the data or whether there is a situation where the data might be empty. Ask about extreme cases that are unlikely but possible. Write down the assumptions you agree on so you both can understand.
  • Next, you’ll provide a basic solution that isn’t the most effective, before developing an even better solution based on the requirements. Be sure to discuss your process and describe it either in pseudocode or simply in English. The interviewer may give you some feedback or suggestions until you come to an agreement. This is your cue to start coding while speaking out loud.
  • Once complete, you can test your code using the example data provided or using an assertion test, a function that verifies your code.
  • Finally, explain your decision, including its advantages and disadvantages.

There is not always one right answer

Engineering is about the pros and cons, or the best answer to a situation. The interview process is not easy, but if you are willing to put in the time to learn and surround yourself with people who are willing to help you, you will be successful.

If you work for a large tech company and would like to share tips or interview experiences, email Tess Martinelli at: [email protected]