How I Prepared for Amazon Interview— Software Engineer
Technology is on the rise and software engineering has been becoming more popular and competitive. Big tech companies such as Amazon are always the ideal workplace environment to chart career path for many people. I am no exception and I took my shot with Amazon and succeeded in landing an offer.
It took me two weeks to prepare for the interview process, so I would recommend you to spend a lot of time to prepare carefully as well. I divided this preparation process into two phases, starting phase and running phase.
Starting Phase (8 days)
During this phase, I focused mainly on reviewing the fundamentals of data structures, some of the popular algorithms and familiarizing myself with the 14 Amazon Leadership Principles.
I couldn’t emphasize enough how important the data structure fundamentals are, as they are the building blocks for solutions of every problems. A lot of people just focus on solving coding problems as much as possible without knowing every different data structures well. As the result, they may know the solutions to only the problems they solved and it would be hard for them to solve a new coding challenge that they have not encountered during interview. If you could learn fundamentals very well, then you could solve almost all the problems. I used GeeksforGeeks website to review data structure (https://www.geeksforgeeks.org/data-structures/). In here, you can find all the data structure fundamentals and I would recommend to learn them all. As you are learning one data structure to another, it is also important to actually write the code to construct the data structure in Notepad, Notepad++ or in a piece of paper. Not only it re-enforces your learning and helps you learn faster, it helps you familiarize with coding in an environment that does not have auto-complete of code and auto-identify of coding errors.
For algorithms, knowing some of the well-known ones are quite important. It could help you to solve the interview problems faster, and help you stand out as a bright and knowledgeable candidate. Again, I used GeeksforGeeks website to review algorithms (https://www.geeksforgeeks.org/fundamentals-of-algorithms)
In this phase, I also spent a day to read through and try to understand what the 14 Amazon Leadership Principles are, as they are the core of the Amazon’s culture and what contribute to Amazon success. (https://www.amazon.jobs/en/principles)
Running Phase (6 days)
This is the phase that mostly focuses on preparing and practicing for interview questions, and starts solving as many coding problems as possible.
I prepared many stories about my school projects and my workplace that fit into 14 Amazon Leadership Principles. I would recommend you to prepare at least 10 stories and each story may touch on multiple principles at once, so you can have more than enough material to answer any behavioral questions the interviewers may have. Also, it’s very important to prepare your stories using STAR method. STAR stands for
Situation: What was the problem and why it happened.
Task: What was the tasked that had been assigned to you to solve the problem.
Action: What action you took to solve the problem and what you did that went extra and beyond the expectations of team to help customer or solve the problem.
Result: The final result of your action.
Even if you encounter a question you have not prepared for during the interview, it’s good if you could answer it using STAR method as well; because it helps to stimulate your brain to think about the answer.
Once I prepared 10 stories, then I looked up for a list of interview questions that closely related to 14 Amazon Leadership Principles. I came across this video from Dan Croiter with 22 Amazon interview questions. I wrote down these 22 questions in pieces of paper and then put it into a box and asked my friends to randomly pick one to ask me the question as a mock interview.
It’s also important to solve as many coding problems as possible during this period. The platform that I used was LeetCode. (https://leetcode.com/problemset/all/)
I focused mostly on the medium level problems and sometimes hard problems. However, as starting, I would recommend to tackle easy ones first so you can get a hang of it. During practicing solving coding challenge in LeetCode, I would recommend you to look at the solution after you have solved the problems, because it may contains multiple solutions so you can learn more ways of solving a problem and you can learn to analyze space and time complexity of different solutions.
Some tips for you during the interview:
- Ask clarification questions if you don’t understand technical questions or behavioral questions.
- Ask for a minute to think about the answer to the question if you can’t think of it right away.
- Use STAR method to answer your questions.
- Speak out loud your solution to the technical problem before starting to code.
- Speak out loud your thought process while solving the technical problem.
- Tell why you are going with a particular solution.
- Ask for examples and edge cases.
I hope you find this article helpful. I wish you the best for your interview (: