If you’re preparing for system design interviews, you need to know the kinds of questions top tech companies actually ask so you can strategically prepare for them.

There are plenty of free system design resources online, but finding high-quality solutions to specific interview questions isn’t always easy.

To save you time, we’ve rounded up 50+ system design questions asked at FAANG+ companies, categorized them by domain and difficulty, and included links to written solutions and real mock interviews. 

To categorize these questions, we asked for help from our coaches, Mathew and Tarek, engineering leaders with a combined 25+ years of interviewing experience at Amazon and Microsoft.

Here’s an overview of what we’ll cover:

Click here to practice system design interviews with ex-FAANG interviewers

In this section, let’s get into the most common system design questions reported for top technical roles, including software engineers, engineering managers, and technical program managers.

We found reports from candidates at companies including Amazon, Anthropic, Apple, Google, Meta, Microsoft, Netflix, NVIDIA, OpenAI, Stripe, and Uber.

According to Mathew, system design questions typically fall into two primary categories: business domain questions and infrastructure questions.

  • Business domain system design questions focus on architecting end-to-end, user-facing applications like social networks, ride-sharing platforms, or e-commerce features.
  • Infrastructure & distributed systems questions focus on building low-level, foundational technical components, such as caches, key-value stores, web crawlers, and rate limiters.

You'll find that under each category, we grouped them into even more granular domain subcategories to help you target your prep on specific architecture patterns. We’ve also indicated which companies have asked each question, rated its difficulty, and included links to high-quality solutions.

Note that this list isn’t exhaustive, so you may encounter the same questions at other companies as well. 

Right, let’s get started!

1. Business domain system design interview questions 

Business domain questions are the most common type of system design question you’ll encounter. Based on our analysis of 50+ reported questions on Glassdoor, roughly 69% fall into this category.

Business domain system design interview questions

We’ve grouped these questions into eight subcategories, which you'll see below. Click on a domain if you want to skip straight to it:

1.1 Social & real-time communication systems 

According to Tarek, social and collaboration systems are among the most frequently asked system design questions. These questions often test your understanding of WebSockets, long polling, Pub/Sub, and fan-out on write vs. fan-out on read.

Below are a few examples asked at most FAANG+ companies. Feel free to skip to a specific question. 

a. How would you design X / Twitter? (easy) 
Asked at: Meta, Uber
 

“Design a social media app” is a very common system design prompt asked at most FAANG companies. This prompt allows interviewers to assess your problem-solving skills and your knowledge of system design fundamentals like reliability, scalability, availability, and performance.

For a large social platform like X/Twitter, you’ll need to think about how posts are stored, indexed, cached, and served at scale, as well as how you’d handle user timelines and high fan-out for users with millions of followers.

Here are some good solutions we found for this question:

b. How would you design Instagram? (easy) 
Asked at: Meta, Amazon, Microsoft, X
 

This is another common social media app design task. “Designing Instagram” tests how you’d store and quickly serve billions of photos and videos, cache popular content, and handle feed updates for users with large followings.

Here are some good solutions and resources we found for this question:

c. How would you design a messaging app? (medium) 
Asked at: Meta, Uber, TikTok, Amazon, Google, LinkedIn
 

Real-time messaging apps are a common standalone product or a built-in feature of larger systems. For this question, you might be asked to design a specific app, like Messenger, WhatsApp, or Telegram.

Here are some good solutions we found for this question:

d. How would you architect the Facebook newsfeed? (medium) 
Asked at: Meta
 

The main challenge with a Facebook newsfeed is deciding how to generate and serve fresh content at scale. To approach this question, you’ll need to think about fan-out, ranking, caching, batching, and partitioning, as well as how your design changes for users with large followings.

Here are some good solutions we found for this question:

e. How would you design Slack? (medium) 
Asked at: OpenAI
 

While Slack is fundamentally a messaging platform like WhatsApp or Messenger, its focus on workplace collaboration introduces additional design considerations. You’ll need to support multi-tenant workspaces, channel permissions, presence tracking, and integrations while delivering messages in real time.

Here’s a good overview and sample outline we found for this question:

f. How would you design a live commenting system? (medium) 
Asked at: Meta
 

You could be asked to design a commenting system for live content, such as Facebook or Instagram Live. You should be ready to discuss how you’d deliver comments with low latency, scale reads and fan-out using Pub/Sub, and balance availability with consistency as traffic grows.

