Amazon Interview Experience – SDE 2 (3+ Years)
I was interviewed at Amazon Hyderabad for SDE 2 role.
Round 1 (Online Test, Hackerrank):
- [Medium] A big problem statement, it was very similar to Rotten Oranges Problem. Instead of orange, there was a file that needs to be transferred across all systems represented in the matrix.
- [Easy] Problem statement demanding to sort the array of custom objects with a custom comparator based upon the use case of the problem.
Round 2 (F2F, Technical):
- Next Greater Permutation
- I did a project on the internals of Java Reflection and Classloading, the interviewer was interested in the entire architecture and implementation.
- Leadership Questions, when was the last time you realized the importance of a good leader
Round 3 (F2F, Managerial & HLD):
A use case of B2B business where Amazon would be onboarding multiple companies in its platform. Each company has some characteristics (CompanyInfo Partner) that are used to rate them and we have “n” partners that can provide those characteristics via API. Each CompanyInfo partner returns some different sets of fields (though contributing to the same factor). Rating is used to provide additional services to the partner. Design a system where all of such partners and companies onboarding would be seamless. At any time, he should be able to query the system basis any characteristics and filters (revenue, numberOfEmployees, etc). He wanted to understand how do I generify the whole vague problem statement and ask doubts regarding the same with him. We had an exhaustive high-level discussion of microservices that I would be putting up.
There were behavioral questions as well.
Round 4 (F2F, Technical, LLD):
Design a feature in Google search which returns “k” most visited websites at any point in time from a log server. A log server provides a trigger whenever a particular website is visited. Low-level implementation is an extension of K most frequent elements in an array. I started off with sorting and moved to Heaps, took me time to get there after struggling. I was asked to write APIs for each operation considering this feature and all design principles that were involved in the design.
Discussion of concepts of MicroServices, Monolithic system, Singleton pattern, Immutability.
Round 5 (F2F, Technical):
- Word Ladder Problem. I was then asked to optimize queries if dictionary is constant. I cached the Graph and ran BFS for each query.
- Extension on previous problem, he wanted production ready code with suitable methods, method signatures, classes for consumption. He wanted to see if I can write readable, and extendable code.
- Questions on Amazon leadership principles
- When was the last time when you had to compromise a requirement due to lack of time.
- Last time you couldn’t deliver on time.
A week later a got a call for last round (Bar Raiser).
Round 6 (Video Call, Bar Raiser):
This round was completely behavioural round. Inclusive of questions about work that I have done in current organization.
Some of the questions that I remember are:
- A contribution that you are proud of and made a big impact.
- A case when you had a conflict with your manager or lead regarding a design.
- A case when you messed something up and how did you handle it. How did your manager respond to this?
- Something that you learnt working closely with your manager.
- Why Amazon?
There were a lot of questions that I can’t recall. Amazon has a set of leadership principles that they follow and accordingly try to understand you. Just be yourself and don’t lie about your work. Because trust me, you will get caught in deep dive.
Few suggestions for preparations from my side
- Design questions are broad and intentionally left vague, ask relevant questions to understand the problem better. Interviewers would be happy if you put up right questions.
- There is no perfect solution to design problems. The whole point is to understand how good are you in solving real use cases.
- Prepare for leadership and behavioural questions as well. They do make a difference.
- Don’t rush into buzz words (as mentioned by Tushar Roy in its Preparing Design Interviews video). You rush to Consistent Hashing with basic knowledge and interviewer might slit your throat 😛