Amazon | SDE1 | Austin | Feb 2020 [Reject]
Anonymous User
10403

Status: 2 YOE Currently Working, MS Business Analytics
Position: SDE 1 at Amazon
Date: 10th Feb, 2020

I had never really applied for SDE roles so I was quite nervous. Nevertheless I went ahead, got a referral from a friend working in the company and got contacted the next day from a recruiter with the Online Assesment.

Online Assessment (1.5 hours coding and had to fill some survey post that)

Questions were direcly out of the Amazon Online Assesment questions list

  1. Top N Competitors/Buzzwords - https://leetcode.com/discuss/interview-question/460127/
  2. Zombie in Matrix - https://leetcode.com/discuss/interview-question/411357/

Got all the testcases passed for the second question, but could only pass 13/21 testcases for the first one. But, after 2 days got a call from the recruiter to schedule dates for the Onsite. I got roughly 3 weeks of prep time for Onsite. One week before the onsite got a prep up call with recruiter to discuss basic questions regarding the interview. She mentioned that there would be 4 rounds. One would be completely behavioral, would be asked no system design but can be asked Object oriented design and all the other rounds will be a mix of behavioral and technical questions.

Final Interviews (4 rounds)

Round 1: (Completely Behavioral)

  • The interviewer was a SDM(Probably the hiring manager). As far as I remember, he started of by asking me some LP questions such as:
    1. Tell me about your yourself (the general icebreaker).
    2. Tell me about a time where you initiated something from your end in a work enviroment and how did you manage time to complete it?
    3. Tell me about a time when there was huge pressure in the work and how did you deliver it ?
  • One more question cant remember. But he drilled down for most the answers I gave. So better be ready to answer follow ups, drill downs to whatever you mention
  • Last 5 minutes got a chance to ask about the team and few questions I had thought about

Round 2:

  • The interviewer appeared to be a senior SDE but was quite friendly and firm to talk to. She had roughly 6 years of experience.

    1. Tell me about yourself
    2. Tell me about a time you could have done better at work
    3. 1 other behavioral question which I dont remember
  • She then quickly jumped to the coding question. https://leetcode.com/problems/concatenated-words

  • It was a small variation in the question instead of getting the concatenated words as output I had to print the output of words which would give me the concatenated word. Luckily, I had seen this question before so I had a good idea of how I should I approach it. First 5 minutes I just dicussed the question with her, talked about edge cases, my approach what I would take. She seemed convinced with the approach. I started coding it while explaining my approach. She was satisfied with my code and whenever I would make small mistakes(like variable name, appending the word to the result) in the code she would ask if thats correct. Lastly, she asked me about time complexity and space complexity. Overall, I felt really positive about this round.

Had a break for 15 minutes before the next 2 rounds

Round 3:

  • The interviewer was a senior SDE with a shadow interviewer who looked like a junior SDE. Both of them seemed very serious from the onset and directly started with the coding question. And rather than explaining the question in depthLets say there are N sensors each producing a sorted stream of data (Temperature and timestamp). They are sorted by timestamp. He asked me to write a function to merge the lists. I quickly realized that it was a variation of this question. https://leetcode.com/problems/merge-k-sorted-lists

  • For the first 6-7 minuted I got really nervous as I didnt know what to do as it was a continous stream of data. So this is where I might have messed it up. I calmed myself down and realized rather than thinking about that first write the logic for merging the lists.
    I qucikly came up with the approach of using heap and then wrote the code for the same explaining my logic of how the algorithm would work. He seemed convinced and then I finally coded it. Finally he was convinced with the logic but he was not convinced about the fact that we could store all the lists as linked lists in memory. He then asked me the time and space complexities for the approach for which he seemed convinced. Then there were only 5 minutes left for the behavioral questions

Round 4:

  • The interviewer was a senior SDE with a shadow interviewer who looked like a SDE 2. Again they started with the coding question first.
    This was a question which I hadnt seen before. https://leetcode.com/problems/restore-ip-addresses

  • So, started asking and clarifying about various possibilites in the question. Here the SDE2 was controlling the interview and was really helpful, he suggested me to write down a helper function to find whether an octet is valid to which I wrote down the code considering various edge cases. Then used this code to write down the code for the original problem using recursion. They seemed convinced with the approach. I was like done with 80% of the code. And then they went to the behavioral part of the interview

  • Tell me about a time you had to dig deep to find the solution for a problem.

  • Tell me about a time you had a conflict with a coworker

Considering that this was my first ever Onsite interview for a SDE role which involved Data Structures and Algo it was a pretty exhausting day. The last time I had done DS and Algo was in my bachelors which was 8 yrs ago and I struggled to code even the most basic questions then. Slowly but surely, I started doing leetcode and started getting a hang of concepts and the patterns. But I still consider myself a very average coder. Nevertheless, I got a reject within 2 business days. Although I dont really know what the reason was, but to retrospect maybe the finishing touches in coding rounds and a little bit of behavioral where I felt like they asked similar questions to which I had to give few same answers. Please comment below areas where you think my interview might have gone bad or areas to improve on

Preparation:

I started with Leetcode somewhere around Jan 2nd week. I did around 110 problems (30 easy, 65 medium, 22 hard) in the 3 weeks specially from Amazon's list and looking at the most frequently asked questions. 90% of the questions I had to look at the answers and tried to understand the approach !! The harsh truth about interviewing is that you really need to be thorough with the problem patterns and grind them, no other way to get a successful job. This is how I prepared for the interview process:

  1. Almost finished the Explore section of Amazon
  2. Sort the question by topics first and then frequency. Practiced questions from topics like Arrays, Strings, Binary Search, Two pointers,Linked List, Trie Trees, Graphs, DFS, BFS, DP etc
  3. Followed popular youtube channels like Abdul Bari, Gaurav Sen, Tushar Roy, Back to Back SWE and few others.
  4. Dan Croitor on Youtube for Amazon Leadership Principles - VERY IMPORTANT FOR AMAZON
  5. Try to remember basic templates of traverals, Like Binary Search, BSTs, DFS, BFS, Backtracking, LinkedLists these come in handy when you see something you havent done before.
  6. Best material for OOD questions and design questions is Grokking the System Desgin/ Object oriented design questions on Educative.io
    Although, its too much material to grasp, if you can pick the right amount of information required then you are good to go.
  7. Used AlogExpert for understanding explanations of various questions

Although the above list might seem a lot, you tend to stumble upon different channels because someone might like one method of teaching whereas someone else might like others.

Some Words of Advice:

I am no one to give advise in this field but here are few words from my end to people who feel bogged down by the process and think that its tough and give up before it even begins. I had some basic coding background but I really sucked at coding before I got the onsite call. Only then, I realized this was an opportunity for me to learn and get strong at something which I am not really good at. Leetcode or rather coding to be precise is all about pracitce. Believe me, the more you do questions from a topic the more you become better at it. Dont fall under the belief that you will somehow magically get the solution looking at the question. There will be times when you feel like giving up, but such phases are there for everyone. You arent alone!! Just keep working towards your end goal. Leetcode/Coding isn't easy for the faint hearted, it's not supposed to be. But if you put in CONSISTENT effort, it eventually starts giving up and you start getting hold of it. Believe me when that happens, you feel really good !

To put it in simple terms, I am still horrible/not there yet at coding, BUT I am thankful to God to have given me this opportunity. Even though it might be just 5%, I am still way better than what I was before. This amazing platform and community of Leetcode continues to inspire and motivate you to keep moving forward. Take inspiration and keep moving ahead ! All the best for your interview prep !

Comments (20)