Amazon | SDE1 | Seattle | Feb 2020 [Reject]
Anonymous User
3860

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:

  • What is concurrency in java?
  • What is constructor chaining in Java?
  • Given a stream of arrays of strings, all of which are anagrams of each other (the strings). You want to store these in a data structure such that, if given a string X (to some function) you want to return whether you have an array of anagrams that correspond to string X.
  • Two sum
  • Write a function that has a set of allowable mathematical operations: [+,-,/] and takes an integer X. Return the minimum number of operations needed to be performed on X to get it down to equal 1.

My answers and thoughts: (respectively to the questions above)

  • Two or more processes executing at the same time. Went on a little bit to explain what multi-threading is, some things to look out for and its advantages.
  • I was a bit confused by this one at first, but I used common sense and tried to derive meaning from the term to get at what he was talking about. I said I had not heard of "constructor chaining" but I had an idea of what that may be and I proceeded to write up an example of what my idea was. Luckily, constructor chaining is the same thing as "constructor overloading" as I know it in the C# world.
  • For this i said you could store the stream of arrays into a Hashmap. Where the key would be the sum of indeces that each letter of a word has in the alphabet (i.e "abc" = 0+1+2). This way, you will always have a unique key that maps to an array of anagrams. It does not matter the order of the letters in the word, their sum of letter indeces would always be the same. The interviewer said he was thinking more of sorting any word in the array in alphabetical order and using that ordering as the key. But was satisfied with my solution.
  • two sum: Gave the brute force way and interviewer said it was okay since he wanted to give me time for last question.
  • Las question... Did not quite solve it but I had a good idea: determine if the initial value of integer X is odd or even. If odd, add or subrtract 1 ( to make it even) and then just perform as many division operations (by 2) to get it down to to equal 1. Seems logical but will not always return the least number of operations.

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.

  • Tell me about yourself
  • Tell me about a time you took ownership of a project
  • Some more behavioral questions I can't quite remember
  • Technical question: Given a dictionary and a string, check if any permutation of the string is present in the dictionary.

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:

  • Tell me about yourself
  • Have you ever pushed back against a decision from a hire up for better results? Why?
  • ... I can't remember the others but I will provide a link questions that are frequently 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.

  • Some behavioral questions
  • Questions about things I worked on and some specific details about the projects
  • Technical Question: Write two functions, one to serialize an array of strings into a single string and the other one to deserialize it. Note that each string in the array can contains ANY ASCII character.

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:

  • Although for the most part I felt good about answering the behavioral questions, there was a couple of times the interviewer would ask me "what was the result? What did you learn? What did you take from this?" Meaning that I was forgetting to tell the most important part!! How did that situation make me or break me, what was the final outcome!
  • For the technical questions, I felt I could have asked a bit more clarifying questions, ask about edge cases or details about the overall problem before starting to solve. And probably solving a problem faster such that I'd get to test it with some input or step through the code thoroughly to verify that it works.

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!

Comments (8)