Amazon SDE-1 FTC - Interview Experience || Offer || Gurugram
Summary
I successfully navigated through multiple rigorous interview rounds for an SDE-1 FTC role at Amazon in Gurugram, which primarily focused on Data Structures & Algorithms and behavioral aspects. Despite some challenges in coding speed and explanation, I ultimately received an offer for the position.
Full Experience
My journey to an Amazon SDE-1 FTC offer in Gurugram began unexpectedly. I had attempted Amazon OAs multiple times without success, even after performing well. However, in early July, HR contacted me, shortlisting my profile for an SDE-FTC role, and I decided to proceed.
Round 1 (DSA + LP) - 75 minutes
This round was conducted by an SDE-2, shadowed by an SDE-1. The first 15 minutes focused on leadership principles (LP) style questions based on my experience. After that, we moved to DSA.
- Question 1: Policemen and Thief (GFG)
I started by explaining the brute force approach, then transitioned to the optimized one, which satisfied the interviewer. The follow-up question was intriguing: "What if a policeman can catch multiple thieves? How would you approach it?" I explained my solution conceptually, and he seemed content. - Question 2: Online Stock Span (LeetCode)
I discussed how a monotonic stack would be the ideal approach for this problem. The interviewer then asked me to provide a test case where more than one element would be in the stack, especially since I mentioned an amortized O(1) time complexity. I presented a test case and dry-ran my solution, which again seemed to satisfy him.
Round 2 (DSA) - 60 minutes
The interviewer immediately presented DSA problems.
- Problem 1: Bottom View of Binary Tree
I had solved this problem before, but I found it challenging to explain my approach clearly to the interviewer. After some back and forth, he asked me to start coding. While writing the code, I tried my best to explain my logic. He then asked some cross-questions, including if a map could be improved. I suggested using an unordered map for better time complexity. With time running out, I quickly made the necessary changes, and the interviewer seemed satisfied. - Problem 2: Move Zeroes (LeetCode)
This problem was relatively simple. I quickly explained my approach and implemented the code in about 10 minutes, making this round overall decent despite my initial struggles with Problem 1.
Timeline & HM Round Scheduling
After Round 2, there was a period of silence. I tried emailing HR, but received no response, leading me to believe I was ghosted. Then, unexpectedly on July 24th, another HR called to schedule my Hiring Manager (HM) round. The interview was initially set for July 30th, but I had to postpone it due to a last-minute invite issue.
Round 3 (HM Round) - August 6th
This round was with a manager with over 10 years of experience. After a brief introduction, he gave me a coding question.
- Problem 1: Max Area of Island (LeetCode) with 8-direction modification
The core problem was finding the max area of an island, but with a twist: travel in all 8 directions was required. He suggested I first implement the 4-direction solution. I was familiar with this problem and proposed either DFS or BFS. I opted for a BFS solution, but the implementation took a significant amount of time—around 40 minutes. This left no time for the 8-direction follow-up. I felt quite demotivated, believing I had messed up.
The last 15 minutes were for behavioral questions. Although I had prepared extensively, I didn't feel I performed well. After the interview, we had a good discussion about AI and software engineering. The HM mentioned he had given his feedback, and HR would contact me.
The Offer
Another period of silence followed, and I assumed my chances were slim after the HM round. On August 18th, I decided to email my recruiter. On the very same day, I received a call from the recruiter, delivering the "golden words": "Congratulations! We are extending you an offer!"
Interview Questions (4)
Online Stock Span
The interviewer then presented a problem based on a monotonic stack. I explained how a monotonic stack would be suitable for solving this problem, which is equivalent to LeetCode's 'Online Stock Span' problem. I also provided a test case to demonstrate the amortized O(1) time complexity when more than one element is in the stack and dry-ran my solution.
Bottom View of Binary Tree
The interviewer gave me the 'Bottom View of Binary Tree' problem. Although I had solved it before, I initially struggled to clearly explain my approach. After some back and forth, the interviewer asked me to start coding. While writing the code, I continued to explain my solution. The interviewer then asked cross-questions, specifically asking if a 'map' could be improved. I suggested using an 'unordered map' to reduce time complexity and made the changes quickly as time was running out.
Move Zeroes
A relatively simple problem where I needed to move all zeroes to the end of an array while maintaining the relative order of the non-zero elements, without making a copy of the array. This is equivalent to LeetCode's 'Move Zeroes' problem.
Max Area of Island (8 Directions)
The coding question was 'Max Area of Island' (LeetCode). The interviewer added a small change: we needed to travel in all 8 directions instead of the standard 4. They suggested starting with the 4-direction solution first. I knew the problem well and explained that it could be solved using either DFS or BFS. I proceeded with a BFS solution, but the implementation took around 40 minutes, leaving no time for the 8-direction follow-up.
Preparation Tips
My preparation involved rigorously practicing Data Structures & Algorithms, including solving problems on platforms like LeetCode and GeeksForGeeks. I also dedicated considerable time to preparing for leadership principles and behavioral questions, ensuring I had stories ready to demonstrate Amazon's core values.