Advanced Erlang Techniques 6 - 7 September

Trainer: Robert Virding

2 Days Course

Target Audience: Software Developers & Engineers
Prerequisites:

  • Knowledge and experience of Erlang, at least equivalent to Basic Erlang or Complete Erlang courses.
  • Knowledge of OTP is beneficial but not strictly necessary
  • Experience with building and maintaining large systems.
     

Objectives:

  • A better understanding of tools for building and maintaining systems
  • Understand the basics of profiling and debugging of running systems

Course Outline:
This two-day course presents some more advanced tools for building and maintaining applications with Erlang. It also gives insight into the tracing tools in the system which allow support engineers to inspect and monitor running systems. The course contains the following topics:-

  • Parse Transforms
  • Profiling
  • Emulator Flags (BEAM introduction)
  • Observer
  • Tracing & Debugging:
  1. Trace BIFs & Match Specifications
  2. The dbg Tool
  3. Recon, Redbug

REGISTER

Phoenix Bootstrap 6-7 September

Trainer: Claudio Ortolina

2-day course

Target Audience: Software Developers and Engineers, with a focus on providing web-based services
Prerequisites:

  • Good programming skills in another language such as Python, node.js, Ruby, or PHP
  • Familiarity with building web services helpful (i.e. REST interfaces)

Objectives:

  • How to use Phoenix for web apps and REST interfaces
  • Basic/sequential Elixir
  • Building, Testing, and Deploying

Course Outline
During the course, students will build an example Phoenix application in order to learn how to build, test, and deploy a website and REST service using this scalable high-performance web framework. The course contains the following topics: 

● Using Mix

● Controllers, Views, Templates, Models (Ecto), and Routes

● Asset Management and static content

● Channels/websockets

● Basic Elixir

● Elixir Shell

● Testing

● Debugging and Troubleshooting

● Operations and Maintenance

● Publishing Releases

REGISTER

Complete OTP 12 - 15 September

Trainer: Robert Virding

4 Days Course 

Target Audience: Software Developers & Engineers
Prerequisites:
Complete Erlang or Basic Erlang, preferably followed by some practical experience

Objectives:

  • Understand the design principles of OTP
  • Understand OTP behaviours
  • Understand OTP System Configuration
  • Awareness of the available OTP applications

Course Outline:
The OTP course covers advanced Erlang features such as design patterns, applications and libraries, giving the participants the ability to develop systems using OTP. The course contains the following topics:

  • Behaviours
  • Generic Servers
  • Finite State Machines
  • Supervisors
  • Event Handlers
  • Applications
  • Building Compliant Processes
  • System Architectures Support Library
  • System Principles & Release Handling
  • Release Upgrade

REGISTER

Elixir/OTP Bootcamp 12-15 September

Trainer: Szymon Mentel

4-Day Course

Target Audience: Software Developers and Engineers, with a focus on backend services
Prerequisites:

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

Objectives:

  • How to use Elixir for backend servers and REST interfaces
  • Basic/Sequential Elixir
  • Concurrent and Parallel programming
  • Distributed Applications
  • Building, Testing, and Deploying 

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 shows the right way to write concurrent applications that will scale by using OTP Behaviours. At the completion of the courses, students will know how to build, test, and deploy a concurrent, distributed backend service applications. The course contains the following topics:

  • Background Elixir/Erlang
  • Basic Elixir
  • Elixir Shell
  • Sequential Elixir
  • Concurrent Elixir
  • BEAM (Erlang virtual machine) internals
  • Process Design Patterns
  • Process Error Handling
  • Modules & Processes
  • Data Structures (Maps. Structs, Records, Binaries)
  • List comprehension
  • Funs and High-Order Functions
  • Macros & Language Features
  • Code Upgrading
  • Distributed Programming
  • Behaviours
  • Generic Servers
  • Supervisors
  • Phoenix for REST
  • Using Mix

REGISTER