Status: Full stack Software engineer with 12 years experience in web based applications.
Position: SDE at Amazon
Location: 101 Main Street, Suite 900, Cambridge, MA 02142
In Jan 2018 I was contacted by Amazon’s Alexa team’s recuiters for an SDE position. The recruiter had told me that based on my performance, I could also be offered a Sr engineer role.
In the same month I had a phone screen.
Phone Screen
Duration: 1 hour
Format: Behavioral + coding
Interview started off with me talking about my resume. Some questions based on that. Followed by some behavioral questions like, tell me some of the technical challenges you faced in your current job and how you got around them. After that there was a coding problem
This was the question asked
Coding problem
write a method that calculates the power set for a supplied set.
A power set is defined as a set of all possible subsets of the original set, including the empty set.
e.g. input [1,2,3] output [ [], [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]].
I solved this in about 20 minutes. The interviewer asked me to explain how it works. I explained to him the decision tree that the code will follow and all the paths it would explore, and in which order.
He seemed happy. With in 3 days the recruiter contacted me and me for my availability for an on site in Boston. I picked a date about 3 weeks ahead to give me enough time to prepare. The recruiter sent me a prep guide for the onsite. She stressed over and over how Amazon’s leadership principles were of paramount importance and I should find a way to relate my experience at my previous work to the Amazon leadership principles.
I read the book The Amazon way by John Rossman cover to cover. This book covers the leadership principles in depth.
So the night before the interview, although prepared, I was super worried. Unfortunately the worry got to me and I barely got 4 hours of sleep that night. No matter how desperately I tried, I couldn’t sleep.
So its next morning and the big day. I drink about 3 cups of coffee to ward of sleep.
I get to the interview site about an hour early. I check in with the security. They check me in and send me off to the waiting area (a few floors above).
I sit there trying to do some meditation while trying to also ward off sleep.
Round 1:
Duration: 45 minutes
Format: Behavioral + system design
The time of the interview comes. One of their developers comes over there and greets me. He asked me if I needed a coffee or use the restroom. I answer yes to both. ( I later realized this was a mistake. By doing so I was taking away some of the time available to solve the problems. The next interview is going to start at the same time regardless.) So after that, we are in the interview room.
First he asks me about my previous experience. Then some of the standard Amazon leadership questions like “Tell me a time when you disagreed with your boss”. And a few more behavioral questions. Then he gives me a design question. He asks me to design the software for securing buildings. This was relevant to one of my previous roles. I explain to him how there would be a remote web application with a central server for the data to be stored. How the data would be pushed to client kiosks. And what features the local kiosk would need to support. Then he asked to add some features and asked me how I would go about it. What would be the security vulnerabilities, the latency issues etc.
This round I thought went pretty well.
Round 2:
Duration: 45 minutes
Format: Behavioral + Coding
As this round ends, the next interviewer was already waiting outside. Again a similar pattern. My previous experience followed by behavioral questions. I was told not to give the same examples that I gave the previous interviewer. After the behavioral interview, he asks me to write code for a robot to traverse an 2x2 array. The array had blocked spots marked with a 1. I had to find all the paths. I first worked on the algorithm. Then I explained to him how I thought it should work. He didnt give me much feedback. He asked me to code it. I started off by writing empty methods with correct names and the correct recursive calls and base cases. Once I had that in place, all I had to do was to write implementations in those methods. He was happy at the end of it. He pointed out one edge case that I didnot consider. The case where the very first block was blocked. Besides that the code was bug free.
This round well too
Round 3:
Duration: 45 minutes
Format: Behavioral + some discussion (no coding) of a technical problem
Now there are two interviews waiting outside. One of them is a Sr level manager and another one is a Sr engineer (recent hire) who was shadowing him. Started with resume and behavioral. The behavioral was kinda intense and he kept digging for more and more details. There was a question “Tell me about a time with a specific example, where you thought you were right, but you were wrong.”. Many of the behavioral questions in this round were hard to answer. I kinda felt the interview taking a downward turn. After the behavioral interview they asked me a question (which I don’t exactly remember now) that involved something to do with quick word look ups. I explained the trie data structure. The interviewer pointed out how that didn’t exactly fit all the requirements of his problem. I agreed, brainstormed a little and finally came up with a solution that involved a modified version of a hashtable. They seemed happy with the final solution.
Round 4:
Duration: 45 minutes
Format: Behavioral + coding
Then they take me to a different floor where another interviewer was waiting for me. The manager refers to him with the wrong name and that immidiately seemed to agitate the interviewer. I was scared this would affect how he interviews me. He starts off in an angry way. (Ive heard there are stress tests at Amazon interviews, this might very well have been one of those). This guy seemed like a very technically strong Senior engineer. I would guess he was the bar raiser. He grills me on behavioral questions. He asked me for a time with a specific example, where I solved a tough problem with a simple solution. I was not able to answer this very well. This seemed to upset him. He proceeds to give me a coding problem. The ubiquitous reverse a linked list problem. This was a problem I had solved before with relative ease. But in my mind he had already rejected me and that panic causes me to make some basic mistakes like not declaring the variables. He got very agitated. He said I don’t know what language you are coding in, but in Java code won’t even compile if you don’t declare variables. I panic even more, he abruptly cuts short the interview. He says he is late for the next round. He tells me to go eat lunch and come back at some particular time.
Lunch Break : 1Hour
I go out for lunch. I try to compose myself. I do some deep breathing. I get a light lunch so that I don’t feel sleepy. I also get more coffee.
**Round 5:
Duration: 45 minutes
Format: Behavioral **
I come back to the interview place. At the designated time another manager comes over and greets me. He was exceptionally nice. This round was entirely behavioral. It almost seemed like he really wanted me to make it. The questions were very Amazon leadership principles oriented. For a few questions I just said, I never faced a situation like that.
This was the last round. The interviewer escorts me out and offers me best of luck.
One week passes by and no response. After a few emails and desperately trying to get a hold of the recruiter, I finally get a call. They tell me that I didn’t make it, but I was welcome to try again next year.
A few months later I find out that one of my coworkers cleared the interview for the same team. (He didnt accept the offer because they were not matching his current compensation.) This is a guy who is very highly regarded at my work place. So it proves whatever way Amazon interviews, it works.