Status: 4 YoE at small embedded software company
Position: SDE2 at Amazon
Date: June 2020
Recruiter Process:
Put updated resume on LinkedIn, set to looking
Recruiter reached out and we talked
Got link to Online Assessment
Coding Preparation:
40/50 most frequent Amazon questions in last 6 months
90% of https://leetcode.com/explore/interview/card/amazon/
All of Blind's New Year Gift - Curated List of Top 75 LeetCode Questions to Save Your Time
CTCI - Up until the medium/hard questions.( I previously failed an OA when I only used CTCI, I feel like leetcode was a much better use of my time)
Online Assessment:
Don't remember the exact details, but both had to do with sorting/counting strings, so get comfortable with splitting strings up and putting them into containers. Managed to get a somewhat working implementation but did not pass all use cases. I misread a requirement until the last 5 mins, so I just put a comment in saying what I would have done. Was suprised to get a Virtual Onsite.
Leadership Principles preparation:
Looked at the 14 principles and wrote a STAR format answer(about a paragraph each) for every one.
Used Dan Croiter's "22 Questions asked in 94% of amazon interviews" list, and wrote a STAR format answer for each one, trying to relate each answer to at least 2 Leadership Principles.
System Design preparation:
Paid for the infamous G-ing the system design interview. I read through them all, and worked out a handful as if it was an interview.
Read designing data intensive applications. This was actually a very interesting book that is worth a read even without an interview on the line. Goes much more in depth so when I went back to G-ing the system design interview, I had a better idea of what ideas were being implemented.
Interview:
Software Engineer. A couple leadership principle questions were asked, both were from the list of questions I prepared. Coding question was linked list traversal. Leetcode easy/medium. I was a little eager on saying the solutions worked before considering the edge cases.
Engineering manager. Started off with the system design question. In the beginning it felt more like a object oriented design question, but as I came up with answers, it evolved into a system design question. A couple leadership principle questions were asked, both were from the list of questions I prepared.
Software Engineer. I felt like this was the bar raiser. Started with a couple leadership principle questions were asked, both were from the list of questions I prepared. He asked more in depth about these than the others did. Coding question was related to processing logs. I was able to come up with a small scale solution, but I was unable to come up with a solution when it was scaled up. I feel like my solution was a leetcode medium, but the scaled solution could be a leetcode hard.
Engineering manager. A couple leadership principle questions were asked, both were from the list of questions I prepared. Coding question was a graph traversal problem, felt like a leetcode medium.
Offer:
I got a verbal offer after 3 business days. I am currently talking to different teams to decide what the best fit is.
Final Thoughts:
I felt that the time I spent( 3 days) preparing the LP answers was very well worth it, when comparing how much time I spent studying leetcode. I feel that everyone has experiences that can be used to demonstrate the LP's, but having to come up with them on the spot is pretty much impossible. Being able to confidently answer the questions helped me stay sharp for the coding portions as well. All of the coding questions were very fair, nothing was unfair in my opinion. Make sure you know how to do some things, vs knowing about them(and having to look them up). For example, splitting a string based on tokens (I would always look it up and have to spend time figuring it out each time).