Amazon SDE 2 (Rejected)
Summary
I recently interviewed for an SDE 2 role at Amazon and, despite a strong effort including extensive preparation, I was ultimately rejected. The process involved an OA round followed by four challenging final rounds focusing on data structures & algorithms, object-oriented design, system design, and behavioral questions.
Full Experience
I recently completed my second interview attempt for the SDE 2 position at Amazon. I applied online with a referral, and I suspect changing my email was key to getting noticed, as I had faced initial denials with my old one. It could be a coincidence, but I don't think so.
The interview process kicked off with an Online Assessment, which included familiar problems like 'Number of Islands' and 'Redundant Connections.' I found these relatively straightforward as I had practiced them before.
The final rounds were comprehensive, each starting with 2-3 behavioral questions assessing Amazon's leadership principles. These questions are generally well-documented online, and a quick search can provide examples.
My first technical round involved a coding challenge: given a binary tree, find a subtree that sums up to a specific target. I had the right approach but couldn't quite finish within the time limit. I think this was a significant factor in my eventual rejection.
The second round was an Object-Oriented Design (OOD) question. It was a bit vague, and I had some difficulty understanding the precise requirements due to their English, but the core task was to design a warehouse class with constraints, such that it could only store certain products. I built a system with Product, Rules, and Warehouse classes, incorporating polymorphism and enums. The interviewers, however, felt my solution was too complex and also noted a missed requirement: providing a reason when a product couldn't be stored, which I believe I could have easily integrated into my existing design.
My third round was with the hiring manager and focused on system design. I was quite nervous given my pure math background, and I don't consider my system design knowledge super strong, but I felt I completely crushed it. I had solid answers for every additional question and follow-up. The problem was to design a service that would tell a user whether they won or lost a game, with the specific constraint that the user request involved no reads or writes within the service itself.
The fourth and final round was another coding challenge. I was given a string like 'This sweater cost $40 dollars.' and asked to apply a 20% discount to the price and return the updated string, e.g., 'This sweater cost $32 dollars.' I felt very confident with my solution and successfully handled all follow-up questions.
Overall, I dedicated about three months, studying 4-8 hours daily, to prepare for this interview. Despite my significant effort and previous attempts at other tech giants, breaking into the industry remains a difficult path. While I felt I did well in at least two of the four final rounds, I received a rejection call from my recruiter. They mentioned I was strongly considered and close to reaching the bar, suggesting I re-interview in 3-6 months. I'm not surprised, as I believe you need to nail at least 3 out of 4 rounds to secure an offer. It was a good learning experience, and I'm ready to try again.
Interview Questions (6)
Given a 2D binary grid, which represents a map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically.
Given a graph (for example, a set of edges that form a tree with one additional edge), find the redundant connection—the edge that can be removed so that the resulting graph is a tree.
Given a binary tree and a target sum, determine if there exists a subtree whose nodes sum up to the target. I had the right idea with what my approach was but I could not finish by the time the interview was over.
Design an Object-Oriented system for a warehouse that needs to store various products. The core constraint is that each specific warehouse can only store certain types of products. The design should facilitate adding products to a warehouse, checking if a product can be stored, and potentially returning a reason if a product cannot be stored. I had a hard time understanding their English but essentially it was this.
Design a service that processes a user's request and returns a boolean indicating whether the user won or lost a game. A critical constraint was that the service itself would handle 'no reads or writes' to the request, implying a stateless prediction or reliance on external data sources for user game state.
Given an input string, for example, 'This sweater cost $40 dollars.', identify any monetary value, apply a specified discount (e.g., 20%), and then return the modified string with the updated price, such as 'This sweater cost $32 dollars.'. There were also additional oral follow-up questions.
Preparation Tips
I prepared extensively for this interview, dedicating approximately three months to studying, averaging 4-8 hours per day. My preparation focused on a wide range of topics to strengthen my skills in data structures, algorithms, object-oriented design, and system design, especially given my background transition into tech. I also made sure to practice behavioral questions related to Amazon's leadership principles.