h264, yuv420p, 1280x720 |ENGLISH, aac, 48000 Hz, stereo, s16 | 4h 54 mn | 1.92 GB
Instructor: Dick Wall

The Escalate Software Scala Advanced course is intended for experienced Scala developers looking to improve their skills, particularly for library and API design and development.

Advanced Functional Programming, Macros, Parser-Combinators, Performance, Profiling, Optimizing What you'll learn

Advanced Functional Programming, Tail Calls, Trampolines, Functors, Monads, Applicative Functors, Different Monad Patterns

Macros, Scala Compiler Phases, Abstract Syntax Trees, Quasiquotes, When and how to use macros

Parser Combinators, External DSLs, Grammar Translation, Transformers, Parsing, Packrat Parsers

Performance Optimization, JVM Performance Tricks, Profiling, Visual VM


You should be a developer with day to day working experience of Scala

It is recommended that you complete Parts 1 and 2 of the Escalate Scala Advanced course

You may also wish to consider following parts 1-3 of the Escalate Applied Scala course if you have trouble following these concepts

You will need a sufficiently powerful computer and to follow the included setup instructions to run the hands-on exercises


It covers topics needed to be effective in producing high quality, correct, powerful and flexible Scala libraries that are still easy to use by others.

Part 3 covers advanced functional programming concepts and patterns, use of Macros, how to write external DSLs with the parser-combinator library, and how to effectively optimize code by analyzing performance:

Functional Programming Building Blocks: ADTs, trampolines, recursion, functions

Functional Programming Patterns: Functors, Monads, Applicative Functors

Common Functional Patterns: IO, Reader, Writer, State, Free

Macros and Quasiquotes

External DSLs and Scala's Parser-Combinator Library

Profiling and Optimization

Code Performance Considerations

It is recommended that you complete Scala Advanced parts 1 and 2 before taking this part. While not strictly necessary, we may assume knowledge from parts 1 and 2 in some of the explanations that could be hard to follow unless you know the material.

This is the final part of the Advanced Scala course. We hope you enjoyed the course and that the material proves useful.

Who this course is for:

Scala developers looking to improve their skills, write libraries and APIs for others

Developers wanting to improve their knowledge of more advanced functional programming concepts

Developers wishing to learn how to save and money by profiling and optimizing applications

Anyone who wants to be able to parse and use external DSLs in Scala
(Buy premium account for maximum speed and resuming ability)