How I Prepared for the Amazon Interview

Since I started to work for Amazon as a data engineer, some friends have asked me how I prepared for the Amazon interview. I have organized the list of resources gathered during my interview preparation and will also share my interview experience.

I have gone to the software engineer and the data engineer final round interviews. The interview processes are similar with both requiring you to know how to solve coding and system design problems and to demonstrate you have Amazon’s leadership principles. Data engineer interviews have an extra SQL component and will test your knowledge on how to design data pipelines depending on the reporting need requested. Software engineer interviews focus more on software design and on writing clean and maintainable code. If you just want the resources I’ve compiled for the Amazon interviews, please feel free to skip to the summary.

Online Assessment

Assuming you have passed the resume screening, the first round is the online assessment. It consists of two coding challenges, “describe your approach” questions to describe each of your solutions, and a work style survey.

For the coding challenges, you’ll get the type of questions that you see on LeetCode. I recommend doing LeetCode questions on a consistent basis. Spend an hour each day or every other day if you have less time but the key is to be consistent. As for the difficultly of the problems, I like to do medium difficulty questions exclusively. Medium difficultly questions reflect most closely what you would see in an interview and will help you learn some of the common coding concepts and approaches. If you are interviewing for a data engineer position, do all the LeetCode database questions for SQL practice.

After you have completed the coding challenges, you will be prompted to describe your approach and to state the big O runtime of your solutions. The online assessment will then conclude with a work style survey, which is a series of questions about your work style where you have to rank on a scale how much you agree or disagree with the statements. It’s intended to get an honest assessment of your work style so doesn’t require any preparations.

Phone Interview

Once you’ve passed the online assessment, you will advance to the phone interview round. The phone interview lasts for an hour which starts off with Amazon leadership questions for around 20 minutes and the remaining for a coding problem and time for any questions you may have for the interviewer. For the data engineer interviews, you will also get asked a few questions on SQL queries but the coding problem will be less difficult and require less time to complete.

Keep on doing the LeetCode problems to prepare for the technical portion of the interview. However, unlike the online assessment, you won’t necessarily be given an IDE, a method signature, or sample test cases. Practice solving problems on a text editor and ask questions to clarify the problem. Type out a few test cases and its expected output before you code so you can identify edge cases and let your interviewer correct any misunderstandings you might have early on.

Although this is a technical position, demonstrating Amazon’s Leadership Principles is just as important. Take some time to reflect on your experience and list out the projects and challenges that you’ve worked on. When you go over each Leadership Principle, assign the experiences which relate to it. Ideally you will have at least 3 experiences to talk about for each Leadership Principle. Search up your completed tasks if you have a ticketing system which keeps track of the work you’ve done. Often times, you’ll be able to discover things that you have overlooked or forgotten.

Once you have done the prep work, search up Amazon Leadership Principles questions. You can follow the STAR method when answering the questions, but essentially you are trying to describe a situation, what you did to improve it, and what resulted from your actions. Answer the questions out loud so you can mimic a real interview. Keep in mind that it’s very possible to have talked about an experience for an earlier interview question so be flexible with which aspects of a particular experience you highlight. As you practice more questions, you will become more articulate and better at answering the same questions with different experiences. If you don’t feel as confident with interviews, I suggest doing mock interviews with a friend.

In-Person Interview

The final round interview consists of five hour-long in-person interviews. For software engineer interviews, there are three coding rounds, one system design round and one round for Amazon Leadership Principles. For data engineer interviews, there are one coding round, one SQL queries plus scripting round, one system design round, one data modelling and ETL round, and one round for Amazon Leadership Principles. All the technical rounds will also have 20 minutes allocated for Amazon Leadership Principles questions and how you do in them is as important as how you do in the technical portion of the interviews.

The preparation is similar for what you would have done while preparing for the phone interview with the key difference being the extra system design and ETL rounds. I would recommend going through the Grokking the System Design Interview course early on as I find system design preparation is the most time consuming as engineers tend to have less experience designing complex systems.

For software engineers, you are expected to choose the right data structures and to apply good software designs. I’ve gotten questions where the interviewer simply tells me the type of system and the functionalities that need to be supported with nothing provided on the shared editor. In this case, you’ll need to determine which data structures to use, what kind of classes you will have, and how to adjust your solution and its design for any additional requirements. Be prepared to get a real life problem your interviewer is solving. You’ll need to verbalize how you will approach the problem so ask clarifying questions.

For data engineers, you are expected to be familiar with how to design data pipelines so read up on the common data concepts which I’ve shared in my preparation resource below. You don’t need to be an expert at any specific big data technology but you should be familiar with the tools available and what tradeoffs to consider when designing a data pipeline.

Summary

The Amazon interview is a long and rigorous process. If you are considering applying for Amazon or have already applied in the past, don’t get discouraged if you get rejected. Interviewing is a skill which requires practice. You can apply every 6 months to Amazon and through each preparation you’ll become more familiar with the process and the knowledge you’ve gained will be helpful for any jobs you wish to apply. Best of luck with your careers and feel free to download the Amazon interview preparation resources I’ve compiled.

Thank You Index Exchange

After working at Index Exchange right out of school for nearly 4 years, I started to work for Amazon this month.

I still remember attending the on-campus recruitment event. It was a whole day event with hiring companies holding info sessions at separate lecture rooms. There were info sessions for Intel and another company called Index Exchange happening at the same time. I had already gotten a chance to speak with an Intel engineer so I decided to attend the session for Index Exchange.

The room was filled with no more than 20 people since the majority of the students attended info sessions from more well-known companies. The recruiters, Aaron de Wit and Jessica Apelowicz, were personable, engaging, and passionate. I never heard of Index Exchange nor knew anything about advertising technology but they seemed like the people I would enjoy working with. I went home that day and told my mom Index Exchange had made the best impression on me.

I was happy when I got the Intel interview. The question I got was about string manipulation. It was meant to be easy to just get me started. It was easy, but I couldn’t solve it.

After a few weeks, I got the Index Exchange interview. I read up on all the topics covered and made sure I was able to answer all the questions posted on Glassdoor. I asked for the interview to be delayed for 3 weeks so I could have more time to study. I was prepared. I passed the phone screen and got invited to the on-site interview. My interviewer was Roni Gordon, who unbeknown to me at the time, would be the engineering lead I would work closely with throughout my time at Index Exchange. I solved some coding challenges, answered a few questions on how I would test a product, and eagerly showed him my mobile app. The interview ended a few minutes early since there was a meeting he needed to run to.

When I got the offer the following day I was happy, probably not as happy as my mom, but very happy. I studied and was fully prepared but I was also fortunate. Graduating with a commerce undergrad degree, I rushed through my computer science major in two years. I never had any engineering internship or co-op experience as most computer science students had. I could have easily not passed the resume screening. I might not have even passed myself.

Fast forwarded to 4 years later, I’m no longer working at Index Exchange. I needed a change at this point of my career. I want to tackle different technical challenges and learn how other companies approach problems.

I joined Index Exchange as a solutions engineer before transitioning to a data engineer and had been on multiple teams. One thing that is constant is the people. The engineers, managers, directors, product managers, engineering leads, agile coaches, commercial and facilities teams are all eager to help. No matter how senior a person is, it’s literally one message away.

I love Index Exchange. The work environment is amazing and the people are the reason why. There are so many people I’m happy to have gotten to know. A lot of them have helped me, a lot of them I call friends, and one I call my girlfriend. You know who you are and I want to thank every one of you.

I’m excited to get started on my new journey with Amazon. I wish everyone the best at Index Exchange and keep in touch!