Here’s a good written solution from a Meta EM:

g. How would you design a system to find friends on social media? (hard) 
Asked at: Amazon, Meta, Google, Uber
 

Another variation of this question is “Design Nearby Friends.” Here, you may need to explain how you’d store and index location data, account for constantly changing user locations, cache frequently accessed areas, and rank results based on distance and user preferences.

Here are some good solutions we found for this question:

Coaches who contributed to this guide

1.2 Media content & storage platforms 

These questions focus on systems that store, process, and serve large amounts of media or content, such as videos, photos, music, and files. Common prompts include designing platforms like YouTube, Spotify, Google Drive, or Dropbox.

Tarek says you should be ready to discuss chunked uploads, transcoding pipelines, blob storage, and edge caching.

Let’s look at a few examples. Feel free to skip a specific question.

a. Design a system that aggregates book reviews from other sources (easy) 
Asked at: Amazon
 

This question tests your ability to design a data-heavy system that integrates information from multiple sources. To build an effective solution, you’ll need to consider data ingestion, normalization, deduplication, storage, and how to serve aggregated reviews efficiently.

Here’s a solution we recommend for this question. While it focuses on movie reviews, the same approach can be applied to aggregating book reviews from multiple sources:

b. How would you design the Prime Video home page? (medium) 
Asked at: Amazon
 

Amazon Prime Video is a global streaming platform that serves a large catalog of movies and TV shows to users. Designing a home page for such a complex system requires you to think about how to personalize recommendations, organize and rank content, cache frequently accessed data, and deliver the page quickly to users.

Here’s a good written solution we found for this question:

c. How would you design a photo-sharing platform? (medium) 
Asked at: Google, Uber, Amazon, DoorDash, Meta
 

Users expect photo-sharing platforms to handle large volumes of images while still making it fast and easy to upload, organize, view, and share them. In an interview, you may be asked to design a platform like Google Photos or Flickr that can support these needs.

Here are some good resources we found for this question:

d. How would you design a file-sharing / cloud file storage system? (medium) 
Asked at: Anthropic, NVIDIA, Google, Meta, Amazon
 

For this question, you may be asked to design a cloud storage platform like Google Drive or Dropbox. A key challenge to this question is keeping files available and consistent across users, devices, and data centers. You’ll need to consider how data is partitioned and replicated, how files and folders are structured, and how updates propagate across replicas.

Here are some good resources we found for this question:

e. How would you design a news website that aggregates content from multiple sources? 
Asked at: Google, Amazon
 

This question is similar to the book review aggregator we covered earlier, but news content is much more time-sensitive. Your design will need to account for collecting and deduplicating articles from multiple sources, ranking them by relevance and freshness, and serving new content quickly to users.

Here’s a good solution we found for this question:

f. How would you design a video upload and sharing app? (hard) 
Asked at: Google, Uber, Meta, OpenAI
 

Video-sharing platforms need to store, process, and deliver huge volumes of video content to users quickly. For this type of question, you’ll typically be asked to design a platform like YouTube or TikTok.

While they share many of the same requirements, the design can differ depending on the platform. YouTube may require more focus on search, channels, and subscriptions, while TikTok may emphasize personalized recommendations and feed generation.

Check out the following mock interviews with ex-FAANG experts on our platform:

g. How would you design a video streaming platform like Netflix? (hard) 
Asked at: Apple, Meta, Amazon, Netflix
 

Unlike the previous question, this prompt focuses on streaming video rather than uploading and sharing it. You’ll need to think about how to store and encode a large video library, deliver high-quality streams to users with different devices and connection speeds, and handle large numbers of concurrent viewers.

Here are good solutions we found for this question:

h. How would you design a music-streaming platform like Spotify? (hard) 
Asked at: Google
 

A music-streaming platform needs to let users search for and play songs with minimal delay, while supporting features like playlists and personalized recommendations. For Spotify, you may need to discuss audio storage and delivery, caching, global replication, and how the system handles large numbers of concurrent streams. 

Check out this mock interview with an ex-Google EM and coach on our platform:

1.3 Search discovery & ranking 

Search systems need to find and return the most relevant results from huge amounts of data, often within milliseconds. Depending on the question, this could mean predicting a search query, finding nearby places, crawling the web, or ranking content.

