Amazon Virtual Interviews | SDE 1 | November 2020 [Accept]
Anonymous User
5808

Happy Thanksgiving everyone. I would like to share my interview experience with amazon and my preparation methods. I will not be sharing the questions and team as I respect the NDA.

My Background

  1. 2 Years of experience with a startup as a backend and devops engineer.
  2. Good with technical knowledge but bad in communication, so I needed to make sure I improve them for my interview. Last year I gave an interview with amazon but was rejected, even tho I felt I did well in technical.
  3. I have solved 350+ questions on leetcode (180+ Easy, 175+ Medium, 5 Hard). I solved most of them when I was in university but lost touch with leetcode when I started my current job. But one week of practice before my OA was enough to get back on track.

My previous interview experience and mistake

  1. Had four interviews with 2 LP and one technical, just similar to other experiences you see on leetcode. I underestimated the importance of LP so I did not prepare for that and was doing Data structure and Algorithms. Unfortunately, that was a mistake, because speaking about your experiences in 4 interviews is tiring, draining, and structuring them in a way that the interviewer understands is pretty difficult. So this time I made sure not to do the same mistake.

My preparation for technical

  1. LinkedList + Trees
  2. BFS + DFS
  3. Little bit of Dynamic Programming.
  4. Other amazon tagged questions.
  5. System Design:
    1. Ask questions about users (who are end-users, how they are going the use it).
    2. Ask questions about scaling (how many requests are we expecting and traffic).
    3. Ask questions about performance (what is the expected latency, and what kind of performance is expected, these helps you to decide databases).
    4. Understand the pros and cons of databases (Not going to lie, I kind of screwed this part which caused my SD interview to be a total flop).
    5. Start with basic like Front-end, Back-end, Database. What kind of request will you send. Then dive deep into all fancy stuff such as load balancer, technology, and other sharding of databases and making it HA. My guess is you won't have time to discuss everything.
    6. Make sure to explain your decision of WHY you are selecting this path for your design.

My preparation for LP

  1. I made sure to write down 8-10 experiences in STAR (Situation, Task, Action, Result) method, which helped me to formalize my thoughts and make sure I don't miss out on any important points.
  2. Also once I had them written down it helps me to practice my pace of speaking and follow the structure (which I failed to do in my last interview). Also I use to practice the speaking part every day as I wanted my communication to be clear and precise.

My interview experience

  1. Interview 1: 2LP + 1 technical --> Because I practiced speaking I was easily able to share my experience and answer all the follow-up. For technical I was able to solve it as I encountered the same problem on leetcode.
  2. Interview 2: 2LP + 1 technical --> LP went very well and was able to solve technical. The interviewer was happy and said my solution was unique and no one did it my way. Well, I took that as a compliment.
  3. Interview 2: 2LP + 1 technical --> LP was lit. Had an issue with technical, needed guidance and help from the Interviewer, was able to code it as coding was easy peezy.
  4. Interview 2: 2LP + 1 System Design --> This interview went bad and was unexpected. My LP was cut in between and I was unable to explain the whole situation. Because of this my LP was very bad, also because of this I did not perform well in system design and made many mistakes and one of them was databases and for a moment I was unable to answer anything I was asked. Should have expected the unexpected.

My two cents

  1. Write down your experiences as they help you to formalize your thoughts, and practice them. I feel practicing them makes you comfortable during the interview. Practice with someone and ask them to ask you follow up questions and take their feedback to improve your answers. You are expected to speak a lot, A LOT, so it is better to practice that speaking and maintaining that calmness and speed. Also, practicing will help you not running out of breath.
  2. Practising enough leetcode is sufficient, no need to spend a whole month doing leetcode, you don't want to burnout.
  3. For system design ask questions, I feel that don't follow youtube system design videos as they give direct answers and system architecture and that won't be helpful to you (at least it was not helpful to me). You are not working with the interviewer to get the answer. But hey I sucked at SD so take this opinion with a grain of salt.
  4. Have lots of water to drink, as you will be speaking a lot, A LOT, hydrating yourself is important. Drink in the middle of the interview if you feel the need to. (This is the most important thing). You don't want your head to pain because of lack of water and speaking too much. (At least my head pains when I speak too much).

Also a big thanks to the leetcode community. All the best.

Comments (8)