Skip to content

    Course

    System design, backend and frontend

    Learn how real systems are built, from first principles to trade-offs. Two tracks, each with its own modules and lessons, one concept per page: the back end (servers, data, distributed systems) and the front end (browser, rendering, state, performance). They meet at the network, and the paired lessons show the same request from both sides.

    Choose a track

    How the two tracks connect

    Each topic has one home lesson in the track that owns it best, and a short paired lesson in the other. Start from either side.

    Topics that both tracks teach, with the module of each track
    TopicBackend viewFrontend view
    Microservices and micro-frontendsB13 Architecture stylesF12 Micro-frontends (coming soon)
    API design and API integrationB04 API designF08 API integration and data architecture (coming soon)
    Authentication and authorizationB15 SecurityF11 Frontend security (coming soon)
    Caching across the layersB10 CachingF10 Performance engineering
    Real-time communicationB11 Messaging and event streamingF16 Real-time architecture (coming soon)
    Observability and correlation IDsB16 Observability and operationsF17 Reliability and observability (coming soon)
    Resilience, retries and backoffB14 Resilience engineeringF17 Reliability and observability (coming soon)
    Consistency and optimistic UIB07 Distributed systems theoryF07 State management (coming soon)
    Deployment and release strategiesB17 Deployment and platform (coming soon)F18 Build tools and deployment (coming soon)

    Learning paths

    Pick a goal and follow its modules in order. Modules that are still being written are marked.