I appeared for Amazon’s recruitment process in December 2020. I got a call from a recruiter at Amazon for the SDE-1 role.
There was a total of 5 rounds (1 online coding test + 4 interviews).
Round 1(Online coding test): The test contains two coding questions which you have to solve within 2 hours. You also have to submit the approach used for solving in words along with the time and space complexity of your algorithm.
- It was based on the priority queue.
- Find the closest pair from two sorted arrays
I solved both the problems easily and got this round cleared easily.
The recruiter then contacted me for interviews. She told me that there will be 4 rounds of interviews and every round will be an elimination round. All interviews were conducted on amazon chime. Every interview round was of 1 hour.
Interview round 1: There were two interviewers in that round. In the starting, everyone gave their introduction and then the interviewer directly jumped on to coding. 2 coding questions were asked in this round. I had to discuss the approach clearly and write a neat and clean code for this. The code should cover all the edge cases.
- Sorted Array to Balanced BST.
- Given a matrix of ‘O’ and ‘X’, replace ‘O’ with ‘X’ if surrounded by ‘X’.
I solved both the problems and wrote a clear code for both of them. He asked me about the complexities of both the solutions.
Interview round 2: We had an introduction in the starting then the interviewer started with a coding question. The question was: There is a scientist, and he has to perform experiments on some virus. But he can perform the experiment if there is only 1 virus. GIven number of virus between [1,10^18], find the minimum number of steps to reduce the number of viruses using the below steps:-
- Add or subtract 1 to the virus count.
- May reduce the size by half if the count is even.
I solved the problem using recursion very easily and use memoization to optimize the code. The interviewer asked me to write the code and he was impressed by the approach I used.
He then asked about the complexity of the code, and we had a very good discussion on this. The interviewer then asked me about the DNS resolution process, the difference between MAC address and IP address, what are class A/class B/ class C IP addresses.
He then asked me about thrashing, virtual memory, caching, and real-life example of caching. I answered all of them properly and then at the end the interviewer asked some behavioral questions based on my past work experiences.
Interview round 3 (Hiring Manager round): For the starting 45 min, we discussed my work in my previous company. We had a detailed discussion about my projects in the previous company. He asked some behavioral questions in between based on those experiences. He was very much impressed by my previous work and then in the last 15 min, he asked me a coding problem.
The problem was a variation of Stock Buy and Sell to maximize profit. I initially gave him a brute force approach, and then he asked me to optimize it. I optimized it, and then he asked me to write code for it and at the end, we discussed the complexity of the algorithm.
Interview round 4 (Bar raiser round): A senior engineering manager at Amazon took this round. For the starting 30 mins, he asked about my previous works and again some behavioral questions. After this, he gave me a coding question. The question was:
- Given a graph, I had to find whether the given graph is a tree or not.
I discussed the approach clearly and then wrote a clean code for it.
Tip: Prepare DSA well for the coding rounds from GFG or leetcode. You should be able to write neat and clean code. Also, Amazon looks for leadership skills in its employees, so be prepared for behavioral problems as well. They ask a lot of behavioral questions too.
Be prepared with CS subjects like DBMS, Computer Networks, and OS.