Background: BTech from Tier-1 University(Non Compsci)
Experience: 9 months as a Developer
Amazon was always there in my top 3 list in dream companies. Approached couple of people to refer me for SDE-1 roles, so few days later a recruiter contacted me.
OA: Just two days before giving OA, I found Sithis post on Amazon OA questions. So I spent those two days solving all of them.
No doubt that I got questions from the same list.
OA had 3 parts:(AMCAT platform)
Part 1: 2 coding questions. I was able to solve the first one very quickly. There was some issue with the second problem. I used both BFS and DFS but I was getting a run time error.
Part 2: Explain my approach towards both the solutions. I think this helped me to get through this round, here I talked about the 2 approaches I used for the second question. They also asked about Time and Space Complexities of the solution we provided earlier.
Part 3: This is Amazon workstyle survey, based on their Leadership Principles. Basically it can be called as a Psychometric Test.
After this round I was worried about second question and immediately after the exam reached out(mailed him) to recruiter and explained the scenario and I asked if it's possible to ask an engineer to go through the code I've written.
He didn't reply to this message but he called me after two days and informed that I'll have my virtual onsites soon. He gave me a date and I said OK, since the date he gave was reasonable.(15 days after my OA)
He informed that I'll have all the rounds in a single day, but the secodary recruiter mailed me a day before the interviews that I'll have only 2 the next day.
The D-day:
Virtual Onsite 1: Interviewer was an SDE-2
First I introduced myself and then he directly dived into Coding Questions.
The first one was based on Binary Trees and BFS. I solved similar problems many times, so I explained my approach quickly, and then I proceeded to code.
There was one small bug in my code, have seen it and quickly fixed it.
I was asked about the Complexities of my approach before I coded, so he asked me to code only if he's satisfied with the Time and Space Complexity of my approach.
The second one was based on Stacks. It took me a while to realise this. Meanwhile I gave a brute force approach, and then quickly I gave a stack based solution.
Before writing the code, I ran through my approach using the example he gave. And then I coded.
I tried to maintain my code very clean, added comments wherever required and named variables meaningfully.
After this we still had 14 minutes remaining. So he asked me couple of LP questions, for which I was prepared. He also gave me time to ask couple of questions.
Overall I thought this round went really really well.
Virtual Onsite 2: The interviewer was an SDE-2
First 10 minutes went for two way introduction. And then he mentioned that I'm going to give you a question which is vague, and then he proceeded to give the problem statement.
I have never seen a similar problem before. It was related to n-ary trees and I was asked to write three different methods to perform some tasks.
I spent 10 minutes clarifying the question and asking him different questions. Then I came up with a solution and we talked about complexities. He was satisfied and asked me to code.
Then he asked me if there's a way to optimize the code. Then we had a very deep discussion on various aspects to optimize it. He was happy about and asked if I had any questions for him, I asked couple of questions.
It seemed that he was really satisfied with the interview.
I felt this was the best interview among four, it was more like a technical discussion with a peer rather than an interview.
After giving this round, I quickly got a call saying that I'll have my third round the same day.
Virtual Onsite 3: The interviewer was an SDM
First 10 minutes went for two way introduction. Interviewer was really friendly, he apologized for taking interviews virtually and thanked me for coping with it. Initially I was tensed since he was senior, but after he said that I became comfortable.
This round was completely LP's. 50 minutes of LP's. I prepared for this, but not for a whole hoir of LP's. But trust me, my preparation really helped me. Whenever he asked me a question, I took few seconds(talking, never stay idle) and then talked through it using STAR format.
I was asked around 13-15 questions.
For one question I had to repeat the same answer, he understood and asked a followup. Out of 15 questions he asked follow ups for at least, 10 questions.
Also for one question I frankly told that since I had only nine months of experience I hadn't faced that particuar scenario. He said that's undertandable and moved on asking other scenarios.
Finally he gave me a question on n-ary tree, I was able to solve this after taking hints from him. It was an easy problem, but I was kind of tired after talking so much and couldn't think to my full capacity.
He gave me 5 minutes to ask any questions and then he ended the interview.
I was positive about this interview, I exceeded my expectations answering so many LP's.
I got a call from recruiter, and I was informed I'll have my final interview a day after.
Virtual Onsite 4: Interviewer was a Senior SDM (Bar Raiser)
After introduction he gave me a problem statement. That was really confusing, initially I thought it is some kind of design problem, and then he again framed the question. It took me a minute to see that it is a Graph problem.
I explained it to him. He asked to talk about all the solutions I know, I talked about 3-4 methods. And then he asked how would I solve the same problem for an undirected graph, I explained him the solution.
Then he asked me to code any one of the approaches for directed graph, I coded and he was happy with it.(Also had discussion on complexities)
Then he gave a question on Arrays, I would say this is LC hard sliding window problem. I initially came up with a method using a heap, and then realised I need not use the heap. He liked my approach and asked me to code. He was satisifed with the code.
We still had 20 minutes of time.
From here the bad part(probably where I performed bad) begins.
He asked me to talk about deadlocks, I did and then he asked me how would I prevent it, it's a simple question but at that point I couldn't remember all the cases, so I explained it to him in a more general way.
Then he asked couple of general compsci questions, which I was able to answer.(again in general way rather than technically)
And finally he asked an LP regarding one of the projects I did, I explained 2 of my projects but it seemed he wasn't that impressed.
He also gave me time to ask couple of questions.
I felt the initial part of the interview went well, but the final 20 minutes didn't go my way.
But I felt the overall experience was positive.
It's been a week since I gave the interview, and I didn't get any reply. I mailed the person who scheduled the interviews, she told the recruiter will soon share feedback with me. I didn't get what she meant.
It really disheartened me I thought I gave my best shot, and did all interviews well(the last one was not so bad) but still ended up like this.(I've seen many posts here on LC, where if selected people got calls within a day, so I think mine is a reject).
UPDATE: I was contacetd by recruiter and I got the offer. Thank you for your support :)
But last one month LC community helped me a lot, so I thought my experience might help someone.