Training:

KUNG FU ERLANG: from zero to hero

13-15 May 2019
09:00 - 17:00
Robert Virding

Use Erlang's strengths to create software that is fault-tolerant, scalable and deployable in a distributed network.

 

OBJECTIVES

  • Understanding of the basics of Erlang
  • Read/Write/Design Erlang Programs
  • Provides basics needed to attend the OTP course

 

PREREQUISITES

Good programming skills in another language.

 

TARGET AUDIENCE

Software Developers & Engineers.

COURSE OUTLINE

Basic Erlang is a three-day introductory course.

The course contains the following topics:-

  • Background
  • Basic Erlang
  • Erlang Shell
  • Sequential Erlang
  • Concurrent Erlang
  • Process Design Patterns
  • Process Error Handling
  • Modules & Processes
  • Data Structures
  • Funs and High-Order Functions
  • Macros
  • Distributed Programming

OTP for the seasoned Erlanger

20-22 May 2019
09:00 - 17:00
Robert Virding
Regus Klarabergsgatan 29, Stockholm

You will learn the prevailing Erlang design patterns called OTP behaviours. We will cover Erlang design patterns such as generic behaviours, finite state machines and event handlers. You will also learn how to develop systems using the supervisor and application behaviours patterns, so you can construct maintainable and fault tolerant software. Upon completion of this course, you will be able to extend it all, by devising your very own behaviours.

 

OBJECTIVES

  • Use existing design patterns supported by Erlang and OTP 
  • Apply generic behaviours, finite state machines and event handler patterns
  • Use the supervisor and application behaviours patterns
  • Write your own design patterns.
  • Structure large Erlang based systems

 

PREREQUISITES

Existing experience using sequential and concurrent programming with Erlang on projects.

 

TARGET AUDIENCE

This course is aimed at experienced Erlang software developers and designers who need to understand behaviours.

COURSE OUTLINE

This course introduces the need and advantages of using middleware in the development of massively concurrent, distributed, fault tolerant real time systems in Erlang. It looks at Erlang's evolution, and how it helped form OTP.

Further, this course gives an overview of the components that make up OTP. They are Erlang, a set of behaviours, and rules and design principles to use them. OTP comes with many ready built applications and tools useful for large scale software design.

  • Behaviours
  • Generic servers
  • Finite State Machines
  • Supervisors
  • Event Handlers
  • Applications
  • Special Processes
  • System Principles

ELIXIR BOOTCAMP: from apprentice to alchemist

13-15 May 2019
09:00 - 17:00
Manuel Rubio

OBJECTIVES

  • Basic/Sequential/Concurrent Elixir
  • Parallel programming
  • Building, Documenting and Testing Systems using Mix

 

PREREQUISITES

  • Good programming skills in another language such as Java, Perl, Python, node.js, or Ruby
  • Familiarity with server-side software development helpful

 

TARGET AUDIENCE

Software Developers and Engineers without prior experience in Elixir/Erlang/LFE.

COURSE OUTLINE

Students will start by learning the basics of the Elixir language. Following that, the course turns to concurrency and students will learn the details of writing parallel and concurrent Elixir applications and the underlying concurrency capabilities provided by BEAM (the Erlang virtual machine).

The course contains the following topics:

  • Background Erlang/Elixir
  • Elixir Shell
  • Sequential Elixir
  • Concurrent Elixir
  • Basic Mix
  • Process Design Patterns
  • Process Error Handling
  • System introspection
  • Funs and High-order functions
  • Data structures (Maps, Structs, Binaries, Protocols)
  • List comprehensions
  • Language features 
  • Erlang Term Storage (ETS)
  • Distributed programming

SCALING ELIXIR AND PHOENIX: To millions before breakfast

20-22 May 2019
09:00 - 17:00
Martin Gausby

OBJECTIVES

  • How to organise, grow and maintain an application with multiple responsibilities
  • How to test and statically check an application to minimise integration issues
  • How to integrate resilience patterns to provide partial availability despite outages

 

PREREQUISITES

Prior experience with Elixir and Phoenix (3 to 6 months), familiarity with building web services helpful (i.e. REST interfaces).

 

TARGET AUDIENCE

Software Developers and Engineers, with a focus on providing web-based services

COURSE OUTLINE

Students will go through the analysis and refactor of an existing codebase to improve decoupling, isolation, testability and resilience.

The course will cover the following topics:

  • Approaching an existing codebase (code structure, OTP structure)
  • Basic resilience testing
  • Extracting commands for reusability
  • Type specifications and domain borders
  • Extraction to umbrella layout
  • Effective unit and integration testing
  • Client/Server patterns via adapter
  • OTP and circuit breakers to guarantee availability

ERLANG CERTIFICATION

15-17 May 2019
09:00 - 18:00
CERTIFICATION

OVERVIEW

The Erlang Certificate provides proof that the holder understands the core concepts of the Erlang programming language, and is ready to move on to the more advanced levels of Erlang study and usage.

 

TARGET AUDIENCE

The certification is aimed at people who have completed the five-day “Complete Erlang” course, preferably with practical experience after that.

WHAT YOU NEED TO KNOW

The exam consists of a 90 minute multiple-choice questionnaire.

Dates to be arranged with certification takers on a 1-2-1 basis. We will work with you to ensure that it is as convenient for everyone as possible.

 

OTP CERTIFICATION

15-17 May 2019
09:00 - 18:00
CERTIFICATION

OVERVIEW

The OTP Certificate provides proof that the holder understands the core concepts of Erlang/OTP, and is ready to apply the knowledge to building systems.

 

TARGET AUDIENCE

The certification is aimed at people who have completed the four-day “Complete OTP” course, preferably with practical experience after that.

WHAT YOU NEED TO KNOW

The exam consists of a 90 minute multiple-choice questionnaire.

Dates to be arranged with certification takers on a 1-2-1 basis. We will work with you to ensure that it is as convenient for everyone as possible.