Erlang Programming Course | Concurrent Asynchronous Intuitive Programming with Erlang

Erlang Programming Course Description

Erlang is about making software systems that are fault tolerant used to build massively scalable soft real-time systems with requirements on high availability.

The course will teach you the fundamentals to advance concepts of Erlang. The course contains all the Erlang basics such as sequential and concurrent programming, along side error handling. The Erlang development environment is presented, with a special emphasis on the Erlang mode for Emacs alongside the major debugging tools. Good and bad programming practices are discussed, 
as are tools used to profile the system. OTP design principles and concepts are sneaked into the material as well as the exercises.

Erlang Programming Course Learning Outcomes

  • 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.

Erlang Training Course Suggested Audience

This course is designed for developers who want to learn fault tolerant programming with Erlang. Suggested attendees based on our past programs are:
  • Developers
  • Architects
  • IT Consultants

Erlang Programming Course Duration

  • Open-House F2F (Public): 2 days
  • In-House F2F (Private): 3 days, for commercials please send us an email with group size to

Erlang Programming course - Prerequisites

As a pre-requisites, you need to have good programming skills in another language.

Erlang programming workshop course outline includes:

1. Introduction 
  • Introduction to the software needs of telecom control systems
  • History of Erlang and its features

2. Basic Erlang 
  • Erlang data types and pattern matching.
  • Functions, modules, and BIFs.
  • Erlang shell, shell commands, Emacs and its Erlang mode.
  • Exercises

3. Sequential Programming 
  • Conditional evaluations, guards, and scope of variables.
  • Recursion, recursive patterns, tail recursion, and space saving optimizations.
  • Libraries, library manual pages, possible run time errors and debugger demonstration.
  • Exercises 

4. Concurrent Programming 
  • Creation of processes and their life span.
  • Sending and receiving messages, selective reception, and passing data in the messages.
  • Uses of time outs and registering processes, and generic process code structure.
  • Demonstration of the Process Manager tool.
  • Exercises 

5. Process Design Patterns 
  • Concept of process patterns
  • OTP behaviors.
  • Example of a client-server system,
  • Finite state machines and event handlers.
  • Synchronous versus asynchronous message passing. 

6. Process Error Handling 
  • Error handling mechanisms.
  • Process links, exit signals, and propagation semantics.

7. Code Updating 
  • Software upgrade during run time.
  • Error handler, code server and code search paths (.erlang file) 

8. ETS tables 
  • Introduction to the Erlang Term Storage.
  • Examples on DO’s and DON’T’s ETS tables. 

9. Distributed Programming 
  • Introduction to the requirements of distributed systems
  • Distribution syntax and semantics
  • BIFs and the net kernel. 

10. Ports and Sockets
  • Introduction of the mechanisms of ERLANG.
  • Ports, for external communication
  • Sockets, for communication on IP networks.
  • Difference between TCP and UDP
Keny White


Keny White is Professor of the Department of Computer Science at Boston University, where he has been since 2004. He also currently serves as Chief Scientist of Guavus, Inc. During 2003-2004 he was a Visiting Associate Professor at the Laboratoire d'Infomatique de Paris VI (LIP6). He received a B.S. from Cornell University in 1992, and an M.S. from the State University of New York at Buffalo.


After working as a software developer and contractor for over 8 years for a whole bunch of companies including ABX, Proit, SACC and AT&T in the US, He decided to work full-time as a private software trainer. He received his Ph.D. in Computer Science from the University of Rochester in 2001. "What I teach varies from beginner to advanced and from what I have seen, anybody can learn and grow from my courses".


Average Rating

1 rating

Detailed Rating

5 stars
4 stars
3 stars
2 stars
1 star

    This is great

    I really love the course editor in LearnPress. It is never easier when creating courses, lessons, quizzes with this one. It's the most useful LMS WordPress plugin I have ever used. Thank a lot! Testing quiz is funny, I like the sorting choice question type most.