¡Viva La Evolución! Replicating Life with OTP
Tutorial: Life with Elixir/OTP: A Guide for Elixir for Erlangers

Johnny Winn
Elixir Fountain Host

What if we could simulate life? What if we could watch the evolution of a million processes at once, with the strong surviving and passing on their traits?

It all starts with a population seed. Each organism (represented by a spawned process) will live, eat, breed, and eventually die. These organisms will live out their simple lives with a handful of modeled behaviors. Whatever happens in one generation affects all the future ones.

These complex worlds can easily unfold with the help of Elixir/OTP. In this talk, we will seed a population and then simulate the evolutionary process, while OTP Supervisors, Servers, and Events are utilized to manage the concurrent life processes. Essentially, we'll replicate the changing world in an OTP Petri dish. ¡Viva La Evolución!

Talk objectives:

Show OTP in action to replicate evolution in organisms and display those "living" organisms in a browser using elm.

Target audience:

Anyone interested in process management, OTP, elm, and of course genetics. 


Elixir was not the beginning, it was an evolution in the BEAM ecosystem. Many of the benefits that Elixir leverages come straight from the Erlang language but where does one stop and the other begin? Can we trace back through to see the sometimes subtle difference between the two? Can we find the genetic history to some of the questions we have about Elixir’s implementations? How are these differences conveyed in OTP? What better way to explore the evolutionary changes between the languages than an interactive exploration of genetics via OTP. 

What there is to explore:

  • Starting out with the subtle difference between the language’s syntax 
  • Learn the origins of common confusion, i.e. number lists
  • How does the interoperability work between Elixir & Erlang
  • The emergence of macros in Elixir and the effects on OTP
  • Avoiding common missteps in implementation and OTP
  • Construct a genetic algorithm to test fitness in simulated life
  • Explore OTP’s Elixir evolution by replicating life with processes
  • Testing out life with Elixir

Learning the evolution of the Elixir language will strengthen your skills and change the way you think about solving your everyday problems.

Erlanger interested in Elixir or Elixirists interested in learning more about Erlang and OTP

Join me in this fun hands-on scientific exploration and build along as we replicate life with Elixir/OTP. This isn’t any ordinary workshop, it’s evolved!

The renaissance man from Jacksonville, Johnny embarked on his computing curiosity during the eighties on a Commodore 64. However the road leading toward software craftsmanship has diverged down many paths. From musician to electrical engineer, chef to software developer, rugby player to local politician, the twist and turns have provided a wide range of experiences that have helped to shape him.

GitHub: nurugger07

Twitter: @johnny_rugger

Back to conference page