Writing

Long-form posts on Scala, functional programming and event-driven systems. Library APIs have moved on since; the ideas mostly have not.

2020

  1. 17 min read

    Upgrade your Tagless Final with Tofu

    Improving a Tagless Final codebase with Tofu: less boilerplate, better error handling, tracing and structured logging.

  2. 15 min read

    Event-driven railway network based on Pulsar

    Simulating a railway network as an event-driven system in Scala, built on Apache Pulsar with Tagless Final.

  3. 10 min read

    Integration tests with Testcontainers and Docker

    Integration testing Scala services against real dependencies running in Docker, with Testcontainers and MUnit.

  4. 17 min read

    Effective testing with ZIO Test

    Unit testing effectful ZIO code with ZIO Test: assertions, mocks and test aspects.

  5. 18 min read

    From idea to product with ZLayer

    Building a Scala application with ZIO, from the first effect to wiring services together with ZLayer.

  6. 17 min read

    Effective testing with ZIO Test [RC17 edition]

    Unit testing effectful ZIO code with ZIO Test: assertions, mocks and test aspects. Written for ZIO 1.0.0-RC17.

    Superseded by a newer edition

2019

  1. 17 min read

    Implement your future with ZIO [RC17 edition]

    Building a Scala application with ZIO, step by step. Written for ZIO 1.0.0-RC17.

    Superseded by a newer edition

  2. 8 min read

    Designing your first multi-billion startup

    Breaking an application into services, packages and sbt modules, using a Telegram release-notification bot as the example.