Software engineers at Amazon work on problems that join code with the physical world: which warehouse ships an order, what delivery date to promise, how reviews are counted. The company also makes devices such as Kindle and Alexa. Prepare to explain designs in simple words, to reason about trade-offs aloud, and to tell stories where you made a decision with partial facts and owned the result. What to show here: clear reasoning about trade-offs and ownership of results. 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 →
“The estimate depends on where the shopper is, which warehouses hold the item, the packing cut-off time and how long carriers take on that route. Working this out fresh for every page view would be slow, so I would precompute travel times between warehouse areas and delivery areas, and keep stock by warehouse in a fast store. At page load, the service picks the best warehouse with stock and adds the times. When a lookup fails, I would show a later, safer date, since a broken promise hurts more than a modest one. Real delivery results feed back to correct the travel times.”
Weak answers treat it as a simple lookup and never discuss what happens when the estimate is wrong.
“I would first agree what we are optimising. The promised date is a hard limit, and within it we want lower shipping cost and fewer parcels. Each option is a way of assigning items to warehouses. With few items I can score every option. For large orders I would use a greedy approach: start with the warehouse that covers the most items, then fill the rest from the nearest ones. I would give each option a cost that includes distance and number of parcels. Stock can change while I decide, so the choice must reserve stock, and fall back to the next option if that fails.”
Weak answers pick the nearest warehouse for each item one by one and ignore the cost of many parcels.
“I would keep a small summary per product: how many reviews at each star level. The average and the bar chart both come from those five counts. When a review is added, I increase one count. When it is edited, I lower the old level and raise the new one. When a review is removed, for example as fake, I lower its count. I would do these updates through a queue, since a delay of a few seconds is fine for a rating. Because counters can drift after failures, a scheduled job would rebuild them from the reviews table and report any difference.”
Weak answers compute the average from all reviews each time, or forget edited and removed reviews.
“With money, I want the rules agreed in writing first, with worked examples, because rounding per item and rounding on the total give different answers. I would turn those examples into unit tests, and add edge cases like very small amounts, several offers together and different currencies. Then I would run the new code in shadow next to the old one on real carts, record both answers and study every difference. Only when the differences are all expected would I release to a small share of shoppers behind a flag, with an alarm on any cart whose total differs from the order total.”
Weak answers test a few happy cases by hand, or never compare the new results with the old ones.
“While working on your project, I noticed customers were getting tracking links that opened an error page. The links were built by another team's service. I could have logged a ticket and moved on, but support was getting complaints daily. I reproduced it, found that addresses with certain characters were not encoded, and sent the owning team the details with a suggested fix. They were busy with a release, so I offered to make the change myself for them to review. They agreed, and it shipped within the week. Afterwards, your result. I also added a check in our own service.”
Weak answers either ignore the problem as someone else's, or change another team's code without telling them.
“On your project we had to choose how to store delivery events before a partner integration began. I did not yet know the final volume. I asked myself what would be hard to undo. The storage engine could be swapped later with some effort, but the event format would be copied by every consumer. So I chose the storage quickly, using what the team already knew, and spent my limited time on the format, reviewing it with two consumers. Later the volume was higher than expected and we did change the storage, which took your result. The format never needed to change.”
Weak answers either wait for full information on every choice or rush everything without asking what can be reversed.
“The first question is whether anything besides the email was duplicated. I would check the orders and charges for a sample of those shoppers. If only the email repeated, the harm is worry, not money, and that changes the message. I would pause the email sender or the job that is resending, then give support a short factual note, and ask for a message to affected shoppers saying they have one order and one charge. Then I would look for the cause, often a worker that retried after a time-out. The fix is to record each sent message and skip repeats.”
Weak answers start fixing the email code before checking whether any shopper was really charged twice.
“I would choose the delivery side. I like problems where the software has to respect the real world: a van has limited space, a road is closed, a parcel is late. In your project I worked on scheduling and enjoyed how each rule from the real world changed the design. What is hard here is that plans must be made quickly with imperfect data, and then changed when reality differs. I find that more interesting than pure software problems. I would like to grow into someone who can design such a system and also run it when things go wrong.”
Weak answers say any team is fine, or choose an area without being able to say what is hard about it.
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.