Status: Software Engineer at ecommerce startup, BS in Math
Experience: 3 years
Position: SDE1 at Amazon
Location: San Diego
Date: June 2020
Before Interview
I was approached by a recruiter on LinkedIn. After a phone call, she sent me the online assesment.
Online Assessment
Virtual On-Site
Round 1
- 20 mins LP questions
- 35 mins coding
- 5 mins to ask questions
- Medium question that required basic OOP similar to top K elements in stream
- This was probably my worst round, I was able to articulate solution but not translate well to code
Round 2
- 20 mins LP questions
- 35 mins coding
- 5 mins to ask questions
- Medium question similar to merge intervals with a twist
- Decent round, but not perfect. Hardest LP round because I was asked very specific and technical questions.
Round 3
- 20 mins LP questions
- 30 mins system design
- 10 mins to ask questions
- Strong round, I felt like I answered LP questions well and I was comfortable with the problem
Round 4
- 20 mins LP questions
- 35 mins coding
- 5 mins to ask questions
- Medium question that involved OOP and data structures in an Amazon specific domain
- This was probably my best round
Round 5
- 50 mins LP questions
- 10 mins to ask questions
- Strong round
Resources:
- Leetcode 118: Easy 40, Medium 60, Hard 18
- I really like Leetcode Pro and would recommend going over your target company's interview problems if available
- I found the g/r/o/k/k/i/n/g system design interview guide was the perfect crash course for system design with lots of examples that showcase the level of detail expected for these problems
- I also found the g/r/o/k/k/i/n/g coding interview guide really useful in understanding many popular patterns for interview questions
- Key insight: Understand those patterns and relate them to problems you haven't seen before
Closing thoughts:
- Do not underestimate the importance of LP's! While it's boring and formulaic, I highly recommend using the STAR (situation, task, action, result) approach. It's your time to shine. Focus on what you did and why it mattered. I came up with 2 scenarios per LP. This will help you for interviewing at any company.
- Do not jump into coding. Develop a working solution in your head or with pseudocode in comments. Look for approval from your interviewer before coding the final solution.
- Talk and code slowly, but surely. This will keep you from rambling (I struggle with this) and save you time in the long run by catching missed edge cases and mistakes.
- Practice coding solutions under time pressure while explaining your thoughts outloud. Do not look at the difficulty of problems beforehand. Practice talking about time and space complexities.
- If you're absolutely stumped, take a breath, step back, and try to think about how you can optimize a brute force solution. If you have a good interviewer they may helpfully offer a hint.
- Run through test cases for your solution if you have time.
As someone without a CS degree, working at a top tech company seemed like a pipe dream a few years ago. Set goals, and then let your discipline and willpower guide you to achieving them. It's that simple. You only need to get lucky once.