Dmytro Lytovchenko
Senior developer at Erlang Solutions, refactoring terrible software to be pretty and readable
Erlang and C++ professional, Rust, C# and Python enthusiast, 9 years of Erlang experience, 20+ years of C and C++.
Past Activities
Code BEAM V Europe
09.30 - 17.30
BEAM VM under the Hood
Everything you wanted to know about the BEAM but were too afraid to ask.
Join us for a guide for operations and development teams. Through examples and hands-on exercises, we will showcase how to manage the BEAM VM in operational environments, optimising for memory utilisation and performance when using Erlang or Elixir.
OBJECTIVES
Understand how the BEAM works under the hood Fine-tune it and optimise its settings for throughput and memory use.
PREREQUISITES
Experience in developing and supporting languages running on the BEAM including Erlang and Elixir.
TARGET AUDIENCE
The course is aimed at experienced developers and devops engineers, helping them pre-empt and address behaviours 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.
COURSE OUTLINE
Introduction to the BEAM
The highlights of the BEAM Virtual Machine, highlighting the features which make it stand out in comparison to other VMs.
Processes under the hood
Explore at processes, how memory is allocated, managed and garbage collected. We look at some of the bottlenecks in the BEAM caused by concurrency, describe how they manifest themselves, and how to avoid them.
The process scheduler
Understand how the schedulers work, how it scales on multi-core architectures and what its limitations are. We cover how the run queues can be monitored and manipulated, and how process priorities can backfire.
Memory management
In this section, we look at different memory types including system, atom, binary, code and ets tables. We will cover how (and why) you should monitor memory, and how issues can arise. We will also cover how the garbage collector works, focusing if, and when optimizations are necessary.
Tweaking and fine-tuning
How can the BEAM VM be tweaked and what possible areas for fine-tuning are available to you? We'll look at some of the most obscure flags which can come in hand, allowing for specific optimisations on a VM level, be it to increase I/O or throughput in virtualised environments.
Code BEAM America 2021
09.00 - 17.00
The BEAM VM under the hood
A guide for operations and development teams 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.
OBJECTIVES
Understand how the BEAM works under the hood Fine-tune it and optimize its settings for throughput and memory use.
PREREQUISITES
Experience in developing and supporting languages running on the BEAM including Erlang and Elixir.
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.
COURSE OUTLINE
Intro to the BEAM
The highlights of the BEAM Virtual Machine, highlighting the features which make it stand out in comparison to other VMs.
Processes under the hood
Explore at processes, how memory is allocated, managed and garbage collected. We look at some of the bottlenecks in the BEAM caused by concurrency, describe how they manifest themselves, and how to avoid them.
The Process Scheduler
Understand how the schedulers work, how it scales on multi-core architectures and what its limitations are. We cover how the run queues can be monitored and manipulated, and how process priorities can backfire.
Memory Management
In this section, we look at different memory types including system, atom, binary, code and ets tables. We will cover how (and why) you should monitor memory, and how issues can arise. We will also cover how the garbage collector works, focusing if, and when optimizations are necessary.
Tweaking and fine-tuning
How can the BEAM VM be tweaked and what possible areas for fine-tuning are available to you? We'll look at some of the most obscure flags which can come in hand, allowing for specific optimisations on a VM level, be it to increase I/O or throughput in virtualized environments.
Code BEAM SF
09.00 - 17.00
The BEAM VM under the hood
A guide for operations and development teams 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.
OBJECTIVES
Understand how the BEAM works under the hood Fine-tune it and optimize its settings for throughput and memory use.
PREREQUISITES
Experience in developing and supporting languages running on the BEAM including Erlang and Elixir.
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.
COURSE OUTLINE
Intro to the BEAM
The highlights of the BEAM Virtual Machine, highlighting the features which make it stand out in comparison to other VMs.
Processes under the hood
Explore at processes, how memory is allocated, managed and garbage collected. We look at some of the bottlenecks in the BEAM caused by concurrency, describe how they manifest themselves, and how to avoid them.
The Process Scheduler
Understand how the schedulers work, how it scales on multi-core architectures and what its limitations are. We cover how the run queues can be monitored and manipulated, and how process priorities can backfire.
Memory Management
In this section, we look at different memory types including system, atom, binary, code and ets tables. We will cover how (and why) you should monitor memory, and how issues can arise. We will also cover how the garbage collector works, focusing if, and when optimizations are necessary.
Tweaking and fine-tuning
How can the BEAM VM be tweaked and what possible areas for fine-tuning are available to you? We'll look at some of the most obscure flags which can come in hand, allowing for specific optimisations on a VM level, be it to increase I/O or throughput in virtualized environments.
Code BEAM STO V
09.00 - 17.00
BEAM VM under the Hood
Everything you wanted to know about the BEAM but were too afraid to ask.
Join us for a guide for operations and development teams. Through examples and hands-on exercises, we will showcase how to manage the BEAM VM in operational environments, optimising for memory utilisation and performance when using Erlang or Elixir.
OBJECTIVES
Understand how the BEAM works under the hood Fine-tune it and optimise its settings for throughput and memory use.
PREREQUISITES
Experience in developing and supporting languages running on the BEAM including Erlang and Elixir.
TARGET AUDIENCE
The course is aimed at experienced developers and devops engineers, helping them pre-empt and address behaviours 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.
COURSE OUTLINE
Introduction to the BEAM
The highlights of the BEAM Virtual Machine, highlighting the features which make it stand out in comparison to other VMs.
Processes under the hood
Explore at processes, how memory is allocated, managed and garbage collected. We look at some of the bottlenecks in the BEAM caused by concurrency, describe how they manifest themselves, and how to avoid them.
The process scheduler
Understand how the schedulers work, how it scales on multi-core architectures and what its limitations are. We cover how the run queues can be monitored and manipulated, and how process priorities can backfire.
Memory management
In this section, we look at different memory types including system, atom, binary, code and ets tables. We will cover how (and why) you should monitor memory, and how issues can arise. We will also cover how the garbage collector works, focusing if, and when optimizations are necessary.
Tweaking and fine-tuning
How can the BEAM VM be tweaked and what possible areas for fine-tuning are available to you? We'll look at some of the most obscure flags which can come in hand, allowing for specific optimisations on a VM level, be it to increase I/O or throughput in virtualised environments.
Code BEAM America 2021
12.25 - 13.05
typed_erlc: Prototype of a safe and fast compiler for Erlang
Presenting a new compiler, which consumes classic Erlang syntax and outputs standard BEAM files. Explaining reasoning behind the project and what problems it is designed to solve, and what problems it may potentially solve in the future. Comparing to other compilers and other languages on the BEAM. This opens possibilities for new safety and style checks, new optimizations, new code generation backends (did i hear someone say WASM?), etc.
OBJECTIVES
Show the project in the making. Explain why it exists and how it is good for an average presentation listener. Explain how it will plug in into their tool chain and will help improve their code quality.
AUDIENCE
Erlang developers, mostly working/maintaining heaps of legacy code.
Code Mesh V
11.30 - 12.10
Hitchhiker's Tour of the BEAM
The BEAM is the standard virtual machine implementation in use by the Erlang Ecosystem, powering Erlang, Elixir and 30 other languages which run on it. It was specially designed just to run Erlang, but as we know, that has changed. But what is the BEAM and what makes it special? We will have a quick tour of the BEAM, visiting major highlights including concurrency, resilience, and its soft real time properties, understanding how it all looks internally and functions. There will be no need for a towel on this short tour.
AUDIENCE
Developers and system architects who want to get a better understanding of how their applications will run.
Code BEAM STO V
14.20 - 15.00
Monkey, take the wheel
The talk briefly explains Daniel Kahneman's fast and slow thinkers concept, where every person can operate in easy-going and cheap mode, making mistakes and enjoying the distractions, while harder tasks require switching to slow and expensive thinker mode where the smart decisions and judgements can be made, at the cost of getting tired real quick.
The talk goes in detail how it is beneficial to accept your human nature, prone to errors, and instead trust your Erlang & Elixir language, available tools, and tests more than you would trust yourself.
Letting your inner monkey drive the development and allowing it to make mistakes on the way is an acceptable and winning strategy. Highlighting the importance of human in, sometimes idealized, world of the software development, while the human is prone to errors.
THIS TALK IN THREE WORDS
Human
Trust
Monkey
OBJECTIVES
Highlighting the role of human nature prone to errors in software development and how the available tools and programming techniques can mitigate these risks allowing to get more reliable results.
TARGET AUDIENCE
Software developers
Code BEAM SF
16.20 - 17.05
Monkey, take the wheel
The talk briefly explains Daniel Kahneman's fast and slow thinkers concept, where every person can operate in easy-going and cheap mode, making mistakes and enjoying the distractions, while harder tasks require switching to slow and expensive thinker mode where the smart decisions and judgements can be made, at the cost of getting tired real quick.
The talk goes in detail how it is beneficial to accept your human nature, prone to errors, and instead trust your Erlang & Elixir language, available tools, and tests more than you would trust yourself.
Letting your inner monkey drive the development and allowing it to make mistakes on the way is an acceptable and winning strategy. Highlighting the importance of human in, sometimes idealized, world of the software development, while the human is prone to errors.
THIS TALK IN THREE WORDS
Human
Trust
Monkey
OBJECTIVES
Highlighting the role of human nature prone to errors in software development and how the available tools and programming techniques can mitigate these risks allowing to get more reliable results.
TARGET AUDIENCE
Software developers
Code BEAM STO 2019
14.30 - 15.15
ErlangRT, a BEAM VM reimplementation in Rust
The time is long overdue to rewrite the technology, which we all use, in a safe and strongly typed language, such as Rust. Started with a small mailing list discussion in September 2017, the implementation is marching towards having a working Erlang shell and running Common Test suites from Erlang OTP source.
OBJECTIVES
Presenting a project to advanced audience, sparking a discussion and collecting the feedback.
TARGET AUDIENCE
Intermediate/pro BEAM users and enthusiasts, who are interested in seeing another BEAM virtual machine in works.