Amazon | SDE2 | San Francisco | Mar 2022 [Levelled Down Offer Declined / Reject]
Anonymous User
2084

Note: I will not be able to share the exact questions due to NDA.

Current: 5.5 years of experience
Location: Bangalore

A recruiter from Amazon NY contacted me in Jan end for positions across Amazon USA/Canada/Mexico. I was given option of selecting any of the locations across these countries where Amazon has office and I chose SF. I was not actively looking for the opportunities at this moment, but decided to go ahead as I simply could not pass the possibility of working at Bay Area.

Initial HR Call:
It was just about the mutual introduction, salary expectations and further interview process. I was sent the OA link right after this call and had a week time to take it.

OA:
It had 3 parts:

  • Two DSA questions: Time bound. 1 medium and 1 super hard. All the test cases passed for the medium one and 7/12 passed for the super hard one. Super hard one was something related to allocating contiguous computing machine with some memory constraint, a DP based problem.
  • System Design simulation: Time bound. A situation is given and 5-6 options are given. Had to select the most suitable option based on the situation. Situation is nothing but the new requirement, change in existing requirements, issue in the system and so on. Had 5-7 such questions.
  • Behavioral: Not time bound. Behavioral questions where I had to select one among the four options that better describes/suits me.

Feedback: I did pretty well in system design simulation according to me but I was expecting the rejection as I could not solve a coding question completely. Within 2 days, I got the feedback from the recruiter that I have cleared the online assesment and they want to schedule the interviews. The recruiter scheduled a call where in she gave me the detailed expectations of each rounds and she shared a lot of prep materials. I requested for 3-4 weeks of time for preparation and she agreed.

The interviews were scheduled on March first week. I had to go through all the four rounds, there was no rejection inbetween. The four rounds were scheduled across two continous days with back to back two interviews on each day. Had a hard time getting the interviews scheduled at right time since the recruiter was repeatedly scheduling interview at 4am IST despite giving her my preferred timings and time zone. Apart from this one single thing, recruiter was super friendly and responsive.

Note: In all the coding rounds, code was written in the live code link shared by Amazon. It is similar to writing code in the docs. All the interviewers were based out of USA/Canada.

Round 1 (Bar Raiser - 1hr - Day 1):
6-7 LP questions in the beginning. The interviewer was continously shooting LP questions and it felt like never ending. At some moment, I felt like I will never have scenarios to answer in the next 3 rounds as this interviewer was fetching everything out of me.
Then came the coding question. It was the most easiest question based on array, had to use stack and the concept of monotonic array. But guess what, I couldn't solve it. I misunderstood the question very slightly based on the example the interviewer gave and kept on trying something else. I was trying to do something with stack, but was not in the right direction since I misunderstood the question. To this day, I am very furious on myself that I dint solve such an easy question. I take interviews at my company very frequently and I myself have asked the same question multiple times to others. I know this is laughable, but I was just switched off during this round and just lost it. Probably 5-6 LP questions had also drained me, but thats not an excuse at all. Just damn it.

Round 2 (Clean Code - 1hr - Day 1):
The interviewer started with LP here as well. Again he shot 4 LP questions.
The coding question here was that he had given a cache interface and I had to implement two variations of it. Variations were described by the interviewer. The key was selecting the right data structure in both variations, which I did. I made a small mistake while coding and the interviewer pointed it out which I fixed later. There was a common piece of code which I had written in both the implementations. I usually dont do such stuffs, but it was not just my day. Interviewer asked me to refactor and I did it. The code with which we ended was a production level code handling all the edge cases and would have run with expected outputs if it was run in IDE.
Apart from those two incidents, this round went smooth and the interviewer was super friendly. This round went pretty well according to me.

