Backend work at Amazon sits behind a store where shoppers search, add to cart and check out at all hours, and behind warehouses that must ship what was promised. Prepare to talk about services that stay up during sale peaks, stock that is never sold twice, calls between many services that can each fail, and times you owned a service in production and fixed it when it broke. What to show here: ownership of services that must hold during peak shopping. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.
How Amazon hires, in its own words, and its questions for every job →
“I would keep a record per item and warehouse with available and reserved counts. A reserve call moves units from available to reserved in one conditional update, so it fails cleanly when nothing is left. Each reservation has its own row with an expiry time. Confirm turns it into an order line. Release, or a background sweep of expired rows, moves the units back. For very popular items I would split the stock into smaller buckets to avoid every request fighting over one row. The product page can read a slightly old count, but checkout always uses the true one.”
Weak answers keep a single stock number per item and never say how an abandoned checkout gives units back.
“A time-out only means the reply did not arrive. The order may already exist. So the app creates a unique key when the shopper presses the button and sends the same key on every retry. On the server, I write the key in the same transaction that creates the order, with a unique constraint. If the key is already there, I return the stored order instead of making a new one. If two copies arrive together, one wins the constraint and the other waits or reads the result. I would keep keys for some days, longer than any client keeps retrying.”
Weak answers rely on the client not retrying, or compare cart contents to guess whether an order is a repeat.
“Because the start time is known, I would not wait for scaling to react. I would load test with a realistic mix of pages, deal pages most of all, and add capacity before midnight. Product details and images change slowly, so they can be cached hard. Price and stock need shorter cache times. I would put limits on each dependency so a slow one cannot use up all threads. I would also agree a list of features to turn off under stress, such as recommendations, so search, cart and checkout keep working. During the sale, someone watches the dashboards with that list ready.”
Weak answers say the cloud will scale on its own and have no plan for what to switch off.
“I would call all the services side by side, not one after another, and give each a strict time limit. Price and stock are essential, because a shopper cannot buy without them. Reviews are not. If reviews do not answer in time, the page returns with a cached star rating or with that section loading later. I would also add a circuit breaker, so after repeated failures we stop calling reviews for a short period and let it recover. Then I would track how often the fallback is served, because a silent fallback can hide a broken service for weeks.”
Weak answers wait for every service before replying, or treat all parts of the page as equally important.
“At my last job I owned your project, a service that sent order updates to customers. One night I was called because the queue of unsent messages kept growing. I saw a downstream provider was refusing calls, so I paused the sender to stop wasting retries and posted a status note. When the provider recovered, I drained the queue slowly. The next day I found our retries had no back-off, which made things worse. I added back-off with a limit, an alarm on queue age instead of size, and a runbook page. Since then, your result.”
Weak answers stop at restarting the service and never reach what they changed for the long term.
“A teammate wanted to cache prices for several minutes to cut database load. I worried customers would see one price on the page and another at checkout. Instead of arguing opinions, I measured how often prices changed and how much load the cache would save. The data showed most prices rarely changed, but a small set changed often during promotions. We agreed to cache with a short life and to clear the entry when a price was updated, and checkout always read the true price. It was closer to his idea than mine, and I built the clearing part myself. The outcome was your result.”
Weak answers make the other person sound foolish, or show the candidate quietly doing it their own way.
“First I would find how wide it is: all sellers or a few, and since when. While that runs, I would make sure checkout clearly shows the true price and asks the shopper to confirm if it differs from the cart. Then I would follow one seller's price change through the system to see where it got stuck, perhaps a delayed queue or a cache that was not cleared. After the fix, I would work with support to list orders where shoppers were surprised. Last, I would add an alarm on the gap between a price update and when the cart shows it.”
Weak answers jump into the code without checking how many shoppers are affected or what they see right now.
“I enjoy backend work most when correctness and speed pull against each other, and a store has that everywhere. Stock must be right, yet checkout must be fast. Orders must never be lost, yet services fail every day. In my current job I worked on your project and learned how much design goes into a simple retry. At Amazon the same problems exist at a size where shortcuts stop working, and the result is a parcel that arrives or does not. I want to own a service like that fully, including running it, and learn from engineers who have done it through many sale seasons.”
Weak answers praise the company in general terms and do not name any backend problem they want to work on.
No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.
ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.