To design these systems, you should be familiar with concepts like indexing, ranking, caching, query processing, and data freshness.

Let’s look at some of the most common questions. Feel free to jump to a specific question.

a. How would you design autocomplete / typeahead for a search engine? (medium) 
Asked at: Google, Meta, Amazon, Apple
 

This question tests your ability to deliver sub-100ms read latencies for search platforms like Google Search or Bing. To do this, you’ll need to consider prefix data structures like Tries, distributed caching, and async message queues for updating search rankings.

Here are two solutions we recommend for this question:

b. How would you design Facebook status search? (medium) 
Asked at: Meta
 

Facebook status search focuses on retrieving the most relevant posts after a query is submitted. Unlike a general web search, however, results also depend on what each user is allowed to see. This means your search index needs to handle a constant stream of new posts while accounting for privacy across friends, groups, and public pages.

Here’s a written solution we recommend for this question, written by a senior SWE at Spotify:

c. How would you design a web crawler at scale? (medium) 
Asked at: OpenAI, Amazon, Google, Meta, Stripe
 

Web crawlers are used to collect large amounts of publicly available data from across the internet, whether to build a search index like Google or gather training data for an LLM. 

Designing one is challenging because of the sheer amount of data involved. You’ll need to consider how to crawl and store content efficiently, respect website policies like robots.txt, and distribute the work across many machines.

Here are a few good solutions we found for tackling this question:

d. How would you design a proximity server? (hard) 
Asked at: NVIDIA, Uber
 

Proximity services help users find relevant places or businesses near their current location. For this question, you may be asked to design a platform like Yelp, Google Places, or TripAdvisor where your system needs to quickly find, rank, and return nearby results. 

Here are a few good solutions we found for tackling this question:

1.4 Commerce, marketplace & financial systems 

Commerce and marketplace systems need to process large volumes of transactions while keeping inventory, orders, and payments accurate and reliable. 

As you’ll see from the questions below, these prompts are especially common at e-commerce companies like Amazon, but once in a while, you may also encounter them at other tech companies, like Microsoft. Feel free to skip to a specific question.

a. How would you design a shopping cart? (easy) 
Asked at: Amazon, Microsoft
 

For this question, you may be asked to design a shopping cart for a major e-commerce platform like Amazon. Such a large marketplace needs to keep shopping carts accurate even as prices and inventory change or users switch between devices. Your design should account for these updates while keeping cart data available and consistent.

Here are a few good resources to help you approach this question:

b. How would you design a parking payment system? (easy) 
Asked at: Amazon
 

This is one of the more common system design questions reported at Amazon. Parking payment systems need to track parking sessions, calculate the correct fees, and process payments reliably.

To approach this, you’ll need to cover state management for active parking sessions, rate calculation logic for variable pricing, payment gateway integration, and graceful offline fallbacks if parking gate hardware loses connectivity.

Here’s a sample outline we recommend for this question:

c. How would you design an online portal for selling products? (medium) 
Asked at: Microsoft
 

This question is a more complex version of “Design a shopping cart,” since you’re now designing the entire e-commerce platform around it. You’ll need to explain three main things: how users can search for products, purchase them, and update a shared cart without concurrent changes being lost.

Here are great solutions we found for this question:

d. How would you design a system for processing and organizing order events from an online store? (medium) 
Asked at: Amazon
 

Every purchase on an online store generates a series of events, from an order being placed to payment, fulfillment, and delivery. This question asks you to design a system that can process and organize these events reliably, even when they arrive out of order, are duplicated, or fail to process.

Here's a good solution we recommend for this question:

e. How would you design an inventory system? (medium) 
Asked at: Amazon
 

For a retailer like Amazon, inventory can change constantly as products are purchased, returned, restocked, or moved between locations. Your design needs to account for all of these changes while keeping stock levels accurate and preventing problems like overselling.

Here's a good solution we recommend for this question:

f. How would you design the software behind Amazon pickup lockers? (medium) 
Asked at: Amazon

Amazon Lockers give customers an alternative to having packages delivered to their homes. Behind that experience, the system has to assign packages to available lockers, authenticate customers at pickup, and handle cases where lockers are full or packages go unclaimed.

To help you work through some of these design challenges, here are a few good solutions we recommend:

