Subscription

Training

Typesafe Together

Training Classes

As your business goes Reactive, a ton of development work lays ahead. Now, more than ever, the knowledge and skills of your staff has a direct impact on the success of your business. Ensure your developers are empowered to become effective change agents with training from Typesafe.

Typesafe instructor-led training is available as an additional fee for Typesafe Together members. Our hands-on, lab-based approach to learning keeps students at their keyboard for as much as 80% of a course and maximizes the retention of skills they'll use every day.

Typesafe Together - Training Classes

Apache Spark: An Introductory Workshop for Developers

This two-day workshop lead by Dean Wampler, Ph.D. is designed to teach developers how to implement data analytics using Apache Spark for Reactive applications. Apache Spark is a distributed computing system written in Scala and developed initially as a UC Berkeley research project for distributed data programming. It has grown in capabilities and it recently became a top-level Apache project. In this workshop, developers will use hands-on exercises to learn the principles of Spark programming and idioms for specific problems, such as event stream processing, SQL-based analysis on structured data in files, integration with Reactive frameworks like Akka, as well as Hadoop and related tools, and advanced analytics, such as machine learning and graph algorithms.

After participating in this workshop you should

Understand how Spark works

Understand how to use the Spark Scala API to implement various data analytics algorithms for offline ( batch-mode) and event-streaming applications

Understand how to test and deploy Spark applications

Understand the basics of integrating Spark with Akka and Hadoop

Program

Introduction - Why Spark

Learning Spark's Core API using real-world problems and data sets:

Reading and writing data files

Building data transformation pipelines

Using explicit parallelism

Working with structured and unstructured data

Processing events with Spark Streaming:

Working with time slices of events

Working with moving windows of time slices

Integrating SQL using SparkSQL:

SQL queries on structured data, including JSON

Integrating SQL queries with Spark's Core API - the best of both worlds

Fast Track to Scala

Summary

This course is designed to give experienced developers the know-how to confidently start programming in Scala. The course
ensures you will have a solid understanding of the fundamentals of the language, the tooling and the
development process as well as a good appreciation of the more advanced features. If you already have
Scala programming experience, then this course could be a useful refresher, yet no previous knowledge of
Scala is assumed.

Duration

2 days

Objectives

After having participated in this course you should:

Be a competent user of Scala

Know and be able to apply the functional programming style in Scala

Know how to use fundamental Scala tools

Be confident to start using Scala in production environments

Audience

Application developers wishing to learn Scala

Prerequisites

Students taking this course should have:

Experience with Java (preferred) or another object-oriented language

No previous Scala knowledge is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Advanced Scala

Summary

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.

Duration

2 days

Objectives

After having participated in this course you should:

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

Audience

Application or library developers wishing to master Scala

Prerequisites

Students taking this course should have:

Full understanding of all concepts taught in Fast Track to Scala

At least 2 months of full-time hands-on development with Scala

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Fast Track to Akka with Scala

This two-day course introduces experienced application developers to the reactive Akka toolkit and runtime
and the methodologies that enable the creation of real-world actor-based systems in Scala on a single JVM.
This course has extensive hands-on work and successive exercises build upon prior lessons learned
to produce a fully functional application that is both event-driven and resilient by
the conclusion of the course.

Prerequisites:
Code examples and exercises will be written in Scala, so a basic knowledge of Scala as covered in the "Fast Track to Scala" course is required. Students should bring their own laptop with Java 6 or higher installed.

After having participated in this course you should

know how to design scalable and fault-tolerant applications using Akka's actors

know how to configure, test and tune Akka applications

know best practices for designing asynchronous, event-driven systems using Akka

be confident to start using Akka in production systems

Program

Advanced Akka with Scala

This is a two-day advanced course on building distributed reactive applications using Akka and Scala.
It is intended for developers who already have a strong understanding of the fundamentals of
building applications using Akka and Scala on a single JVM and are looking to learn how to scale out
to multiple nodes and 3rd party systems.
This course has extensive hands-on work and successive exercises build upon prior lessons learned
to produce a fully functional application that is both event-driven and resilient by
the conclusion of the course.

