Episodes

  • Classifying stream processors
    Oct 14 2023
    One of the handiest intellectual tools I have built for myself in designing distributed systems is a two out of three conjecture on stream processors in analogy with the CAP theorem for distributed systems.
    Show More Show Less
    7 mins
  • How computing is different for scientists
    Oct 3 2023
    How scientists approach programs and how programmers approach programs are very different based on their needs, and that is reflected in the tools each need.
    Show More Show Less
    8 mins
  • Steady state and perturbations
    Sep 28 2023
    Programmers, very correctly, don't generally think about their programs as dynamical systems. But there are a few mental models from physics that we can apply to software that are useful for designing programs. This episode goes over the idea of a steady state with perturbations to it and how to use it as a design tool.
    Show More Show Less
    9 mins
  • Progress by pruning trees
    Sep 21 2023
    There's a pattern of progress that's repeated itself several times in the history of programming: take a common problem that forms a graph, and find a useful way to prune it to a tree. Today we explore three such cases.
    Show More Show Less
    12 mins
  • A map of the database landscape
    Sep 14 2023
    Choosing a database can be confusing, but there's only a few families you actually care about. This episode gives you a map to the world of today's important databases.
    Show More Show Less
    14 mins
  • The trail of ALGOL
    Sep 7 2023
    We use the ALGOL family of programming languages to trace one path through the history of computing.
    Show More Show Less
    20 mins
  • When should a metric trigger an alert?
    5 mins