Some topics are simply too big, or too deep to fit into a single log. Instead of putting everything into one huge read, I break them down into focused parts, each one exploring a different piece of the bigger picture. Together, these parts form a series.

One story, many chapters, digestible reads.

  • Designing a Rate Limiter

    Picking the algorithm, surviving distributed state, and deciding where the limiter belongs. An interesting interview conversation.

    3 parts Latest part: Mar 22, 2023 complete

  • gRPC from Scratch

    Protocol Buffers, services, clients, a real database and interceptors. Building a gRPC application end to end.

    7 parts Latest part: Feb 27, 2023 complete

  • Cassandra Internals

    Why Cassandra writes so fast, how its storage engine works, and what SQL habits to unlearn before writing CQL.

    5 parts Latest part: Mar 02, 2022 complete

  • Learning Go

    Slices, maps, structs, interfaces and composition, much more. The fundamentals of Go, one idea at a time.

    5 parts Latest part: Nov 07, 2017 ongoing

  • Design Patterns

    Why patterns are worth learning, and their implementations in TypeScript, Java and JavaScript.

    5 parts Latest part: Jul 15, 2016 ongoing

  • Low Level Design

    Designing the data structures behind everyday systems.

    2 parts Latest part: May 09, 2021 ongoing

  • Modern C++

    Smart pointers, copy and move semantics, lambdas and threads. The C++11 features worth knowing.

    6 parts Latest part: Mar 20, 2015 complete