g. How would you design an Amazon warehouse system? (hard) 
Asked at: Amazon
 

Once a customer places an order, Amazon has to locate the right products and move them through picking, packing, and shipping. This question asks you to design the warehouse system that coordinates that process while keeping inventory updated along the way.

Here’s a sample outline that can help you work through the solution:

1.5 Mobility, mapping & logistics 

Mobility and logistics systems need to keep track of people, vehicles, or deliveries as they move from one location to another. For common prompts like “Design Uber,” “Design Lyft,” or “Design Google Maps,” this means tracking constantly changing locations and using that information to make decisions in real time.

According to Mathew, you should be ready to discuss geospatial indexes, route optimization, and location updates.

a. How would you design a heat map for Uber drivers? (medium) 
Asked at: Uber
 

Ride-hailing services like Uber use driver heatmaps to show where drivers are currently concentrated across a city. To keep that view up to date, your system needs to process frequent location updates from a large number of drivers and aggregate them by geographic area.

Here’s a useful solution for working through this question:

b. How would you design Google Maps? (hard) 
Asked at: Google 
 

Users rely on Google Maps to find a good route and estimate how long their journey will take. To deliver that experience, your system needs to model a massive road network, calculate routes quickly, and adjust ETAs as conditions like traffic or weather change.

Here’s a great approach to this question from an ex-Google SWE:

c. How would you design a system to match riders and drivers? (hard) 
Asked at: NVIDIA, Google
 

Uber is one of the most common platforms you may be asked to design for this type of question. Since Uber is a two-sided marketplace, you’ll need to account for three things: where riders are requesting trips, which drivers are available nearby, and how each request is assigned to a suitable driver.

These solutions can help you design a matching system that handles all three:

d. How would you design a global food delivery system? (hard) 
Asked at: Amazon
 

People rely on food delivery services to order meals from nearby restaurants and have them delivered directly to them. Behind that simple experience is a multi-sided platform connecting customers, restaurants, and delivery drivers.

Here’s a solution that can help you coordinate all three, from placing orders to matching drivers and tracking deliveries:

1.6 Scheduling, booking & resource allocation 

Scheduling and booking systems need to manage limited resources when many users may be trying to reserve them simultaneously. 

Whether you’re designing a hotel booking, airline reservation, or restaurant booking system, Mathew says you should be ready to discuss resource locking, availability, fairness, reservation expiry, and preventing double bookings.

a. How would you design a restaurant booking system? (medium) 
Asked at: Google, Amazon
 

Restaurant booking systems, such as those offered by Zomato and Swiggy, need to match users with available tables based on their party size and preferred time. This means accounting for opening hours, seating capacity, and existing reservations so that each booking can be accommodated without conflicts.

Here’s a good solution that walks through these requirements:

b. How would you design a ticketing platform? (hard) 
Asked at: Google, Amazon
 

Ticketing platforms need to manage huge spikes in demand when tickets for popular events go on sale. Thousands of users may try to reserve a small number of seats at the same time, so your system needs to keep availability accurate and process competing requests reliably.

Here are two good solutions to help you work through these design challenges:

c. How would you design a hotel or travel booking system? (hard) 
Asked at: Meta, Amazon
 

This question shares many of the same challenges as the restaurant and ticket booking systems above, except hotel bookings typically span multiple nights and offer different room types. This means your system needs to track availability across properties, room types, and date ranges.

Here are two good solutions that show how to handle these additional considerations:

1.7 Enterprise & workflow systems 

Enterprise systems help teams manage work, information, and processes across an organization. For questions involving platforms like Jira, GitHub, CRMs, or document management systems, Mathew says you should be ready to discuss state machines, permissions and role-based access control (RBAC), audit logging, and workflows.

Let’s dive into some example questions.

a. Design an interface for managing and running jobs across GPUs (easy) 
Asked at: NVIDIA, Google, Amazon, Microsoft, Netflix
 

GPUs are expensive, limited resources, so a system managing jobs across them needs to decide which workloads run where and when. That means tracking available compute, assigning jobs to suitable GPUs, and managing them as they’re queued, running, completed, or failed.

You may also get a more specific version of this question that focuses on how jobs are scheduled and assigned to available resources. 

Here’s a good solution we recommend for that version of the question:

b. How would you design a webhook system? (medium) 
Asked at: OpenAI
 