Prerequisites:
A basic knowledge of Akka as covered in the "Fast Track with Akka and Scala"
course as well as a basic knowledge of Scala as covered in the "Fast Track to Scala" course with at least two months practical experience in developing with Akka and Scala.
Students should bring their own laptop with Java 6 or higher installed.

After having participated in this course you should

know how to use Akka's remoting and clustering features

understand how to integrate 3rd party systems

know how to create a RESTful HTTP layer

be confident to start using Akka on large scale

Program

Fast Track to Play with Scala

Summary

This course introduces experienced web-developers to the design-patterns and methodology
essential to building reactive, scalable web applications with Play Framework and Scala.
In practical coding exercises you will learn how to build multiple Play applications which interact with one another
via HTTP REST endpoints.

Duration

2 days

Objectives

After having participated in this course you should:

Know how to build fully fledged web applications using Play

Know best practices for developing web applications using Play

Be confident to start using Scala and Play applications in production

Audience

Application developers wishing to learn Play with Scala

Prerequisites

Students taking this course should have:

Basic knowledge of Scala

No previous knowledge with Play is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Fast Track to Play with Java

Summary

This course introduces experienced web-developers to the design-patterns and methodology
essential to building reactive, scalable web applications with Play Framework and Java.
In practical coding exercises you will learn how to build multiple Play applications which interact with one another
via HTTP REST endpoints.

Duration

2 days

Objectives

After having participated in this course you should:

Know how to build fully fledged web applications using Play

Know best practices for developing web applications using Play

Be confident to start using Java and Play applications in production

Audience

Application developers wishing to learn Play with Java

Prerequisites

Students taking this course should have:

Basic knowledge of Java

No previous knowledge with Play is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Global Partner

Training Classes

Typesafe partners possess vast, real-world knowledge of Typesafe technologies and offer a robust training curriculum of introductory and advanced courses for Play Framework, Akka and Scala. Scroll through the listing below to find a class that’s right for you or contact our partners directly for details.

Summary

This course is designed to give experienced developers the know-how to confidently start programming in Scala. The course
ensures you will have a solid understanding of the fundamentals of the language, the tooling and the
development process as well as a good appreciation of the more advanced features. If you already have
Scala programming experience, then this course could be a useful refresher, yet no previous knowledge of
Scala is assumed.

Duration

2 days

Objectives

After having participated in this course you should:

Be a competent user of Scala

Know and be able to apply the functional programming style in Scala

Know how to use fundamental Scala tools

Be confident to start using Scala in production environments

Audience

Application developers wishing to learn Scala

Prerequisites

Students taking this course should have:

Experience with Java (preferred) or another object-oriented language

No previous Scala knowledge is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Summary

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.

Duration

2 days

Objectives

After having participated in this course you should:

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

Audience

Application or library developers wishing to master Scala

Prerequisites

Students taking this course should have:

Full understanding of all concepts taught in Fast Track to Scala

At least 2 months of full-time hands-on development with Scala

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

This two-day course introduces experienced application developers to the reactive Akka toolkit and runtime
and the methodologies that enable the creation of real-world actor-based systems in Scala on a single JVM.
This course has extensive hands-on work and successive exercises build upon prior lessons learned
to produce a fully functional application that is both event-driven and resilient by
the conclusion of the course.

Prerequisites:
Code examples and exercises will be written in Scala, so a basic knowledge of Scala as covered in the "Fast Track to Scala" course is required. Students should bring their own laptop with Java 6 or higher installed.

After having participated in this course you should

know how to design scalable and fault-tolerant applications using Akka's actors

know how to configure, test and tune Akka applications

know best practices for designing asynchronous, event-driven systems using Akka

be confident to start using Akka in production systems

Program

Overview

Actor Basics

Testing Actors

Actor Lifecycle

