Back to home

Design Exercises

Choose an exercise to practice. Each exercise breaks down a system design problem into guided steps.

System Design

Design scalable distributed systems and architectures

1
5 steps

Design a URL Shortener

A URL shortening service similar to bit.ly that generates short aliases for long URLs and redirects users to the original destination.

Service BoundariesData ManagementScalingIntegration
Start exercise
2
5 steps

Design a Distributed Cache

Build a distributed caching system similar to Redis or Memcached that provides high-speed key-value storage across multiple nodes.

Service BoundariesData ManagementResilienceIntegration
Start exercise
3
5 steps

Design a Rate Limiter

Implement a distributed rate limiting service that can be used across multiple services to prevent abuse and ensure fair resource usage.

Service BoundariesData ManagementScalingIntegration
Start exercise
4
6 steps

Design a Notification System

Create a multi-channel notification system that can send messages via email, SMS, push notifications, and in-app alerts.

Service BoundariesIntegrationData ManagementResilience
Start exercise
5
6 steps

Design a File Storage Service

Build a cloud storage platform similar to Dropbox or Google Drive that allows users to upload, store, and share files.

Service BoundariesData ManagementIntegrationSecurity
Start exercise
6
5 steps

Design a Chat Application

Build a real-time messaging platform similar to Slack or Discord that supports direct messages, group chats, and channels.

Service BoundariesData ManagementIntegrationScaling
Start exercise
7
5 steps

Design a Search Engine

Build a web-scale search engine that crawls, indexes, and retrieves relevant results for user queries.

Service BoundariesData ManagementIntegrationScaling
Start exercise
8
5 steps

Design a Video Streaming Platform

Create a video streaming service similar to YouTube or Netflix that allows users to upload, process, and stream video content.

Service BoundariesIntegrationData ManagementScaling
Start exercise
9
5 steps

Design a Payment System

Build a payment processing platform that handles transactions, manages wallets, and integrates with external payment providers.

Service BoundariesResilienceData ManagementIntegration
Start exercise
10
5 steps

Design a Ride-Sharing Service

Build a ride-sharing platform similar to Uber or Lyft that matches riders with nearby drivers in real-time.

Data ManagementService BoundariesIntegrationResilience
Start exercise
11
5 steps

Design a Social Media Feed

Build a news feed system similar to Twitter or Instagram that aggregates and ranks content from followed users.

Service BoundariesData ManagementIntegrationScaling
Start exercise
12
5 steps

Design a Booking System

Create a reservation platform similar to Airbnb or OpenTable that handles availability, bookings, and prevents double-booking.

Data ManagementService BoundariesIntegrationScaling
Start exercise
13
5 steps

Design a Metrics & Monitoring System

Build an observability platform similar to Datadog or Prometheus that collects, stores, and visualizes system metrics.

Service BoundariesData ManagementIntegrationScaling
Start exercise
14
5 steps

Design an E-commerce Platform

Build an online shopping platform similar to Amazon that handles product catalog, cart, checkout, and order fulfillment.

Data ManagementService BoundariesIntegrationScaling
Start exercise
15
5 steps

Design a Content Delivery Network

Build a globally distributed caching system that delivers static content with low latency from edge locations.

Service BoundariesIntegrationData ManagementResilience
Start exercise

Database Design

Design schemas for relational and NoSQL databases

API Design

Design REST, GraphQL, and tRPC APIs with best practices

AI System Design

Design AI/ML systems, RAG pipelines, and LLM-powered applications

Object-Oriented Design

Master OOD principles, design patterns, DDD, and hexagonal architecture

34Aggregates

Design a Library Management System

The class hierarchy and object model for a library management system that handles books, members, loans, and reservations.

Service BoundariesIntegrationResilience
Start exercise
35Strategy

Design a Parking Lot System

Apply object-oriented design to model a multi-level parking lot with different vehicle types, payment strategies, and spot allocation.

Service BoundariesIntegrationData ManagementResilience
Start exercise
36DDD

Design an E-Commerce Order System with DDD

Apply Domain-Driven Design principles to model an e-commerce order system, defining bounded contexts, aggregates, entities, value objects, and domain events.

Service BoundariesIntegrationResilienceData Management
Start exercise
37Hexagonal

Design a Notification System with Hexagonal Architecture

Apply Hexagonal Architecture (Ports & Adapters) to design a multi-channel notification system that is fully decoupled from infrastructure.

Service BoundariesIntegrationData ManagementResilience
Start exercise
38Patterns

Design a Chess Game Engine

Apply object-oriented design patterns to model a fully functional chess game engine, covering piece behaviour, move validation, game state, and extensibility.

Service BoundariesIntegrationData ManagementResilience
Start exercise
39Plugin Arch

Design a Plugin-Based Text Editor

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.

Service BoundariesIntegrationData ManagementResilience
Start exercise