Devon Estes

Maintainer of Benchee & Elixir track on exercism.io

Devon is a freelance software engineer focusing on Ruby and Elixir. He is also passionate about open source, and is a maintainer of Benchee and the Elixir track on exercism.io. Away from the computer he's a husband, father and chess player.

Past Activities

Devon Estes
Code BEAM Lite Berlin
11 Oct 2019
14.40 - 15.00

Comparing common concurrency patterns in Elixir and Erlang

Robust concurrency support is one of Erlang and Elixir's key features, but there are many ways to actually implement concurrent computation in your applications. In this talk we'll examine two common patterns of concurrent computation, exploring how each pattern works in detail and discussing their advantages and disadvantages.


Attendees will gain a deeper understanding of the two patterns for concurrent computation that Devon will be presenting, and also a deeper understanding of how to think about designing for concurrency in BEAM applications. There are wonderful built-in building blocks (GenServer, Task, gen_statem), but they still need careful consideration before being used in order to get the most out of them!


This talk is for anyone who is actively exploring concurrency models, and is most suited to those who have some idea of how OTP works already.

Devon Estes
Code BEAM Lite Munich 2018
07 Dec 2018
10.00 - 10.40

Inside memory management on the BEAM

The BEAM was designed to run on 1980's hardware and never crash. How does it manage to run for so long on machines with such little memory and still have such good soft-real time performance? This talk will explore the answer by looking at the basics of how the BEAM handles memory in processes and a bit about its very special garbage collection algorithm.


To learn a few new concepts, like what a generational garbage collector is, what a heap is, and what a stack is. For more advanced developers, we're going to use those basics to show things like how you can monitor your application's memory usage through hooking into the garbage collection events emitted by the BEAM tracing module, how this might affect optimizing your application if you're in a low-memory environment (like IOT devices), and some more resources for further learning.