Page cover

1️⃣1. Fundamentals of System Design

1.1. Introduction to System Design

  • What is system design?

  • Importance in software engineering

  • System design interview overview

1.2. Basic Principles and Concepts

  • Modularity and abstraction

  • Coupling and cohesion

  • SOLID principles in system design

1.3. Trade-offs in System Design

  • Performance vs. scalability

  • Reliability vs. cost

  • Consistency vs. availability

1.4. Non-Functional Requirements

  • Scalability

  • Reliability

  • Availability

  • Maintainability

  • Extensibility

1.5. Back-of-the-Envelope Calculations

  • Estimating system capacity

  • Traffic estimates

  • Storage estimates

1.6. Mini-Project

  • Design and implement a simple key-value store in Go

  • Implement basic CRUD operations

  • Add simple persistence to disk

Last updated