Denoising System for Audio
Design a system that removes noise from audio streams and audio files. The system should support both real-time low-latency use cases (e.g., video calls) and high-quality batch processing (e.g., post-processing of uploaded videos). Consider accuracy, latency, throughput, model deployment, monitoring, and upgrade paths.
Design a Distributed LRU Cache
Design a distributed Least-Recently-Used cache that supports low-latency reads and writes across multiple cache servers while preserving clearly defined eviction semantics through scaling and failures.
Design A Live Polling System
Design a live voting service that can handle high-volume, real-time voting during major events like the Super Bowl. The service should allow viewers to cast votes (e.g., predicting which team will win) and display the results in real-time.
Design a Parking Garage Booking System
Design a reservation and payment system for a parking garage that allows users to reserve parking spots in advance and pay for them online.
Design a Payment Gateway
Design a payment gateway system similar to Stripe or PayPal that allows businesses to process online payments securely and reliably.
Design AWS S3
Design a distributed storage system similar to AWS S3 or Azure Blob Storage that allows users to store and retrieve files of any size in the cloud with high durability and availability.
Design Distributed Database
Design a distributed database system that can scale beyond the capacity of a single machine. You have a SQL database with a single table that is growing beyond what one machine can handle, and you need to design a solution to distribute this data across multiple machines.
Design Dropbox / Google Drive
Design a system like Dropbox, iCloud, or Google Drive that allows users to upload, download, and synchronize files across multiple devices. The system should be reliable, user-friendly, and able to handle a large number of users and files.
Design GitHub Code Hosting
Design a GitHub-like code-hosting platform. Users should be able to create repositories, push and fetch Git objects, manage branches, review and merge pull requests, and collaborate safely on repositories ranging from small projects to very large monorepos.
Design Google Docs
Design a collaborative text editor similar to Google Docs that allows multiple users to edit the same document simultaneously in real-time.
Design Google Search
Design a web search engine that allows users to search for relevant websites across the internet, similar to Google.
Design Notification System
Design a notification service that can deliver real-time notifications to users across multiple devices while ensuring scalability and reliability.
Design Simple E-commerce Website
Design an e-commerce platform like Amazon. Focus on the core functionalities that enable users to search for products, add items to a cart, and place orders.
Design Task Management System
Design a Trello-like task management application. The app should allow users to create, organize, and track tasks using cards and lists, similar to Trello. The application should support a single user with multiple devices, and changes made on one device should sync to other devices in real-time.
Design TikTok
Design a backend system for a short-video mobile app (TikTok-like). The system should allow users to upload short videos (<= 1 min + caption), view a vertically-scrolling feed (personalized + follow feed), and interact with videos (likes, follows, comments). Focus primarily on backend architecture, data model, API design, and scaling to ~1M daily active users (DAU) with high read volume.
Design YouTube: scalable video upload & streaming
Design a video streaming platform similar to YouTube that allows users to upload and watch videos.
Detect Weapon Ads with ML
Design an end-to-end machine learning system to detect ads that are selling weapons. The system should ingest ads from Web and Mobile, process text, images, and video (video details skipped for storage estimates), support multiple languages, and prioritize minimizing false negatives (i.e., high recall for weapon-selling ads). It must be updatable (retrain/deploy/validate), achieve ~99.9% availability with cost awareness, and scale to roughly 100K ads/day.
Distributed Metrics Logging & Aggregation
Design a telemetry platform used by engineering teams to collect logs and numerical metrics from a large fleet of services. Teams need recent data quickly enough to investigate incidents, while also retaining selected data for historical analysis. Producers can be bursty, schemas evolve, and parts of the ingestion or storage path may fail without warning. Define the product's query and retention expectations, then explain how the platform remains trustworthy as volume grows.
Document Processing Pipeline Design
Design a document processing pipeline that ingests documents (PDFs, images, Office files), extracts text and structured fields using OCR and NLP, classifies documents, and saves structured data for search and downstream use. The pipeline should handle high volume, support accuracy monitoring and human-in-the-loop correction, and be scalable and secure.
Improve YouTube Recommendation Algorithm
Design improvements to YouTube's recommendation algorithm. Focus on boosting relevance and engagement while reducing harmful or low-quality surfacing. Consider signals, model architecture, freshness, diversity, personalization, evaluation metrics, and how to serve recommendations at YouTube scale.
Log Ordered Messages System Design
Design a system that accepts messages from producers and persists them such that the messages are logged in the exact order they were produced. The system should be durable, highly available, and scalable to large message volumes. Consider trade-offs between strict ordering, throughput, latency, and fault tolerance.
Next-Word Prediction System Design
Design a next-word prediction system for a mobile keyboard. It should return useful suggestions within the typing latency budget, support multiple languages, learn safely from user behavior, and continue providing a reasonable experience when the network is unavailable.