Amazon | SDE1 | India | April 2022 [Reject]
Summary
I applied for an SDE-1 role at Amazon in India as a new graduate. After completing the online assessment and two technical interview rounds, I was ultimately rejected for the position.
Full Experience
I am a 2022 Computer Science graduate from a Tier 3 college, and I have dedicated over a year to practicing Data Structures and Algorithms.
I initially applied for a 6-month internship role in October 2021, successfully clearing the online assessment. However, Amazon later considered me for a full-time SDE-1 role instead.
Online Assessment
The online assessment consisted of two medium-level DSA problems. While I can't recall the exact questions, one was based on a priority queue, and the other involved union-find. I cleared this round.
Round 1 (February 2022)
This round started with introductions. The interviewer then presented two DSA questions, expecting production-level code. The first question was a rephrased version of "Next Greater Element I" (LeetCode), which I identified and solved. The second question involved level order traversal of a tree, with a follow-up on zig-zag traversal of a binary tree. The interviewer also asked some technical questions related to trees. This round felt quite easy, and the interviewer was very supportive.
After clearing Round 1, I faced a delay in scheduling the next interview. Despite multiple follow-up emails, I received the link for Round 2 only after a month.
Round 2 (April 2022)
This round, scheduled a month later, also focused on two DSA questions. The first was "Check If Array Pairs Are Divisible by k" (LeetCode). I found an optimized solution for positive integers, but I struggled to modify it to handle negative numbers as well, as requested by the interviewer.
The second question was "Maximum Profit in Job Scheduling" (LeetCode Hard). Initially, I thought it was a greedy problem, but with hints from the interviewer, I realized it required a dynamic programming approach. I was able to code a DP solution using recursion with memoization, spending about 35 minutes on it. When asked to optimize it further, I couldn't. I later discovered it could be optimized using binary search combined with DP. This round was particularly challenging for me.
Following the DSA questions, the interviewer asked several technical questions:
- How does HashMap work in Java?
- What are different greedy algorithms?
- Difference between Prim's and Kruskal's algorithm?
A few behavioral questions were also asked. After Round 2, I had a strong feeling I would be rejected, but I still held out hope for Round 3. I sent multiple follow-up emails due to not receiving a rejection mail. It's been over two months since Round 2, and I've now accepted that I was rejected/ghosted. I plan to reapply after the 6-month cool-down period and continue practicing on LeetCode.
Interview Questions (7)
I was asked to implement level order traversal of a tree, and as a follow-up, to implement zig-zag traversal of a binary tree.
This question was 'Maximum Profit in Job Scheduling'. I initially considered a greedy approach, but with subtle hints from the interviewer, I realized it was a dynamic programming problem. I proceeded to code a recursive DP solution with memoization. I spent around 35 minutes on this, but when asked if I could optimize it further, I was unable to do so during the interview. I later discovered that the problem could be optimized using a combination of binary search and dynamic programming.
I was asked to explain the internal working mechanism of a HashMap in Java.
I was asked to list and briefly describe different greedy algorithms.
I was asked to articulate the key differences between Prim's algorithm and Kruskal's algorithm, both used for finding Minimum Spanning Trees.
Preparation Tips
My preparation involved practicing Data Structures and Algorithms for over a year. However, I learned the importance of comprehensive preparation the hard way. I advise future candidates to prepare all crucial topics like graphs, trees, and dynamic programming thoroughly, even the hard ones, and not to neglect any area thinking it won't be asked. Always prepare for the worst-case scenario.
It's also crucial to communicate your thought process clearly with the interviewer. This allows them to guide you effectively if you get stuck.