Elixir Courses

I am to get a team leveled up in Elixir. This means that my courses are designed to focus on the hands on with lots of hands on exercises, pair programming and more.

Courses are designed to be taught in person at your office for up to 16 class members. You should expect to provide a teaching room with a Screen, whiteboard, markers, wifi etc. Courses will normally run from 9:30 am to about 5:00 pm with breaks for lunch and every few hours.

Courses can be combined and customized if desired.

Coures can be taught (almost) anywhere in the world

Introduction to Elixir (4 Days)

A basic introduction to Elixir and the Phoenix framework. Students should have prior programming experience in some language such as Ruby, PHP, C# or Java but are assumed to have no experience with Functional Programming, Erlang or Elixir. At the end of the course students will be able to build working web applications in Elixir and have a fundamental understanding of Concurrency, OTP and the Phoenix web framework

Key Elements of the course

  • Elixir Syntax
  • Using the Elixir REPL
  • Elixir Data Structures
  • Elixir Concurrency
  • Introduction to GenServers
  • Supervisors and Applications
  • Using Phoenix

Advanced Elixir and OTP (3 Days)

Learn some of the more advanced features of Elixir including how to better use supervisors, GenServers, Finite State Machines and more. This will lay the foundation for how to Architect Elixir systems for scale and fault tolerance. A large part of this course will focus on Guarantees that OTP can provide and how systems deal with failure.

Key Elements

  • GenServers
  • Supervisors
  • Applications
  • Configuring Applications
  • Releases
  • AppUps

This course assumes prior Elixir knowledge

Testing Elixir with ExUnit and PropCheck (4 Days)

Testing and validating your code is as important in Elixir as it is in any other language. This course will give students the skills to test their code from start to finish. I take a 3 tiered approach tog testing. First I will introduce ExUnit and unit testing.

Then the course will look at Dialyzer and Xref which are tools that can often find bugs in code with no additional tests but simply looking for issues in the code itself.

Finally I will cover Property Based Testing with PropCheck this will show how to test functions as well as complex systems using PropCheck.

This course assumes prior Elixir knowledge

Distributed Systems with Riak Core (2 Days)

How to develop applications with the Riak Core framework. Go beyond standard Distributed Elixir to build redundant systems that can run for years without interruption. Students will learn how to handle conflicting data, node failure and recovery, node migration and other aspects of building a serious fault tolerant system.

Riak Core is the distribution component of the Riak Datastore

Elixir Deployment & DevOps (2 Days)

This course is designed to show how to deploy, upgrade, maintain and monitor Elixir and Erlang systems. Students will learn to create releases of Elixir and Erlang software, push those releases to production systems, upgrade them on the fly and monitor and debug issues that may come up

This course assumes prior Elixir knowledge

Types in Elixir (2 Days)

If you are coming to Elixir from other languages where you have an OO type system like Java you may feel a bit disoriented when you come to Elixir.

However Elixir has some types and they are worth looking at. This course will dive into how they can be used for validating code both at in testing with Dialyzer and other tools as well as at runtime with pattern matching.

This course assumes prior Elixir knowledge

Workshop (2-4 Days)

For people who have some Elixir Experience but would like to have an intensive development session with someone who can jump in to pair with any developer who might want to have some help. The general idea would be to develop from start to finish a small system that can be deployed at the end of it and provide real value as well as getting the time up to speed on Elixir.

This would make a good follow up to Introduction to Elixir

Phone

+972 54 234 3956

Address

WeWork Gav Yam Negev
Be'er Sheva, 84709
Israel