Writing
Long-form posts on Scala, functional programming and event-driven systems. Library APIs have moved on since; the ideas mostly have not.
2020
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.
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.
10 min read
Integration tests with Testcontainers and Docker
Integration testing Scala services against real dependencies running in Docker, with Testcontainers and MUnit.
17 min read
Effective testing with ZIO Test
Unit testing effectful ZIO code with ZIO Test: assertions, mocks and test aspects.
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.
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
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
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.