About the course

Advanced Scala with Cats is aimed at experienced Scala developers who want to take the next step in engineering robust and scalable systems. The course teaches six key abstractions of: monoids, functors, monads, monad transformers, applicative functors, and traversals, using the implementations in the Cats library. Through a series of projects we show you how these abstractions can be used to engineer solutions to practical problems in data analysis, data validation, input parsing, error handling, and more.

The main goal of this course is to teach system architecture and design using the techniques of modern functional programming. This means designing systems as small composable units, expressing constraints and interactions via the type system, and using composition to guide the construction of large systems in a way that maintains the original architectural vision.

The course also serves as an introduction to the Cats library. We use abstractions from Cats, and we explain the structure of Cats so you can use it without fear in your own code base. The broad ideas are not specific to Cats, but Cats provides an excellent implementation that is beneficial to learn in its own right.

The course materials include our book, Advanced Scala with Cats, available from the books section of the web site.

Course structure

Advanced Scala with Cats is split across two days:

On Day 1 we cover the main theoretical patterns of the course: monoids, functors, monads, monad transformers, applicative functors, and traversals. We discuss the theoretical concepts themselves and their implementation in Cats.

On Day 2 we put this knowledge to practice, working on extended case studies that apply the theory to practical problems. We tailor the case studies to the combined interests of the attendees. In previous courses we have implemented the following:

  • multi-core map-reduce;
  • probabilistic modelling;
  • applicative data validation;
  • distributed computations involving CRDTs;
  • parser combinator based DSLs.

The full course content is available on the course home page.

Who’s teaching the course?

This course will be taught by Noel Welsh.

Where and when is it?

The course will run for two days starting on Tue, Dec 12, 2017. It will be held at:

Wallacespace St Pancras
22 Dukes Road

What will you need?

You must have:

  • your own laptop with Scala installed; and
  • significant prior experience with Scala.

How much does it cost?

The two-day course is £999+VAT, or £799+VAT for early bird tickets.

As usual, tickets are half price for diversity candidates.


Please note that the training room is at the top of two relatively steep flights of stairs.

If you are a wheelchair user or have restricted mobility, please get in touch before booking your ticket!

Register now!

Any other questions?

Contact us!