A community of Erlang & Elixir enthusiasts from South Africa 🇿🇦 and the broader African continent 🌍.
What is Elixir?
Elixir is a programming language that runs on the Erlang runtime (also known as BEAM / OTP). It is not the
oldest BEAM language (that would be Erlang), neither is it the youngest (there are
several), but it is the most
fun to work with.
Elixir is used in production in large software systems, e.g. Discord. And the
underlying Erlang runtime
WhatsApp, and a great deal of the infrastructure (switches) that
make up the modern telco networks that we all rely on.
What makes Elixir useful is the underlying Erlang runtime's "let it crash" philosophy, shared by all BEAM
everything is a process,
processes are cheap,
processes are isolated (no shared memory),
and processes can be restarted quickly by other (supervisor) processes, should they fail
The "let it crash" approach gives us a way to build systems that are fault tolerant, without the need to
defensive coding. If a process fails, it fails, but it doesn't bring down the whole system.
Better still... by isolating sequential programs into independent processes, the Erlang runtime makes it
run code concurrently. So the code that was written to run on your own machine can also run efficiently on a
different machine with many more cores, without requiring any changes to your code.
The same mechanisms for distributing work among CPU / GPU cores also helps make it relatively simple to
Elixir applications among different machines, which may be running in very different geographic locations.
In this way, Elixir gives us a way to gradually turn simple programs, running locally, into large,
systems, without forcing us to change our mental models as we scale to bigger workloads.
Want to know more? Have a look below at some of our favourite talks / resources to get some more context around
Elixir & Erlang, and to wrap your head around the underlying "let it crash" philosophy.
October Erlang & Elixir Meetup • Lightning Talks
Tuesday, October 31, 2023 7:00 PM (GMT+2) Ross Shardlow shared a bit about
using credo for static code analysis. He has been using it at Slerp, where the Elixir
team is distributed across diverse timezones. Credo runs in their CI/CD pipeline, checking for several
issues out-of-the-box, but Ross
showed how they went a step further and implemented a set of custom credo checks for things that are
important to them. And surprisingly,
it was a rather simple process, involving a callback function and some pattern matching on the parsed
code that is being checked.
Wilhelm Kirschbaum shared a bit
about the Tree-sitter parsing library, and showed what parsed
elixir code looks like. Lastly, Petrus Janse van Rensburg
highlighted a couple of
fantastic recent conference talks and
showed how simple it can be to render live time-series plots in LiveView using plain SVG and Tailwind
Erlang & Elixir Meetup • RAGE AGAINST THE MACHINE: NEURAL NETWORKS IN ELIXIR
Thursday, September 14, 2023 7:00 PM (GMT+2)
Sean Moriarity joined us for a chat about all things Machine Learning
in Elixir. He's the lead developer of Axon, a library for implementing
Neural Nets on the BEAM, as well as being deeply involved in the
development of Nx (Numerical Elixir), which Axon uses for number
Recently, Sean released a new book in Beta on
PragProg, so if this stuff interests you (and it should), then go grab yourself a copy.
July Erlang & Elixir Meetup • HOW WE USE ELIXIR AT OPENFN
Tuesday, July 11, 2023 7:00 PM (GMT+2)
Stuart Corbishley spoke about some of the interesting projects
he's been working on around the world, together with the OpenFn.org team.
For the past eight years, they have been helping governments and NGOs integrate
disparate software systems, using mostly Elixir (for orchestration) and
accessible low-code solution for solving tech-related problems in the public
sector, often in situations where a modest chunk of code can have an outsized impact on
Erlang & Elixir Meetup • BUILDING AI INTO YOUR ELIXIR APPLICATIONS
Tuesday, May 16, 2023 7:00 PM (GMT+2)
Petrus Janse van Rensburg spoke about the current state of AI tools, and how to think about them in
to what we've had before, e.g. Deep Learning, Machine Learning etc. He showed how he has used text
generation at an e-commerce startup to
generate marketing copy dynamically, and discussed the potential for using it in a few different parts
the UI to affirm a user's purchasing decisions and nudge them to continue further down the checkout
March Erlang & Elixir Meetup • USING PHOENIX & LIVEVIEW FOR FUN
Thursday, March 23, 2023 7:00 PM (GMT+2)
De Wet Blomerus gave a demo of an internal tool that he built for his remote dev team at Salesloft.com,
uses LiveView in ways that would have been difficult to replicate with a different stack.
He shared some insights on how he's been boosting his own career with Phoenix & LiveView, after starting
as a Ruby developer. And he gave plenty of advice for new graduates, embarking on their own careers.
January Erlang & Elixir Meetup
Tuesday, January 24, 2023 7:00 PM(GMT+2)
To kick-off 2023 we had a meet & greet event with a few lightning talks. Rowland shared about an Elixir
library he had been working on for doing optimistic rendering of HTTP requests and Petrus showed how
Erlang & Elixir Meetup • PHOENIX LIVEVIEW: MODERN WEB DEVELOPMENT
WITHOUT THE AGONIZING PAIN
Tuesday, November 29, 2022 7:00 PM (GMT+2)
João Ferreira gave a talk about LiveView, sharing insights from his background as a full-stack
working on the Elixir team at Fly.io, building a platform that lets you publish & host distributed
applications with ease.
Erlang & Elixir Meetup • ARCHITECTURE: MONOLITHS & MICRO SERVICES
Tuesday, October 4, 2022 7:00 PM (GMT+2)
Peter Ullrich shared some of his experience with building both Monoliths and Micro Service architectures
practice, drawign on previous experience at Jobvalley, a small startup and more recent experience at
Remote.com which has a much larger codebase and enginerring team.
He spoke a bit about what it is like building startups, writing books and travelling around Africa.
ElixirZA meetup kickoff with Ben Mmari
Tuesday, August 10, 2021 7:00 PM (GMT+2)
Ben Mmari shared his experience building out a public facing API in Elixir at Zappi. He discussed why he
opted for Elixir, the challenges he faced and the learnings made while making the jump from Ruby to
Some of the resources we've found to be most helpful for wrapping your head around Erlang / Elixir / The
Part 1: The Essentials
Why are we even here?
Saša Jurić • The Soul of Erlang and Elixir
In this seminal talk from 2019, Saša Jurić demonstrates in a practical way how message-passing
concurrency allows us to build rock-solid fault-tolerant systems, that can handle errors and crashes
that would have been very difficult, or impossible, to pre-empt in most other programming languages.
José Valim explains what initially brought him to create Elixir on top of the Erlang Virtaul Machine
(the BEAM), which he started working on in 2012. He shows how it can be used to create a
fault-tolerant, distributed systems, without much of the complexity that one might have expected.
This vintage promotional video, from the 1980's, from Ericsson's Computer Science Laboratory,
introduces Erlang for
the first time. Joe Armstrong, Mike Williams and Robert Virding demonstrates its use for routing
landline phone calls and handling the errors that may be expected to occur.
Joe Armstrong • The Do's and Don'ts of Error Handling
In this classic talk from 2018, Joe Armstrong discusses the problem of writing fault tolerant
software, giving a short overview of his own involvement in writing Erlang. He discusses the
implications of message-passing concurrency and the elegant architectural design solution of just
letting things crash (when they are running in independent processes) to make it easy to reason
about errors and their implications in our code.
Written late in his career, this 2003 thesis can be seen as Joe Armstrong's treatise on the problem
of Fault-tolerant Computing. He goes to great lengths to
discuss the historical context within which Erlang originated, the architectural philosophy behind
it, as well as the nut-and-bolts details of the resulting implementation.
One of the creators of Erlang gives an easily digestible overview of the BEAM (the Erlang runtime),
aimed at developers and system architects. He discusses the main features and highlights the most
common pitfalls one can expect to encounter when running applications on the BEAM.
“Make it work, then make it beautiful, then if you really, really have to, make it fast. 90 percent of the
you make it beautiful, it will already be fast. So really, just make it beautiful!” - Joe Armstrong