3 Month System design Course (4 sections a week, 16 sections a month, 48 sections overall)

Day 1-2: Introduction to System Design

Day 3-4: Scalability

Day 5-6: Performance

Day 7-8: Reliability

Day 9-10: Availability

Day 11-12: Load Balancing

Day 13-14: Caching

Day 15-16: Data Storage

  • Overview of different types of data storage solutions
  • Relational vs. NoSQL databases
  • Data partitioning and replication strategies
  • Real-life example: Data storage architecture at LinkedIn

Day 17-18: Database Design

  • Fundamentals of database design
  • Normalization and denormalization
  • Indexing strategies for performance optimization
  • Real-life example: Database design challenges at Uber

Day 19-20: Messaging Systems

Day 21-22: API Design

Day 23-24: Authentication and Authorization

  • Understanding authentication and authorization
  • OAuth, JWT, and session-based authentication
  • Role-based access control (RBAC) vs. attribute-based access control (ABAC)
  • Real-life example: Authentication and authorization mechanisms at PayPal

Day 25-26: Security

  • Common security threats in system design
  • Strategies for securing systems
  • Encryption, hashing, and other security measures
  • Real-life example: Security practices at Airbnb

Day 27-28: Microservices Architecture

Day 29-30: Service Discovery

Day 31-32: Containerization

Day 33-34: Infrastructure as Code (IaC)

  • Concepts of Infrastructure as Code
  • Tools like Terraform and CloudFormation
  • Benefits of IaC in system design
  • Real-life example: Infrastructure as Code practices at Dropbox

/09/infrastructure-repaving-at-dropbox/)

Day 35-36: Event-Driven Architecture

Day 37-38: Design Patterns

  • Overview of common design patterns in system design
  • Creational, structural, and behavioral patterns
  • Applying design patterns to real-world scenarios
  • Real-life example: Design patterns used in Google's infrastructure

Day 39-40: Monitoring and Logging

Day 41-42: Testing Strategies

Day 43-44: Continuous Integration and Continuous Deployment (CI/CD)

Day 45-46: Performance Testing

Day 47-48: Disaster Recovery

  • Strategies for disaster recovery in system design
  • Backup and restore processes
  • Business continuity planning
  • Real-life example: Disaster recovery strategies at Amazon