System Design Problems
Practice with real interview problems asked at top tech companies.
Design a URL Shortener
Design a service like TinyURL or bit.ly that shortens long URLs into compact links.
Design a Rate Limiter
Design a distributed rate limiter that can throttle requests based on various criteria like user ID, IP address, or API endpoint.
Design a Notification System
Design a scalable notification system that supports push notifications, SMS, and email across millions of users.
Design a Chat System (WhatsApp)
Design a real-time messaging system similar to WhatsApp supporting 1:1 and group chats with message delivery guarantees.
Design a News Feed (Facebook/Twitter)
Design a social media news feed that aggregates and ranks posts from followed users and pages.
Design a Distributed Cache
Design a distributed caching system like Memcached or Redis that provides low-latency data access across a cluster.
Design a Web Crawler
Design a web crawler that systematically browses the web to index pages for a search engine.
Design a Payment System
Design a payment system like Stripe or PayPal that handles transactions, supports multiple payment methods, and ensures financial consistency.
Design Search Autocomplete
Design a search autocomplete/typeahead system that suggests queries as users type, like Google Search suggestions.
Design a Video Streaming Platform
Design a video streaming platform like YouTube or Netflix that handles video upload, processing, and playback at scale.
Design a Distributed Key-Value Store
Design a distributed key-value store like DynamoDB or Cassandra that provides high availability and partition tolerance.
Design a Ride-Sharing Service
Design an Uber/Lyft-like ride-sharing platform with real-time matching, location tracking, and dynamic pricing.
Design an E-Commerce Platform
Design an Amazon-like platform with product catalog, search, cart, checkout, and inventory management.
Design a Social Network
Design an Instagram/Facebook-like social platform with feeds, posts, followers, and real-time interactions.
Design a Parking Lot System
Design an automated parking lot system with multiple floors, different vehicle sizes, and payment processing.