<

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

Upcoming Activities

Dmytro Lytovchenko
Code BEAM STO V
Tutorial/ 09 Sep 2020
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.

Dmytro Lytovchenko
Code BEAM STO V

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

Past Activities

Dmytro Lytovchenko
Code BEAM SF
Tutorial/ 04 Mar 2020
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.

Dmytro Lytovchenko
Code BEAM STO 2018
Training/ 28 May 2018
09.00 - 18.00

BASIC ERLANG

OBJECTIVES

  • Understanding of the basics of Erlang
  • Read/Write/Design Erlang Programs
  • Provides basics needed to attend the OTP course Course

OUTLINE

Basic Erlang is a three-day introductory course, providing most pre-requisites to attend the OTP 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
Dmytro Lytovchenko
Code BEAM SF
05 Mar 2020
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

Dmytro Lytovchenko
Code BEAM STO 2018
Training/ 28 May 2018
13.38 - 13.38

COMPLETE ERLANG

OBJECTIVES

  • Understanding of the basics of Erlang
  • Read/Write/Design Erlang Programs
  • Provides basics needed to attend the OTP course
  • Understand how Erlang interacts with the development environment
  • Usage of the most common development tools
  • Good design practice 

OUTLINE

The Complete Erlang course is the combination of Basic Erlang (28-30 May) followed by Applied Erlang (4-5 June)

Dmytro Lytovchenko
Code BEAM STO 2019
17 May 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.