Training:
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
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
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
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 servicesCOURSE 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
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.
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.