0345 4506120

Lightbend Scala Language - Expert

Would you like to unleash the full power of Scala by learning Scala's advanced features? Find out how to how to apply these and  create well designed libraries or DSLs using proven practices? Join this 3-day Scala - Expert course and learn advanced functional programming with Scala as well as details of the type system, implicits, internal DSLs, Custom Scala Collections and more.

If you already have programming experience with Scala and want to understand its advanced features, this course is for you. It is designed to help developers fully understand topics such as advanced object-functional programming, the power of Scala's type system, implicits, etc. The course also covers how to leverage these features to create well-designed libraries or DSL's utilizing proven best practices.

About the Expert

Trond Bjerkestrand

Trond Bjerkestrand

Trond is an experienced and Lightbend certified Scala and Akka trainer and occasional consultant. He is interested in functional programming, startups and bitcoin and is one of the organisers of the Scala meetup in the french speaking part of Switzerland.

About the Author

Heiko Seeberger

Heiko Seeberger

Heiko Seeberger is Fellow at codecentric, an internationally renowned expert on Scala and Akka and loves Rust almost as much as rock climbing. He has more than 20 years of experience in software engineering, consulting and training.


If you are a developer with at least 3 months Scala programming experience and you would like to learn various advanced features of the Scala programming language and how to apply these to create well designed libraries or DSLs using proven practices, this Advanced Scala is for you!


Learning Objectives

Learn how to:

  • Understand all aspects of the object-functional approach
  • Know and be able to apply advanced features of Scala's type system
  • Fully understand implicits and type classes
  • Be confident about creating libraries and DSLs with Scala



Students taking this course should have:

  • Experience and proficiency in Scala including topics covered in Lightbend Scala Language - Professional
  • At least 2 months of full-time hands-on development with Scala

Bring your own hardware

You are required to bring your own laptop for this Advanced Scala course, with JDK 6 or above installed. A full installation guide for the course software will be provided with your course joining instructions.

Course Content

Recap of important basics

Object-Functional Programming in Depth

-Recursion and tail-recursion -Partial functions and partial function literals -Curried methods, partially applied functions -Lifting methods into functions -Folding

Mastering the Type System

-Scala type hierarchy -Value classes -Type parameters -Variance -Package objects -Lower and upper bounds -(Abstract) Type members -Singleton Types -Type refinements -Static duck-typing -Path-dependent types -Self Types

Explicitly Implicit

-Implicit conversions -Implicit resolution, scopes and precedence -Library extension via implicit (value) classes -Implicit parameters -Implicit Values -Type classes -Implicit parameter chaining -Type class examples in the Scala core library -Type constructors -Context bounds -Type witnesses -Type tags

Domain Specific Languages (DSLs)

-DSL Building blocks: -By-name parameters -Currying -Higher-order functions -Dot-free operator notation -Implicit conversions

-Phantom types -Finite State Machines (FSM)

Scala Futures and Promises

-Execution contexts and Thread Pools -Creating & working with Futures -Futures & Failures - callbacks & recovery -Futures, concurrency & parallelism -Future.sequence/Future.traverse -Creating an already completed Future -Dealing with Future[Option[_]] and for comprehensions -Futures - Do's and Don'ts -Promises

Custom Scala Collections

-Uniform return type principle -Collection Builders -Like traits -Type classes for the tricky cases

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the requested service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.


Our Customers Include