Fault Tolerance

Routers and Dispatchers

Modifying Actor Behavior

Ask Pattern

Akka Extensions

FSM

Advanced Akka with Scala

Next Sessions:

This is a two-day advanced course on building distributed reactive applications using Akka and Scala.
It is intended for developers who already have a strong understanding of the fundamentals of
building applications using Akka and Scala on a single JVM and are looking to learn how to scale out
to multiple nodes and 3rd party systems.
This course has extensive hands-on work and successive exercises build upon prior lessons learned
to produce a fully functional application that is both event-driven and resilient by
the conclusion of the course.

Prerequisites:
A basic knowledge of Akka as covered in the "Fast Track with Akka and Scala"
course as well as a basic knowledge of Scala as covered in the "Fast Track to Scala" course with at least two months practical experience in developing with Akka and Scala.
Students should bring their own laptop with Java 6 or higher installed.

Summary

This course introduces experienced web-developers to the design-patterns and methodology
essential to building reactive, scalable web applications with Play Framework and Scala.
In practical coding exercises you will learn how to build multiple Play applications which interact with one another
via HTTP REST endpoints.

Duration

2 days

Objectives

After having participated in this course you should:

Know how to build fully fledged web applications using Play

Know best practices for developing web applications using Play

Be confident to start using Scala and Play applications in production

Audience

Application developers wishing to learn Play with Scala

Prerequisites

Students taking this course should have:

Basic knowledge of Scala

No previous knowledge with Play is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Fast Track to Play with Java

Next Sessions:

Check back later for new classes.

Summary

This course introduces experienced web-developers to the design-patterns and methodology
essential to building reactive, scalable web applications with Play Framework and Java.
In practical coding exercises you will learn how to build multiple Play applications which interact with one another
via HTTP REST endpoints.

Duration

2 days

Objectives

After having participated in this course you should:

Know how to build fully fledged web applications using Play

Know best practices for developing web applications using Play

Be confident to start using Java and Play applications in production

Audience

Application developers wishing to learn Play with Java

Prerequisites

Students taking this course should have:

Basic knowledge of Java

No previous knowledge with Play is required

Setup Requirements

To complete the exercises in this course, students need to install the following before class:

Additional Products and Services

Typesafe Project Success Subscription

The Typesafe Together annual subscription program is designed to complement the Typesafe Reactive Platform and Apache Spark with the key elements you need to succeed: full lifecycle support, SLAs, certified builds, commercial licenses, ongoing knowledge transfer, and developer recruitment and retention.

Typesafe Consulting Services

Typesafe consulting services are designed ensure project success by focusing on areas where our expertise can offer you the highest value: architecture and codes reviews to ensure your development efforts are on the right track, and production readiness and periodic health checks to keep applications tuned for continuous success. Consulting services are available as an additional fee for Typesafe Together members.

Typesafe Together Project Success Training Classes

Our Customers Are Hiring!

Check out Scala, Akka and Play dev positions from select Typesafe customers!

"Our Customers are Hiring" is part of the Typesafe Together Subscription program. To submit a job listing please login to the Typesafe Customer Portal where you can complete & post your job description details.

Have a Question?

From the blog

The Typesafe crew is thrilled to share that Scala Days SF was just fantastic. A big thanks to all who attended. We were wowed by our awesome keynoters, speakers and volunteer staff, and it was great to feel the excitement and energy at the beautiful Fort Mason.

After an inspiring Scala Days (the next one is in Amsterdam), it's great to be able to shine some light on technologies dedicated to improving the workday of Scala developers. We recently talked about eight hot technologies that perhaps you didn’t know were built in Scala, and in the spirit of that we’re happy to highlight Takipi, a company that's making life for commercial Scala apps better. Branching out from Java, Takipi now helps Scala developers understand when and why their code breaks in production. For more details, we asked Josh Dreyfuss, who recently joined the Takipi team, to take us through it all. -Oliver White, Typesafe, Inc.