Choose an exercise to practice. Each exercise breaks down a system design problem into guided steps.
Design scalable distributed systems and architectures
A URL shortening service similar to bit.ly that generates short aliases for long URLs and redirects users to the original destination.
Build a distributed caching system similar to Redis or Memcached that provides high-speed key-value storage across multiple nodes.
Implement a distributed rate limiting service that can be used across multiple services to prevent abuse and ensure fair resource usage.
Create a multi-channel notification system that can send messages via email, SMS, push notifications, and in-app alerts.
Build a cloud storage platform similar to Dropbox or Google Drive that allows users to upload, store, and share files.
Build a real-time messaging platform similar to Slack or Discord that supports direct messages, group chats, and channels.
Build a web-scale search engine that crawls, indexes, and retrieves relevant results for user queries.
Create a video streaming service similar to YouTube or Netflix that allows users to upload, process, and stream video content.
Build a payment processing platform that handles transactions, manages wallets, and integrates with external payment providers.
Build a ride-sharing platform similar to Uber or Lyft that matches riders with nearby drivers in real-time.
Build a news feed system similar to Twitter or Instagram that aggregates and ranks content from followed users.
Create a reservation platform similar to Airbnb or OpenTable that handles availability, bookings, and prevents double-booking.
Build an observability platform similar to Datadog or Prometheus that collects, stores, and visualizes system metrics.
Build an online shopping platform similar to Amazon that handles product catalog, cart, checkout, and order fulfillment.
Build a globally distributed caching system that delivers static content with low latency from edge locations.
Design schemas for relational and NoSQL databases
A relational database schema for an e-commerce platform that handles products, orders, customers, and inventory management.
A relational database schema for a social networking platform with users, posts, friendships, and interactions.
A MongoDB schema for a flexible content management system that handles various content types, media, and publishing workflows.
A MongoDB schema optimized for storing and querying IoT sensor data with time-series patterns.
A DynamoDB schema for a real-time gaming leaderboard system that handles global and regional rankings.
A DynamoDB schema for a multi-tenant SaaS application with strong tenant isolation and varying usage patterns.
Design REST, GraphQL, and tRPC APIs with best practices
A RESTful API for an e-commerce platform that handles products, orders, customers, and payments.
A RESTful API for a social media platform with posts, comments, likes, follows, and real-time notifications.
A GraphQL API for a content management platform with articles, authors, categories, and comments.
A GraphQL API for an e-commerce platform with products, orders, cart, and checkout functionality.
A tRPC API for a SaaS analytics dashboard with real-time data, user management, and reporting.
A tRPC API for a real-time collaborative application like Notion or Figma with documents, comments, and presence.
Design AI/ML systems, RAG pipelines, and LLM-powered applications
A Retrieval-Augmented Generation system that answers questions about a company's internal knowledge base using LLMs.
An AI-powered code assistant like GitHub Copilot that provides intelligent code completions, explanations, and refactoring suggestions.
A platform like Midjourney or DALL-E that generates images from text prompts at scale.
A system that orchestrates multiple AI agents to complete complex, multi-step tasks autonomously.
A semantic search engine like Perplexity that understands natural language queries and synthesizes answers from multiple sources.
A conversational AI voice assistant like Alexa or Google Assistant that understands speech, processes commands, and responds naturally.
Master OOD principles, design patterns, DDD, and hexagonal architecture
The class hierarchy and object model for a library management system that handles books, members, loans, and reservations.
Apply object-oriented design to model a multi-level parking lot with different vehicle types, payment strategies, and spot allocation.
Apply Domain-Driven Design principles to model an e-commerce order system, defining bounded contexts, aggregates, entities, value objects, and domain events.
Apply Hexagonal Architecture (Ports & Adapters) to design a multi-channel notification system that is fully decoupled from infrastructure.
Apply object-oriented design patterns to model a fully functional chess game engine, covering piece behaviour, move validation, game state, and extensibility.
Apply the Open/Closed Principle and plugin architecture patterns to design a text editor whose core is stable and all features are added via plugins.