Webhooks are notification mechanisms that allow external applications to receive data when specific events happen on another platform. For instance, an online store could register a webhook with Shopify to receive an update whenever a customer places an order, then use that data to issue an invoice or send a confirmation email.

For this question, you’ll need to consider endpoint registration, reliable event delivery, retries for failed requests, and security.

Here are two good walkthroughs of how you might bring these requirements together in a webhook system:

c. How would you design a system for interviewing candidates? (medium) 
Asked at: Amazon
 

Interviewing candidates involves coordinating candidates and interviewers while keeping the process consistent and fair. Your system also needs to handle practical issues such as hiring surges, interviewer cancellations, rescheduling, and video calls dropping midway through an interview.

Here’s a good solution to help you work through these scenarios:

d. How would you design GitHub Actions from scratch? (hard) 
Asked at: OpenAI
 

GitHub Actions allows developers to automate workflows when they push code, open a pull request, or trigger other repository events. For this question, you’ll need to consider how workflows are scheduled and executed across isolated workers, as well as how failures and retries are handled.

Here are two good solutions that walk through this design:

1.8 AI & LLM systems 

You’ll commonly encounter questions in this domain at AI-focused companies like OpenAI and Anthropic. However, with the rapid adoption of AI across the tech industry, we highly recommend practicing them even if you’re not applying for an AI-specific role.

According to Tarek and Mathew, you should be prepared to discuss retrieval and RAG pipelines, embeddings and vector databases, context windows, model serving, KV and prompt caching, GPU batching, and cost optimization.

a. Design an AI chat system? (hard) 
Asked at: OpenAI, NVIDIA, Anthropic
 

AI chat systems like ChatGPT and Claude need to maintain context across multiple turns while generating and streaming responses to users. The challenge is doing this for many concurrent conversations while managing context windows, latency, and inference costs.

Here are good resources that can help you work through these design challenges:

b. How would you design an LLM-powered enterprise search system? (hard) 

Asked at: OpenAI, NVIDIA

Companies store information across documents, databases, and internal tools, often with different access permissions and data formats. An LLM-powered enterprise search system should be able to find relevant information quickly, use it to generate grounded answers, and prevent users from accessing restricted data.

Below is a sample outline to help you work through this design:

Learn more on how to answer these types of questions in our ML system design and GenAI system design interview guides. 

2. Platform / infrastructure system design questions 

Platform and infrastructure questions account for roughly 31% of the reported system design questions we analyzed. These questions focus more on the underlying systems and services that applications rely on. This includes distributed caches and databases, as well as security and reliability systems.

Platform and infrastructure system design interview questions

We’ve grouped them into five subcategories:

Let’s dive into each.

2.1 Distributed infrastructure 

Distributed infrastructure questions ask you to design core services that other systems depend on, such as distributed caches, rate limiters, URL shorteners, and API gateways. Mathew says that to be able to approach these designs, you should understand key concepts like scalability, CAP, sharding, and consensus.

Below are sample questions reported on Glassdoor by candidates at top tech companies.

a. How would you design TinyURL / a URL shortener? (easy)
Asked at: Amazon, Google, Meta, Microsoft, Stripe
 

URL shorteners like TinyURL and Bit.ly turn long URLs into shorter links that redirect users to the original destination. While the concept is simple, your system needs to generate unique short URLs, store the mappings, and support a high volume of redirects.

Here are two good solutions that walk through the design:

b. How would you design a distributed cache system? (medium) 
Asked at: Google, Amazon


Caches help applications avoid repeatedly fetching the same data from slower databases or services. Once that cache is distributed, the harder part is deciding where each piece of data lives, how requests find the right server, and what happens when cache nodes fail or change.

These two resources show how to work through those tradeoffs:

c. How would you design an in-memory database? (medium) 
Asked at: OpenAI
 

An in-memory database keeps data in RAM instead of relying mainly on disk, which makes reads and writes much faster. The tradeoff is that you now need to think carefully about persistence, recovery, concurrency, and how data is organized in memory.

Here’s a sample outline to help you structure your answer:

d. How would you load-balance memcache servers? (medium) 
Asked at: Meta, Apple, Google
 

Once Memcache is spread across multiple servers, the challenge becomes routing each request to the right server without creating hot spots or unnecessary reshuffling when nodes change. This is where concepts like consistent hashing, replication, and failover become important.

