Status: Recent grad (May 2019). Currently Employed.
Experience: < 1 year full time (with some internship experience)
Position: SDE1 at Amazon
Location: Seattle, WA
So far, I've had a great experience with Leetcode and the community. So in this post, I will recollect my overall experience of the interview process with Amazon and try to provide you some meaningful feedback, tips and overall advice for interviewing based on my experiences.
I was first contacted by a recruiter through LinkedIn around mid January, 2020. Within a week or so after being contacted,I had a simple chat with the recruiter over the phone to discuss details about the role. I was also asked some questions about my resume, which if you know what you have on your resume (or LinkedIn page), you should not need to prepare for this stage at all. Or at least have your resume at hand. I scheduled a phone screening interview two weeks later (around mid Feburary). No online assesment.
Phone Screen Interview:
I was told by my recruiter before hand that this interview would be about an hour long. 25 min for behavioral and 35 min for technical questions. However, it was all technical questions. The questions included the following:
My answers and thoughts: (respectively to the questions above)
Result: About two days later I heard back that I made it to the onsite round. Honestly I was quite surprised since I did not solve all questions and felt I could've done better. But two weeks later, had the onsite!
Onsite Round:
To begin with, some miscommunication happened between the reception, the recruiter coordinator (someone that walks you to your interview room) and the interviewer, such that they did not look for me at the lobby until about 15 min past my first interview.
Interview 1:
This one was with two interviewers. One was shadowing the other and worked on team I was interviewing for. They were pretty friendly and easy to talk with.
Take away: I felt pretty good about this one. When answering the behavioral questions I felt I gave detailed explanations and constructed my story well using the STAR method. For the techinical question, I came up with a solution although I felt it was not optimal. When asked about the time complexity, I felt i had it right and admitted my algorithm was not optimal.
Interview 2:
This one was with the Manager of the team I was interviewing for and was strictly behavioral. These are some of the questions I remember being asked:
Take away: I felt good about this interview. I answered most behavioral questions well and some which I did not have a story for, I told the interviewer I could not think of a time where I'd been in such situation and that I was not about to make up a story. He laughed a little and appreciated that comment. When it was my turn to ask questions, I started asking really specific questions about the team, the product some of the challenges the team is facing and asked questions that were more related to the interviewer (i.e what's the biggest challenged you've faced within the last year or so?). All in all, the interview ended with good energy and a smile.
Interview 3:
This one was with the bar raiser.
Take away: I felt good about the behavioral portion of this one. However, I struggled to think of a good "separator" to introduce to my serialzied string to mark the end of a word. The interviewer actually ended giving some hints such as using escape sequences but tbh, my brain started to blank on this one :(. BUT... I wrote a solution, was it 100% correct? Probably not. I feel I had a bug in there or two but did not have time to step through an example.
Interview 4: (With two interviewers)
This one.... omg...Honestly, if I left the room in the middle of this interview, it probably would've looked better than the way I performed in it. I really do not know what happened to me.
So, it started well. I was asked to talk about a current project I am working on and another one I had worked on. They started asking really specific questions about the past project but I did a good job at answering their questions. I could tell because of the smile and interest they had.
Then, it all went down the drain... I was asked to talk about a time I had to solve a difficult problem. And to be honest at this point, I don't know if I was tired, hungry or what but I just could not think of one right away. Eventually, I thought of a story to talk about but.... it was about a project I did almost a year ago and could not remember all the details. I realized halfway through I started mixing up stories too :'('''. So it looked like I was either making up stories or did not know wth I was talking about. But I swear I was trying to tell a good story. This threw me off. Then:
Technical question: https://leetcode.com/problems/maximal-square/
I completely froze on this. I remember I had seen it before on LC but I did not solve it. So I proceeded to try to solve this but each solution I would try to word and explain just would not make sense. My interviewers then said "just go ahead and code the brute force solution" as if... they thought I had memorized or knew the brute force solution? Nah y'all. I don't try to memorize solutions on LC. If i solve a problem it'll be my own. Long story short. I did not even code the brute force way and all worded solutions I tried to come up with were trashhhhh. After the interview ended I actually said to my interviewers "I'm sorry for such a terrible interview" lmaooo
Some mistakes in this interviews overall:
Final take aways, advice and tips for Amazon interviews:
Well, the one thing I came to understand about Amazon interviews is that unlike other companies, you really really need to prepare to answer all of the behevioral questions related to the 14 LPs really well. I say this because compared to other interviews I had, I felt the behavioral portions were a bit more intense. So, if you are planning on applying or interviewing with Amazon, I suggest that you definitely come up with as many stories as possible. About two stories for each LP. (excluding maybe Hire and Develop the best if you are applying for SDE1). It is definitely okay to repeat stories but the more different stories you give, the better. This shows you've got a diverse set of experiences. However, I definitely suggest reapeating a story rather than telling one you vaguely remember like I did lol. So, prepare for the behavioral portions just as much as the technical portion! Here are some links to help you with behavioral stuff:
https://interviewsteps.com/blogs/news/amazon-leadership-principles-interview
https://interviewgenie.com/blog-1/category/Amazon+interviews
https://medium.com/@scarletinked/are-you-the-leader-were-looking-for-interviewing-at-amazon-8301d787815d
(this last link was my favorite)
A little bit more about me, past interviews and preparation:
As mentioned, I graduated from college just last May. This would mark my 3rd interview with a big tech company since I graduated college. The others were Google and Microsoft. For these two, they happened around this same time last year and was the very frst time I was ever exposed to this system of interviewing. Really, before these 2 I did not prepare on leetcode or any platform like it. I seriously do not know how I got those interviews (well maybe internship experience and well written resume). But that opened my eyes to a world I did not know and to the interviewing skills I did not have. I failed the Google interview pretty bad on the technical portion. I went to the onsite for Microsoft and failed that one pretty bad too. (Y'all, I couldn't even traverse a BST LMAOOO. I know this should be taught in school but trust me, not at my school. My algorithms prof. loved to end class early everyday and at the itme I did not know the importance of that class to take it upon myself to learn the material).
But these two experiences made me realize that I really had to brush up on these type of coding problems. So, by mid August of 2019 I started LeetCoding casually since I already had a job. Then, I met someone who offered to refer me in Google. So from mid October to early Decemeber I went hard on LeetCode (as much as I could since I work full time) solved about 100 easy questions, 40 medium and like 5 hard. After this much practice I could see improvement. But I did not get the referral to Google lol.
I definitely noticed some improvement on this interview on both the behavioral and techinical portions. However, if you are anything like me and was first exposed to programming your freshman year of college and haven't mastered these type of skills yet, then the only way to pass these coding interviews is to simply go hard on practicing and solving these type of problems. Literally, practice everyday. Solve 2-5 daily and continue learning. There is no other way around it. Some say that some times it's just luck but... I will say what a senior software engineer from Brazil told me "I don't believe in luck. There is no luck. It is all a matter of opportunity meeting with preparation at the right time."
And DO NOT BE AFRAID TO FAIL. When you fail, you are able to extract lessons from that experience, grow and come back around next time more experienced and better prepared than before! Learn, grow, and learn some more! Happy LeetCoding and keep grinding my fellow nerds!