System Design Interview Questions - Easy

Easy-level system design interview questions covering fundamental system design concepts and simple applications.

Q1: Design a URL shortener (like bit.ly).

Answer:

Requirements

  • Shorten long URLs to short codes
  • Redirect short URLs to original
  • Track click statistics
  • High availability

High-Level Design

Database Schema

URL Shortening Algorithm

Options:

  1. Hash-based: MD5/SHA → Take first 7 chars
  2. Counter-based: Auto-increment ID → Base62 encode
  3. Random: Generate random string, check collision

Base62 Encoding:

1Characters: [a-z, A-Z, 0-9] = 62 chars
27 characters = 62^7 = 3.5 trillion URLs

Flow Diagrams

Shorten URL:

Redirect:

Scalability Considerations


Q2: Design a basic chat application.

Answer:

Requirements

  • One-on-one messaging
  • Real-time delivery
  • Message history
  • Online/offline status

Architecture

Database Schema

Message Flow

Presence System


Q3: Design a simple e-commerce product catalog.

Answer:

Requirements

  • Browse products
  • Search products
  • View product details
  • Filter by category/price

System Architecture

Database Schema

Search Flow

Caching Strategy


Q4: Design a basic notification system.

Answer:

Requirements

  • Send notifications (email, SMS, push)
  • Reliable delivery
  • Track delivery status
  • Handle high volume

Architecture

Database Schema

Notification Flow

Retry Strategy


Q5: Design a basic file storage service.

Answer:

Requirements

  • Upload files
  • Download files
  • List user files
  • Delete files
  • Support large files

Architecture

Database Schema

Upload Flow

Download Flow

Storage Organization

Path Structure: /year/month/day/user_id/file_id.ext

Benefits:

  • Even distribution
  • Easy to manage
  • Supports sharding
  • Facilitates cleanup

Summary

Key system design patterns:

  • URL Shortener: Hashing, caching, analytics
  • Chat Application: WebSockets, presence, real-time
  • Product Catalog: Search, caching, read replicas
  • Notification System: Queues, workers, retry logic
  • File Storage: Object storage, CDN, presigned URLs

All designs emphasize scalability, reliability, and performance.

Related Snippets