Today, we’re going to go over the Amazon system design interview, with 57 confirmed Amazon system design interview questions reported by candidates on Glassdoor, plus sample answers to the top 3 most common.
The information in this guide comes in part from an analysis of over 100 real system design interview reports collected from Amazon software development engineer, software development manager, and machine learning engineer candidates.
The first thing you’ll need to know: interviewers like to base questions on Amazon products, so research the main ones thoroughly beforehand.
- Amazon system design interview basics
- Top 3 Amazon system design interview questions
- Amazon system design interview questions
- Preparing for Amazon system design interviews
Click here to practice system design interviews 1-on-1 with an Amazon ex-interviewer
1. Amazon system design interview basics↑
System design interviews at Amazon are typically given to mid- to senior-level engineering roles. This includes positions like Software Development Engineer (SDE II and above), Software Development Manager, and Machine Learning Engineer.
This is the part of the interview where you want to show that you can both be creative and structured at the same time.
According to Amazon’s official guide for SDE II interviews, you can expect at least one 45-minute system design interview as part of your onsite loop. For more specialized roles, like infrastructure, security, or platform engineering, you may face multiple system design rounds instead of just one.
The goal of this round is to test how well you can design scalable, maintainable systems that can function in Amazon’s massive, fast-paced environment.
Also, be prepared to sketch by hand on a whiteboard or use a virtual equivalent.
1.1 Topics
Amazon expects you to be familiar with the areas below (though you don't need to be an expert in all of them). What matters most is that you can reason through your design, explain trade-offs clearly, and apply fundamental principles to real-world systems.
- Distributed systems
- Service-oriented architecture (SOA)
- N-tiered software architecture
- Scalability techniques (e.g., caching, load balancing, sharding, microservices)
- Storage options (e.g., relational vs non-relational databases)
- Component design (data stores, business logic, APIs/process layers)
- System deployment and operations
- Availability, performance, and fault tolerance
During your interview, Amazon will expect you to ask clarifying questions and narrow down the problem. Interact with your interviewer like a customer: ask clarifying questions, identify any vague requirements, and make your assumptions clear as you build out your design.
As you progress in your design, you'll need to consider the following:
- Who are you designing for, and why?
- What functionality does the customer expect?
- What assumptions are they making that might not be explicitly stated (e.g., performance, security)
- What if usage grows rapidly? How does the system handle a 10x scale?
- What metrics should be tracked for technical and business performance?
- Where are the bottlenecks? How can they be resolved?
- What parts of the system might fail? How can we make them more resilient?
- How would engineers debug issues? What kind of logs or tools would they use?
The information above is taken from Amazon’s interview prep guide for the software development engineer II role.
1.2 SDE vs SDM system design
System design interviews at Amazon vary depending on the role, especially between Software Development Engineers (SDEs) and Software Development Managers (SDMs), which often get confused since both fall under software development.
Amazon SDEs are responsible for building, supporting, and optimizing applications and systems across Amazon’s vast tech stack. Because of this, their system design interviews are more technical and hands-on, often focusing on the architecture of specific components, trade-offs, and scalability at the implementation level.
SDMs, on the other hand, focus more on high-level problem solving and technical leadership. While they need a strong technical foundation, they’re also expected to estimate engineering effort, validate system designs, and lead teams through complex product roadmaps. They make key architectural decisions and enforce best practices across the development process.
As a result, system design questions for SDMs tend to focus on broader, customer-facing problems. You'll be expected to break down ambiguous business goals into clear technical components, navigate trade-offs, justify your architectural choices, and show how you lead a team through execution.
2. Top 3 Amazon system design interview questions↑
Now you have an idea of how system design interviews work at Amazon, let’s get into the complete list of system design questions that have been asked in real Amazon interviews, according to data from Glassdoor.
Before we dive in, keep in mind that we’ll be using the same repeatable answer framework to break down each question. It’s a flexible structure you can apply to almost any system design interview:
System design answer framework
Step 1: Ask clarifying questions
First, spend about five minutes checking in with your interviewer about the functional and non-functional requirements of what you’re going to design. Ask about the system’s goals and how they will be measured. Be sure that you fully understand the question before moving forward.
Call out any assumptions you’re making that will influence your design approach. If applicable, ask about non-functional requirements such as availability, consistency, scalability, etc.
Step 2: Design high-level
Start the high-level design by specifying one to two metrics (e.g., number of users added, products sold before vs after a feature launch, etc.). Then use these metrics to do some simple calculations to find the optimal usage pool of the system.
Once you’ve defined your metrics, map out only the most functional components of the system (e.g. front end, web server, database, etc.).
Finally, before getting into the more detailed aspects of your system, make some decisions on how you will design its database. Choose whether it will be a relational or a NoSQL database, as well as its metadata and table structure.
Step 3: Drill down on your design
If you haven’t already, start mapping out the system on your whiteboard. Speak through your diagram so that your interviewer can follow along and ask questions when necessary.
Consider any bottlenecks that may arise when it comes to the system’s scalability, performance, or flexibility.
To finalize your design, play to your strengths by choosing a component you’re more familiar with and drilling down on it. If you’re not sure which component would be best to explore, ask your interviewer.
Step 4: Bring it all together
Before wrapping up the round, take about five minutes to re-examine what you’ve designed. Does it meet the objectives you laid out with the interviewer at the beginning of the session? It is okay to change some components at this stage if you think it will improve the system, but you must explain to the interviewer what you are doing and why.
Apply this framework to practice questions like those we’ve provided above. Use it on different types of questions in a variety of subjects, so that you learn how to adapt it to different situations and respond to unpredictable questions on the fly.
For a full explanation of the framework, consult our system design question guide.
Now, let’s put that framework into practice. Out of all the Amazon system design interview questions that we collected from Glassdoor, these first three questions were repeated multiple times across different roles. We've laid out an answer outline for each.
2.1 Design a parking payment system
One of the most common Amazon system design interview questions, “design a parking payment system,” requires candidates to tackle an incredibly complex task—building a complete, scalable payment solution for parking—in 45 minutes or less.
Below, take a look at some points of consideration and questions to keep in mind when working through this system.
Sample answer: Design a parking payment system
Ask clarifying questions
Before outlining your design, narrow the scope of the question and seek clarity on the functional and non-functional requirements:
- Are we designing the entire parking ecosystem, or just the digital payment system?
- What types of parking are we supporting? (on-street meters, garages, private lots, etc.)
- What platforms will users use to interact with the system? (mobile app, website, physical kiosks)
- What’s the expected scale? (users per day, peak hours, location coverage)
Design high-level
Lay out the main components of your design, considering:
- How will your system track parking sessions and enforce payment accuracy?
What kind of database will you use to store session data, user accounts, and payment history? - How will the system interface with payment gateways and potentially physical hardware like sensors or meters?
- How will you ensure availability and prevent double-booking of parking spaces?
Drill down
Dig deeper into the architecture and components:
- Use a relational database (e.g., PostgreSQL) to store user accounts, sessions, zones, and transactions.
- Integrate a third-party payment service (e.g., Stripe, Amazon Pay) to securely process transactions.
- Implement a session service to handle timers, pricing calculations, and alerts for expiring sessions.
- Set up APIs to serve mobile/web clients and support operations like starting, extending, or ending a session.
- Consider using geolocation and sensor APIs to validate whether a car is actually in a paid zone.
Bring it all together
Conclude by addressing potential improvements and optimizations:
- Identify possible bottlenecks in your design and propose solutions.
- Discuss how you could enhance the system’s scalability and responsiveness (e.g., separating payment and session services into different microservices.)
- Consider future features or technologies that could be integrated for improvement.
2.2 Design a warehouse system for Amazon
This question came up most frequently in software development engineer and software development manager interviews. Take a look at the framework below for an approach to this question.
Sample answer: Design a warehouse system for Amazon
Ask clarifying questions
- Are we designing for a single warehouse or a network of fulfillment centers?
- Should the system handle inventory tracking, order fulfillment, or both?
- What’s the expected scale? (SKUs, orders per minute, peak season volume)
Design high-level
- How will the system track inventory in real time and support efficient order picking?
- What kind of database will store inventory, bin locations, and order details?
- How will the system coordinate tasks like picking, packing, and shipping?
- How will external systems (e.g., ecommerce frontend, delivery partners) integrate with the warehouse?
Drill down
Dig deeper into the architecture and components:
- Use a relational database (e.g., PostgreSQL) to store inventory, orders, and location mappings.
- Implement a task queue system (e.g., Amazon SQS) to manage pick-and-pack jobs.
- Design a warehouse service that assigns tasks to workers or robots based on proximity and urgency.
- Use barcodes or IoT sensors to update inventory status and location in real time.
Bring it all together
- Identify possible bottlenecks in your design and propose solutions.
- Discuss how you could enhance the system’s scalability and responsiveness.
- Consider future features or technologies that could be integrated for improvement.
2.3 Design a URL shortening service
Varying versions of this question came up frequently in the interview reports from Amazon. Some are more specific, but the most common was “Design TinyURL” or “How would you design TinyURL?”, so let’s take a look at how you could approach it.
Sample answer: Design TinyURL
Ask clarifying questions
- Should the service support custom aliases or just auto-generated ones?
- Are we designing for read-heavy, write-heavy, or balanced traffic?
- Should shortened URLs expire or persist indefinitely?
Design high-level
- A service to generate short URLs and map them to original URLs
- A database to store the mappings between short and original URLs
- A redirection service to handle requests to short links and redirect users
- A monitoring/logging layer to track usage and performance
Drill down
- Use a key-value store (e.g., DynamoDB, Redis) to quickly retrieve short original URL mappings
- Generate unique short keys using either base62 encoding of sequence numbers or hash functions (e.g., MD5/SHA256)
- Implement rate limiting and abuse protection for public endpoints
- Use a load balancer to distribute traffic evenly and ensure availability
Bring it all together
- Identify possible bottlenecks (e.g., hash collisions, DB writes under heavy load) and propose solutions like sharding or consistent hashing
- Discuss ways to scale horizontally using load balancers and distributed storage
- Consider adding monitoring, analytics, and expiration features down the line
3. More Amazon system design interview questions↑
Now, let’s get into the complete list of system design interview questions asked in interviews for different roles at Amazon.
Keep in mind that, in most cases, your interviewer will adapt the question to your background. For instance, if you've worked on an API product, they're more likely to ask you to design an API. But that won't always be the case, so practice with the questions below to be ready to design any type of product or system at a high level.
We have categorized the questions by role: software development engineer, software development manager, machine learning engineer, plus general system design questions applicable to all roles.
Test out your skills using the questions below.
3.1 Amazon system design interview questions (for software development engineers)
- How would you design a warehouse system for Amazon.com
- How would you design Amazon.com so it can handle 10x more traffic than today
- How would you design Amazon.com's database (customers, orders, products, etc)
- How would you design Google's search autocomplete
- How would you design a real-time ranking system for Fortnite
- How would you design a parking payment system
- How would you design an electronic voting system
- Design a parking lot system. Three floors and two vehicle sizes, big and small. Small ones fit into big spots but big ones can't take small spots.
- Design Amazon lockers for various locations
- Design a tiny link website
- Design a system that can handle inserting millions of products. There may not be a way to distinguish duplicates.
- Design an interface to check if URLs are linked or not?
Learn more about the Amazon software development engineer role.
3.2 Amazon system design interview questions (for software development manager)
- Design a pizza shop software
- Design Uber but for a robo-taxi service
- Design threshold of Alexa devices triggering based on a single ad without information on user devices
- Design a picture upload service
- Design a scalable system for a URL shortener
- Design an expenses tracking application
- Design a job runner
- Design a detailed, scalable microservice
- Design the next Twitter
- How would you design a social network like Facebook or Instagram?
- How would you design a system that reads book reviews from other sources and displays them on your online bookstore?
- How do you handle calls between clients and REST API services with increased volumes?
- Design a promotion mechanism which could give 10% cash back on a particular credit card
Learn more about the Amazon software development manager role.
3.3 Amazon system design interview questions (machine learning engineer)
- Design a system that recommends in-flight movies from a database, such that the total time matches directly with the flight time.
- Design a system that recommends clothing to consumers
- Design a product recommendation system
- Design autocomplete and/or spell check on a mobile device
Learn more about the Amazon machine learning engineer role.
3.4 Amazon system design interview questions (general)
- How would you design Twitter / Instagram / Facebook, etc.?
- Design a phone billing system
- Design a service like Dropbox
- Design Snake / Chess / Tic-Tac-Toe / Poker / Boggle
- Design a parking lot
- Design a TinyURL service
- Design an API that would take and organize order events from a web store
- Design an elevator
- Design a deck of cards
- Design a system to optimally fill a truck
- Design an online poker game
- Design a system to interview candidates
- Design a search engine autocomplete
- Design an airport
- Design the Prime Video home page
- Design a registration system for a restaurant
- Design a food delivery app on a global scale
- Design an inventory system
- Design a news website
- Design a shopping cart system
- Design a system to find friends on social media
- Design a Swiggy delivery system with a focus on optimizing for the shortest route
- Design a temperature identification system with geographically distributed sensors
- Design a ticketing system
- How would you design a system that reads book reviews from other sources and displays them on your online bookstore?
- Design a promotion mechanism that could give 10% cash back on a particular credit card
- How would you build software behind an Amazon pickup location with lockers?
- Design a distributed cache system (video solution)
Learn more about how to answer the most-asked system design interview questions.
4. Preparing for Amazon system design interviews↑
Now that you know what questions to expect, let’s focus on preparation. Below are links to free resources and five steps to help you prepare for your Amazon system design interviews.
4.1 Learn the interview process
Of course, your system design interviews at Amazon will be part of a larger interview process. For help understanding the overall interview process and practice questions for every type of question you’ll be asked, use one of the guides below.
- Amazon software development engineer interview guide (by IGotAnOffer)
- Amazon machine learning engineer interview guide (by IGotAnOffer)
- Amazon software development manager interview guide (by IGotAnOffer)
- Most-asked system design interview questions (including Amazon) (by IGotAnOffer)
- 19 system design interview tips from ex-interviewers (by IGotAnOffer)
- System design interview prep guide (by IGotAnOffer)
- System design interview prep video (by Amazon)
- How to create high-level designs (by Amazon)
If you're applying for engineering roles, you'll also want to prepare for coding interviews. Check out our guide to Amazon coding interviews and watch Amazon’s coding interview prep video to learn more.
Now, let’s dig deeper into system design interview prep.
4.2 Learn the concepts
There is a base level of knowledge required to be able to speak intelligently about system design. You don't need to know EVERYTHING about sharding, load balancing, queues, etc.
However, you will need to understand the high-level function of typical system components. You'll also want to know how these components relate to each other, and any relevant industry standards or major tradeoffs.
To help you get the foundational knowledge you need, we've put together a series of 9 system design concept guides. Here's the full list:
- Network protocols and proxies, which make it possible for any networked computers to talk to each other, no matter where they are or what hardware or software they’re running.
- Databases, integral components of the world’s biggest technology systems.
- Latency, throughput, and availability, three common metrics for measuring system performance.
- Load balancing, the process of distributing tasks over a set of computing nodes to improve the performance and reliability of the system.
- Leader election algorithms, which describe how a cluster of nodes without a leader can communicate with each other to choose exactly one of themselves to become the leader.
- Caching, a technique that stores copies of frequently used application data in a layer of smaller, faster memory in order to compute costs and to improve data retrieval times and throughput.
- Sharding, the horizontal scaling of a database system that is accomplished by breaking the database up into smaller “shards,” which are separate database servers that all contain a subset of the overall dataset.
- Polling, SSE, and WebSockets, techniques for streaming high volumes of data to or from a server.
- Queues and pub-sub, mechanisms that allow a system to process messages asynchronously, which can eliminate bottlenecks and help the system to operate more efficiently.
You can also check out these system design resources recommended by Amazon in their SDE II Interview prep guide:
- Distributed System Problems
- Index of System Design Topics
- Scalability Rules: 50 Principles for Scaling Websites
- Design Library Management System, Parking Lot, and Others
We’d encourage you to begin by studying these topics, and once you understand the basics, you can begin practicing system design questions.
4.3 Work through system design interview questions
We recommend using a repeatable framework for answering system design questions. You’ll find a full breakdown in section 2 of this guide.
Then, start practicing with the list of questions we have in this article. If you need more questions to practice with, take a look at our list of 31 system design interview questions.
4.4 Practice with peers
Once you've done some individual practice, we would also strongly recommend that you practice solving system design questions with someone else interviewing you.
If you have friends or peers who can do mock interviews with you, that's an option worth trying. It’s free, but be warned, you may come up against the following problems:
- It’s hard to know if the feedback you get is accurate
- They’re unlikely to have insider knowledge of interviews at your target company
- On peer platforms, people often waste your time by not showing up
For those reasons, many candidates skip peer mock interviews and go straight to mock interviews with an expert.
4.5. Practice with experienced system design interviewers
In our experience, practicing real interviews with experts who can give you company-specific feedback makes a huge difference.
Find an Amazon system design interview coach so you can:
- Test yourself under real interview conditions
- Get accurate feedback from a real expert
- Build your confidence
- Get company-specific insights
- Save time by focusing your preparation
Landing a job at a big tech company often results in a $50,000 per year or more increase in total compensation. In our experience, three or four coaching sessions worth ~$500 make a significant difference in your ability to land the job. That’s an ROI of 100x!