Immediately post this round, I realised the question of round 1 and started kicking myself. It was the most painful moment. I could have easily solved the question if I did not misunderstand it. I dont even know why I misunderstood it. I just wished I could time travel and go back to the round 1. Arghhhh.
Anyways, I was done with the two rounds. Only one went well, so had to do well in the two rounds on the next day.
I had not made any notes or practiced anything particularly regarding scenarios/incidents for the LP questions. I have had good learnings and experiences in my past 5 years which I thought would be sufficient to answer these questions on the go. But since the interviewers shot close to 10 LP questions on day 1, I started making notes of other major incidents and learnings in my past work experiences that could be the probable answers to LP questions on day2. The recruiter had suggested me in the initial call to never repeat the same stories for the LP questions since it could come up during the debief. She had also told me I could expect 2-3 LP questions, but ...

Round 3 (System Design - 1hr - Day 2):
This round is always my favourite since I have good experience in system design. As their custom, started with 4-5 LP questions. My previous day notes helped me a lot in answering unique scenarios.
The design question asked was one of the hot system design questions. You would have definitely gone through this if you are preparing for system design. I gave a solid design for this. I had a few out of the box thinking moments during this round, asked some important questions which even the interviewer did not expect. I touched every points - scaling, caching, messaging, database scaling, database locks, consistency, low latency... Interviewer was surprised with the design I gave and was totally satisfied.
Note: I have read Des#gn#ng D#t#-I#te#sive Appl#cat#ons. I keep reading tech blogs from Uber, Nextflix, DoorDash, Spotify, Facebook and so on. I also keep watching tech talks about Distributed Systems and Designs on YT as this is my area of interest. And ofcourse, cant forget the cod#Karl#, G#ur#v S#n and Na#end#a L channels on YT. These things have helped me immensely - not just in interviews, but in my day to day engineering life as well.

Round 4 (DSA - 1hr - Day 2):
6 LP questions again.
Graph-Matrix based LC Medium-Hard. I explained the solution and coded it well within the time. We finished this round pretty quickly.

2 rounds on day 2 went super well, 1 round went well and 1 dint go well on day 1. I was expecting the offer and was on toes for the feedback call.

Feedback call:
The recruiter scheduled the feedback call within 4 days and it was just for 15mins. I started getting doubts, but I still thought it would be a positive response.
I joined the call expecting the good news. But what followed, was totally unexpected. Recruiter told me they could offer me SDE1 or its a no hire. I was shocked but I asked for the detailed feedback. The round 2 went well, atleast it shouldnt have been no hire for sure but the interviewer had other thoughts which I realised during the feedback.
The feedbacks were
Round 3: Strong hire, interviewer was very impressed.
Round 4: Strong hire
Round 1: Strong no hire, I couldnt solve the question.
Round 2: Strong no hire(!), good at coding, solution was perfect but took hints.
Apart from this, I got good feedback for LP in all the rounds and recruiter mentioned all interviewers had good opinion on my past experiences based on LP.
I argued how could round 2 be no hire. It should be hire for sure or in the worst case, it could be on fence but tending to hire. I wasn't expecting that from the round 2 interviewer given that he was so very friendly. The recruiter told me that during the debrief, the round 2 interviewer said I took hints which were not expected and others argued that if candidate could take the hints and continue, he is coachable and can be hired but the interviewer was so adamant and stuck to no hire. It was a 50-50, 2 interviewers with strong hire and 2 with strong no hire. But the system design interviewer was highly impressed and she dragged the discussion a lot to convert it to hire. Bar raiser round is a influencing round and I dint do well in the coding question. So at the end, panel decided to offer SDE1.

I had to reject SDE1, though Bay Area was tempting. It just dint make sense to me. By the time I join the team, I would be having 6years of experience. The feedback also dint make sense to me to be frank. But at the end, I had to blame myself for not solving the easiest question in round 1.


While I lost a great opportunity by messing up round 1, Amazon lost a good engineer because of the round 2 interviewer !

My other interview experiences: https://leetcode.com/discuss/interview-experience?currentPage=1&orderBy=hot&query=&tag=anonymousengineer

Comments (6)