Backend Engineer | Zenskar
JP Morgan Chase | SDE 3 | YOE 3.4
Microsoft SDE - 2 | Interview Experience | Status Pending
eBay || SWE3 Interview Experience || Bangalore
Bloomberg | Interview Experience | Senior Software Engineer | NYC | Nov 2025
Amazon | SDE-2 | Offer accepted 2022
Summary
I successfully interviewed at Amazon multiple times for an SDE-2 position and ultimately accepted an offer in 2022. This post details the diverse range of coding and design questions I encountered across different interview rounds.
Full Experience
I had the opportunity to interview at Amazon on several occasions, which eventually led to me receiving and accepting an offer for an SDE-2 role in 2022. To help others, I've compiled a comprehensive list of the questions I faced during these processes, grouping them by the specific rounds they appeared in.
Interview Questions (13)
Given a grid representing a field of oranges, where 0 represents an empty cell, 1 represents a fresh orange, and 2 represents a rotten orange. Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten. Determine the minimum number of minutes that must elapse until no fresh oranges remain. If it's impossible for all fresh oranges to rot, return -1.
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security systems connected and it will automatically contact the police if two adjacent houses were broken into on the same night. Given an integer array nums representing the amount of money in each house, return the maximum amount of money you can rob tonight without alerting the police.
You are given an integer array prices where prices[i] is the price of a given stock on the ith day. On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day. Find the maximum profit you can achieve.
In the "Can I Win" game, two players take turns picking numbers from a common pool of integers ranging from 1 to maxChoosableInteger. The first player to accumulate a total sum of numbers that is equal to or greater than desiredTotal wins. Once a number is picked, it cannot be used again. Determine if the first player can win, assuming both players play optimally.
Design a parking lot system that supports multiple types of vehicles (e.g., motorcycles, cars, buses) and efficiently allocates the nearest empty parking slot. Consider using a data structure like a min-heap to optimize the slot allocation process.
Design the low-level architecture for a platform similar to StackOverflow. Your design should cover core entities such as users, questions (posts), answers, comments, tags, and votes. Detail the database schema (tables, relationships) and define the necessary APIs for key functionalities like posting a question, answering, commenting, and voting.
Design a high-level system for a locker delivery service, similar to Amazon Lockers. The design should focus on key aspects such as managing the availability of individual locker units, ensuring data consistency during the booking and reservation process, and generating secure, unique one-time passwords (OTPs) for customers to access their assigned lockers.
Design a scalable URL shortener service. This system should take a long URL as input and return a short, unique URL. Consider how to generate short codes, handle redirects, ensure high availability, and manage potential collisions or expired URLs. Discuss database choices, distributed systems considerations, and API design.
Preparation Tips
I diligently prepared by practicing a wide array of LeetCode problems and diving deep into system design concepts. For those interested in understanding my full preparation strategy and the resources I utilized, you can find a more detailed account in my Google Preparation Blog.