← Library
Course · by Yash Tiwari

Low Level Design: Classes, patterns and concurrency

How to design the classes, interfaces and relationships of a self-contained system: a delivery framework, design principles, OOP and patterns, concurrency, and worked breakdowns.

  1. 01

    Introduction

    What low level design is, how it differs from system design, and how to run the interview.

    0 / 2
    1. 1.1IntroductionSoon
    2. 1.2The delivery frameworkSoon
  2. 02

    Design principles

    The rules of thumb behind a design that is easy to change.

    0 / 2
    1. 2.1KISS, DRY, YAGNI, separation of concerns, Law of DemeterSoon
    2. 2.2SOLIDSoon
  3. 03

    OOP concepts

    The four ideas every class design is built from.

    0 / 1
    1. 3.1Encapsulation, abstraction, polymorphism and inheritanceSoon
  4. 04

    Design patterns

    The few patterns that earn their place in an interview.

    0 / 8
    1. 4.1Factory methodSoon
    2. 4.2BuilderSoon
    3. 4.3SingletonSoon
    4. 4.4DecoratorSoon
    5. 4.5FacadeSoon
    6. 4.6StrategySoon
    7. 4.7ObserverSoon
    8. 4.8State machineSoon
  5. 05

    Concurrency

    What changes when several threads share one process.

    0 / 4
    1. 5.1Concurrency: the toolboxSoon
    2. 5.2CorrectnessSoon
    3. 5.3CoordinationSoon
    4. 5.4ScarcitySoon
  6. 06

    Breakdowns

    Putting principles, patterns and concurrency together.

    0 / 9
    1. 6.1Design Connect FourSoon
    2. 6.2Design Amazon LockerSoon
    3. 6.3Design an elevatorSoon
    4. 6.4Design a parking lotSoon
    5. 6.5Design a file systemSoon
    6. 6.6Design movie ticket bookingSoon
    7. 6.7Design a logging serviceSoon
    8. 6.8Design a rate limiterSoon
    9. 6.9Design inventory managementSoon