Got the L4 New Grad SDE Offer at Amazon – Here's How I Prepared
I recently got an offer for a new grad SDE (L4) position at Amazon, and I wanted to share my journey — from knowing nothing about DSA to cracking the interviews. Hopefully, this helps someone who's starting from scratch too.
Phase 1: Learning the Fundamentals (February)
-
In February, I had no clue about data structures and algorithms.
-
To build a strong foundation, I completed:
- Stanford’s Algorithm Specialization (Courses 1, 2, and 3; 4 was not necessary):
Coursera Link
Pros:
- Great for understanding the theory behind common algorithms.
Cons:
- Possibly overkill for interviews, but I preferred overpreparing rather than missing key concepts.
Phase 2: Problem Solving (April)
- Once I had the theory down, I started solving LeetCode problems.
- I often used AI to help understand solutions when I got stuck, but never just copy-pasted answers.
- I always made sure I understood the approach.
My path:
- Started with the LeetCode 75 Study Plan
- Then moved on to NeetCode 150, solving around 70 problems
Note: NeetCode is one of the best resources for DSA interview prep. Use it strategically.
Phase 3: Online Assessment + Work Simulation (Mid-May)
- Got an email saying I had 5 days to complete the OA.
Problem 1:
- Count the number of palindromes in a string (or something similar).
- My solution didn’t pass all test cases — not because it was wrong, but because it was too slow.
Problem 2:
- Required a greedy + heap approach.
- I passed all the test cases.
Work Simulation:
- Was supposed to be open for 5 days. After one day, I got another email saying the next day was the last.
- Since it was Saturday and support wasn’t available, I completed it immediately.
Phase 4: First Technical Interview (30 Minutes)
Questions:
-
Anagram Checker
- Determine if two strings are anagrams.
- The interviewer asked me not to use Python’s built-in functions.
- Still a fairly easy problem.
-
Stream of Words
- For each incoming word, return the last seen anagram (if any), or the word itself.
- I used the same logic from the previous problem and a hash map with sorted keys.
I passed and was invited to the final round: three back-to-back 1-hour interviews.
Phase 5: Final Interviews (3 x 1hr on the Same Day)
Behavioral Preparation (Leadership Principles)
- Wrote five STAR-format stories that covered most of Amazon’s Leadership Principles.
- Practiced behavioral answers using questions generated by ChatGPT.
- Rehearsed with my girlfriend.
Technical Interviews
Interview 1:
-
Deepest Level in a Tree
- Given a tree (not necessarily binary), return its maximum depth.
- I used a BFS approach.
-
Lowest Common Ancestor
- Find the LCA of two nodes in a tree where each node has a pointer to its parent.
- I solved this by recursively propagating upward.
Interview 2:
- This round was system design/database oriented, which caught me off guard.
Question:
- Design a system to track how many people are in the office at any given time.
Follow-ups:
- Design queries to return the number of people at a specific timestamp.
- Find the maximum number of people during a time interval.
I didn’t perform well here due to no experience in OOD or DB design. The interviewer wasn’t very kind and laughed a bit when I got stuck. I stayed focused and moved on.
Interview 3:
Initial Approach:
- Hardcoded all checks using logical conditions.
Refactored Approach:
- Created an abstract
Rule class
- Defined each rule as a subclass
- Stored rules in a set and validated them using a loop
(more scalable and cleaner)
Final Thoughts
-
You don’t need to solve all 150 NeetCode problems.
Understanding patterns and building intuition is far more important.
-
Use AI to learn, not to cheat.
Your understanding matters more than the number of problems you “complete.”
-
Some interviewers emphasize how your algorithm works, not just correctness.
For example, in the BFS problem, I was asked:
- Why BFS uses a queue
- The advantages and disadvantages of BFS and DFS
- When I would use each approach