BEAM VM Under the Hood

  • Expertise
  • Target audience The course is aimed at experienced developers and devops engineers, helping them pre-empt and address behaviour which arise as the result of VM specific settings, be it disruption of soft real time properties as a result of garbage collection or bottlenecks in the scheduler.
  • Duration 2 half days
  • Prerequisites
    • Experience in developing and supporting languages running on the Beam, including Erlang and Elixir

Everything you wanted to know about the BEAM but were afraid to ask!

Through examples and hands on exercises, we will showcase how to manage the BEAM VM in operational environments, optimizing for memory utilisation and performance when using Erlang or Elixir.


Intro to the BEAM – highlights of the BEAM Virtual Machine, the features which make it stand out in comparison to other VMs.

Processes under the hood – how memory is allocated, managed and garbage collected.

The Process Scheduler – how the schedulers works, how it scales on multi-core architectures and what its limitations are.

Memory Management – different memory types including system, atom, binary, code and ets tables.

Tweaking and fine-tuning – tweaks and possible fine-tuning

Dmytro Lytovchenko
Senior Developer at Erlang Solutions

Dmytro graduated in 2002 from Cherkasy State University in Ukraine. He has worked as a Python and C++ backend developer since 2009, developed games for Windows and macOS in C++ and Python and entered the world of Erlang in 2011. He has also translated "Learn you some Erlang" and Francesco Cesarini's "Scalability" book to Russian for a Russian publisher. Dmytro is currently working as a Senior Developer at Erlang Solutions and often speaks at meet-ups and conferences. As a hobby, he works on type correctness and developer tools for Erlang.

Looking for bespoke
corporate training?

Contact us about how we can tailor a course for the needs of your team.