Below are two resources to help you get familiar with the concepts behind this question:

e. How would you design a distributed botnet? (hard) 
Asked at: Meta
 

This is a less conventional prompt that’s been reported at Meta. Although the use case is unusual, the underlying challenge is still a distributed-systems problem: coordinating a large number of connected devices from a central or distributed control layer.

The solution below shows how you can apply these concepts to a botnet design:

2.2 Data platform & analytics 

Data platform and analytics questions ask you to collect, process, and analyze large volumes of data from different sources. Mathew says you should be prepared to discuss streaming, event streams, and the differences between online transaction processing (OLTP) and online analytical processing (OLAP) systems.

a. Design Google Analytics (hard)
Asked at: Google, Microsoft, Meta
 

Every page view, click, or user action can generate an event that Google Analytics needs to collect, process, and turn into useful metrics. Your system needs to handle a continuous stream of events while making that data available for reporting and analysis.

Here’s a good solution that walks through how these pieces fit together:

2.3 Operating systems / low-Level Design (LLD) 

Low-level design (LLD) questions focus on how individual components are structured and interact. For comparison, high-level design (HLD) looks at how larger system components and services work together. 

Mathew says you should be prepared to discuss object-oriented programming (OOP), design patterns, SOLID principles, interfaces, and class relationships.

Below, you’ll find frequently asked questions around games, parking lot systems, and elevators.

a. How would you design a board or classic game like Snake/Chess/Tic-Tac-Toe/Boggle/Minesweeper? (easy) 
Asked at: Amazon, Google, Meta
 

Games are a common way for interviewers to test how you translate rules and behaviors into classes and objects. Depending on the game, you may need to model players, boards, pieces, moves, scoring, and different game states.

Since the exact design will depend on the game you’re given, here are three examples to practice with:

b. How would you design a parking lot management system? (easy) 
Asked at: Amazon
 

A parking lot may have different types of vehicles, parking spots, entrances, and exits. Your job is to model how these pieces interact, from assigning an appropriate spot when a vehicle arrives to freeing it when the vehicle leaves.

This walkthrough shows one way to structure the system:

c. How would you design a card game like Poker / Blackjack? (easy) 
Asked at: Amazon, Apple
 

Card games give you another opportunity to show how you model objects and their relationships. You might start with reusable components like cards, decks, hands, and players, then build the rules and actions specific to Poker, Blackjack, or whichever game you’re given.

Here’s a useful starting point for structuring those components:

d. How would you design an elevator / smart elevator? (medium) 
Asked at: Google, Amazon, Apple
 

An elevator design becomes interesting once multiple passengers on different floors are making requests at the same time. You’ll need to model elevators, floors, requests, and states, then decide how the system assigns and prioritizes those requests.

For a smart elevator, you may also need to consider how scheduling decisions can reduce wait and travel times.

Here’s an LLD solution from an Adobe SWE to help you work through the problem:

2.4 Security, Identity & Access 

For systems involving authentication, SSO, OAuth, or API keys, you need to determine who a user or application is and what they’re allowed to access. According to Mathew, a few important discussion points are tokens, sessions, revocation, and trust.

Here are example questions asked at FAANG+ companies. Feel free to skip to a specific question.

a. How would you design the server-side system behind a user-preferences UI? (easy) 
Asked at: OpenAI 
 

This question can take different forms depending on how the interviewer scopes it. A more specific version might ask you to design a user login and authentication system for a website. With this variation, the focus shifts to how users authenticate, how sessions are maintained, and how access is controlled.

The solution below tackles a similar problem using millions of weather sensors:

b. How would you design APIs for developers to securely and efficiently access AI models? (hard) 
Asked at: Anthropic
 

AI APIs differ from standard APIs because model requests can be compute-intensive, take longer to process, and involve large inputs or outputs. Your design needs to give developers dependable access while handling concerns like authentication, rate limits, asynchronous requests, model versioning, and errors.

This resource breaks down several of these considerations for AI APIs:

c. How would you design an electronic voting system? (hard) 
Asked at: Amazon
 

An electronic voting system has little room for error. It needs to verify voter identities, prevent duplicate votes, protect voting data, and maintain accurate results even during traffic spikes. The system should also provide an audit trail so results can be verified and tampering detected.

