Scala Advanced Developer

Back-End Development
Scala
Software Development

Master functional programming in Scala 3 over three intensive days. The guiding principles throughout are local reasoning — being able to understand each piece of code without knowing the rest of the system — and composition — building bigger systems from small, well-typed pieces that combine predictably. Journey from algebraic data types and the Cats ecosystem through concurrent and streaming applications with Cats Effect and FS2, to event-sourced systems with Pekko, bringing it all together in a production-ready capstone project. Based on Training from the Back of the Room (TBR) techniques, every session combines interactive lections with REPL-driven live coding, hands-on exercises, and quiz sections. And in the age of AI, these are the skills that let you review and verify generated code with confidence.

Do you have any questions about the course?

Melchior will gladly help you further with any questions you might have.

Get in touch

What will you learn?

You will learn how to think and design in a purely functional style using Scala 3. Starting from algebraic data types and pattern matching, you will build up to advanced type classes, monadic composition, and higher-kinded types — giving you the tools to write code where each function can be understood in isolation and composed with others without surprises.

Get to know how Cats Effect transforms the way you handle side effects, concurrency, and resource management. You will learn to write programs using the IO monad, leverage fiber-based concurrency for massive parallelism, and use primitives like Ref, Deferred, and Queue to coordinate concurrent workflows — all without the pitfalls of traditional thread-based programming. Because IO is referentially transparent, every expression can be reasoned about locally — making concurrent code as understandable as sequential code.

You will master streaming data processing with FS2 and Pekko Streams, understanding when to reach for each. From pull-based lazy pipelines to backpressured reactive streams, you will learn to build robust data processing systems that handle real-world workloads. Pipes and stream operators compose just like functions, letting you build complex processing pipelines from small, testable, reusable stages.

The training covers event sourcing and CQRS with Pekko Persistence, teaching you how to model domain entities as event-sourced actors, implement command and event handlers, and build read-side projections. You will also learn how to extract pure domain logic from infrastructure — keeping command handlers small, locally testable, and composable as the system grows.

Finally, you will integrate all of these tools into a layered, production-grade architecture — covering testing strategies, configuration management, dependency injection, observability, and deployment. Tagless final and Resource give you composable application layers where each component can be understood in isolation. The capstone project gives you the opportunity to apply everything you have learned to a real problem. In an era where AI generates ever more code, these skills shift from writing code to confidently reviewing and verifying it — local reasoning and strong types make AI-generated code safe to trust.

Key takeaways

  1. Apply two foundational principles — local reasoning and composition — that make functional Scala code readable, testable, and maintainable by default
  2. Master the Cats ecosystem (Cats, Cats Effect, FS2) for production-quality functional Scala
  3. Build concurrent, fiber-based applications that scale without the complexity of threads
  4. Design and implement event-sourced systems with CQRS using Pekko Persistence
  5. Develop streaming data pipelines with both FS2 and Pekko Streams
  6. Apply advanced type system features — type classes, monads, higher-kinded types, and contextual abstractions — with confidence
  7. Graduate with a working capstone project that demonstrates concepts from all three days

Program

Build a solid foundation in purely functional Scala 3. You will master algebraic data types, pattern matching, and structural recursion, then move on to functional error handling with Option, Either, and Validated. Discover the type class pattern using Scala 3 given/using contextual abstractions, and work with core Cats type classes — Semigroup, Monoid, Functor, Applicative, and Monad. The day concludes with advanced monadic composition: Reader, Writer, State, and Eval monads, monad transformers (OptionT, EitherT), Traverse, Sequence, and higher-kinded types (F[_]) — giving you the tools to write code where every piece can be reasoned about locally and composed without surprises.

Who is it for?

This training is for every developer or architect who wants to:

  • write Scala that is easy to reason about locally and composes cleanly — from individual functions to full system architecture
  • move beyond basic Scala syntax to advanced type system features and the Cats ecosystem
  • learn how to build concurrent, streaming, and event-sourced applications the functional way
  • gain the skills and patterns needed to lead a team building functional Scala systems
  • graduate with a portfolio-ready capstone project demonstrating real-world functional programming

Requirements

Basic Scala syntax and collections, or strong experience with another JVM language such as Java or Kotlin

OOP fundamentals

Willingness to invest time in pre-reading and post-session exercises, including incremental capstone project work

You will have to bring your own laptop.

Why should I follow this training?

Learn to write code where every piece can be reasoned about locally and composed predictably

Master local reasoning and composition as foundational principles — from pure functions to full system architecture — so your code is readable, testable, and maintainable by default.

Master the full Cats ecosystem and Pekko in one cohesive program

From type classes to concurrent streaming to event sourcing — Cats, Cats Effect, FS2, and Pekko covered end-to-end in a single, structured training.

Graduate with a working capstone project that proves your skills

Apply everything you have learned to a real problem and walk away with a portfolio-ready project demonstrating production-grade functional Scala.

Stay indispensable in the age of AI

AI shifts the bottleneck from writing code to reviewing and verifying it. Local reasoning, composition, and a strong type system make AI-generated code reviewable and safe — the compiler catches what a human skimming AI output would miss.

Pragmatic functional Scala, not ivory-tower theory

Worried functional programming is too academic? Every concept earns its place by solving a real problem — no category theory for its own sake. You learn just enough theory to apply it pragmatically, then put it to work on production concerns like testing, configuration, observability, and deployment.

Learn from a seasoned practitioner

Taught by a trainer with more than a decade building extensive, production JVM backend systems and certified in Training from the Back of the Room — you learn battle-tested patterns from someone who has shipped them.

Meet the trainer

Robert Thurnher

With roughly 20 years building web, mobile, and backend systems, Robert brings deep expertise in the JVM ecosystem, big data, and event-driven architectures right into his trainings. TBR practitioner.

What else
should I know?

The training is structured as three intensive days using Training from the Back of the Room (TBR) techniques. Every session combines interactive lections with REPL-driven live coding, hands-on exercises, and quiz sections. Each day builds on the previous one, so attending all three days is important for getting the most out of the program.

Course information

Primary textbook: Functional Programming Strategies in Scala with Cats. All code examples, exercises, and solutions are provided in a dedicated Git repository.

Bring your own laptop with Java 21+ and sbt installed. Recommended editors: VS Code with Metals, IntelliJ IDEA with Scala plugin, or Neovim.

Each session includes exercises and capstone project work to reinforce concepts between days.

Sessions use TBR techniques: interactive lections, REPL-driven live coding, hands-on exercises, and quiz sections to maximize engagement and retention.

Frequently Asked Questions