This solution walks through how you can address these requirements:

2.5 Observability & reliability platforms 

Platforms like Datadog, CloudWatch, and Prometheus collect information about what’s happening across applications and infrastructure, so teams can monitor their systems and spot problems. 

Mathew recommends preparing for the following concepts: telemetry, sampling, aggregation, and high-volume data ingestion.

Let's look at a few example questions. 

  • Design a temperature identification system using geographically distributed sensors
  • Design redundancy for a cloud compute cluster
a. Design a temperature identification system using geographically distributed sensors (medium) 
Asked at: Amazon
 

Imagine receiving continuous temperature readings from sensors spread across thousands of locations. Your system has to ingest those readings, associate them with the correct locations, and turn the incoming data into useful temperature information while accounting for missing or faulty sensors.

Here’s a related read that can lay the groundwork for your solution:

b. How would you design redundancy for a cloud compute cluster? (medium) 
Asked at: NVIDIA
 

Hardware and services will eventually fail, so a cloud compute cluster needs backup capacity that can take over without bringing down the workloads it supports. This question tests how you approach redundancy, replication, failure detection, and failover.

The resource below is a useful primer on the redundancy concepts you can apply to your solution:

3. How to prepare for system design interviews 

As you can see from the complex questions above, there is a lot of ground to cover when it comes to system design interview preparation. So it’s best to take a systematic approach to make the most of your practice time.

Below, you’ll find a prep plan with links to free resources. 

3.1 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, take a look at our 9-part deep dive on system design concepts. Click on the topic to go directly to the article you need.

In addition to the concepts above, it’s also important to understand the difference between high-level design (HLD) and low-level design (LLD). Most of your system design interview will typically focus on HLD, though you may also be asked to drill down into LLD. Read our HLD vs. LLD comparison to learn more.

3.2 Learn an answer framework

When answering system design questions, we recommend using an answer framework to structure your answer. Learn more about our recommended framework in our guide on how to answer system design questions

Make sure to apply this framework (or any framework that works for you) when practicing. 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.

3.3 Know your target company

If you already have a system design interview scheduled at a specific company, take the time to familiarize yourself with how its entire interview process works.

You also want to know if they have specific requirements for their system design interviews in particular. For example: 

  • Google system design interviewers prefer that candidates refrain from using specific products (e.g. certain databases, load balancers, etc.). Instead, they require candidates to build from scratch. This is to make sure they know how these components work, rather than resorting to a product that takes care of certain aspects like sharding.
  • Meta, on the other hand, might give you the option to choose between a system design and product architecture/design interview. Meta system design interviews are focused on large-scale distributed systems, while product design is for user-facing products, i.e., APIs, data modeling, etc.

Also, include in your research your target company’s engineering challenges. The official company websites of most FAANG companies will typically have a dedicated engineering blog, like Uber and Meta.

If you're planning to apply to several FAANG companies, use our FAANG interview prep guide as a jumping off point for your preparation. If you already know the specific tech company or role you’re targeting, check out our interview guides for the most in-demand roles at some of the world's top tech companies:

You can also read our company, role, and domain-specific system design interview guides:

3.4 Practice with a system design interview cheat sheet

Before your interview, it’s a good idea to have a checklist of the main areas you should cover when answering a system design question. This can help you structure your answer and avoid overlooking important considerations.

Coach Mark (ex-Google EM) has kindly prepared a system design interview cheat sheet that you can use as a quick reference while practicing.

Click here to download the system design interview cheat sheet.

Start with the questions in this article and use the cheat sheet alongside the framework we recommended above.

3.4.1 Practice by yourself

A great way to start practicing is to interview yourself out loud. This may sound strange, but it will significantly improve the way you communicate your answers during an interview. 

Use a piece of paper and a pen to simulate a whiteboard session, or use a whiteboard if you have one. There are also online whiteboarding tools like Excalidraw, Visual Paradigm, or Sketchboard.me, which are particularly useful for practicing for virtual interviews.

Play the role of both the candidate and the interviewer, asking questions and answering them, just like two people would in an interview. Trust us, it works.

3.4.2 Practice with peers

Once you've done some individual practice, we strongly recommend that you practice 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. 

3.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 a 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.

Click here to book system design mock interviews with experienced system design interviewers.