
Show Notes
In 2021, Erlang got something it had been promised for years: a Just-In-Time compiler. The person who built the first working prototype, spent years on failed experiments before it, and quietly shipped it to every Erlang and Elixir system on the planet is Lukas Backström — OTP team member since 2009, Francesco Cesarini's former student, and one of the most consequential engineers in the ecosystem that most people have never heard of. In this episode, Alan Wyma and Francesco Cesarini sit down with Lucas for a deep dive into how the BEAM JIT actually works, what it took to get there, and where it's heading next. Topics include: the difference between interpreter, ahead-of-time compilation, and JIT — and why the BEAM's threaded code interpreter was already unusually fast
why tracing JITs — the first several approaches Lucas's team tried — worked great on microbenchmarks but failed on real Erlang code, which is highly branchy and unpredictable
the key insight that killed LLVM: faster code generation with AsmJIT was worth more than LLVM's optimizations, once you account for startup time
how the template JIT design — copy-pasting assembly from templates into memory, then specializing a few bits — became the architecture that shipped
why WhatsApp was running the JIT from the tip of master the day it was released, nine months before the official OTP 24 tag
how type-guided optimizations now flow from the Erlang compiler into the JIT — and why a simple integer add can now compile to a single assembly instruction
the Apple M1 announcement that changed the release timeline and forced ARM64 support a year ahead of schedule
what's actually left to do: smarter code loading, better startup time, and the native records implementation touching every layer of the system
why the BEAM JIT is one of the simpler JITs you could read — and how to inspect the assembly it generates for your own code
Recorded May 27, 2026.
More from BEAM There, Done That
In 2017, Davide Bettio created AtomVM to run Erlang, Elixir and Gleam code on embedded devices with just a few kilobytes of memory. Fast forward to today, and Giacomo Cavalieri of the Gleam core team has built tooling that flashes a Gleam project onto a board with a single command. Two dollars, some sensors, and a weekend is all it takes to get started with embedded Erlang development. No more dealing with low-level C, complex drivers, or painful debugging. Gleam's delightful developer experience combined with AtomVM's BEAM bytecode support brings approachable IoT to the masses. In this episode, Davide and Giacomo share: How AtomVM squeezes the BEAM onto memory-constrained devices Why Gleam and AtomVM are a perfect match for hobbyists and students Davide's "scar story" of a buggy AtomVM-powered home thermostat leaving him debugging in the cold The trade-offs of the AtomVM standard library and how to extend it Writing Gleam bindings for AtomVM features via Erlang FFI Example projects to tackle as an embedded Gleam beginner What's possible with $2 boards, some sensors, and MQTT Recorded October 12, 2026. Resources: AtomVM: https://github.com/AtomVM/AtomVM AtomVM website: https://atomvm.org AtomVM Gleam bindings: https://hex.pm/packages/atomvm_gleam Orbital Gleam library: https://github.com/giacomocavalieri/orbital
On Christmas Eve, the BEAM's scheduler throttled down to save power. A batch job arrived. A Christmas worth of XML took down all three failover nodes. The Klarna CEO called. Erik Stenman was already at his desk. That incident sent him deep into the BEAM runtime — and eventually led to the BEAM Book. Now he's applying the same habit of asking where resources really go to a different question: where does AI compute actually run, and who controls it? Erik Stenman (known as Happi) has been with Erlang since 1994. He wrote the BEAM Book, built Klarna's payment core, and is now building Eldrim — a sovereign AI compute router based in northern Sweden that guarantees your model calls stay within the jurisdiction you define. Topics include: the Christmas Eve scar: how scheduler throttling, a batch job, and a 20-reduction XML conversion took down all three Klarna nodes simultaneously — and why that incident eventually became the BEAM Book the three concepts everyone confuses: data residency (where your data sleeps), data sovereignty (who holds the keys), and local-first (keeping the primary copy close) why "my provider has an EU region" is not the same as EU sovereignty — and why an Amazon data center in Sweden is still subject to US law the US Cloud Act and China's national intelligence law: why both reach companies regardless of where their servers are physically located what Eldrim actually does: an OpenAI-compatible API router that enforces jurisdiction rules, fails with a 503 rather than routing quietly outside approved boundaries, and returns headers telling you exactly where and on which server your request ran open weight models and the myth of portability — why you never get the same answer twice, and why licenses complicate things further district heating in northern Sweden: how a data center in Haparanda can pipe waste heat under the streets instead of dumping it as a climate problem the sustainability-as-sovereignty argument — and why where you run compute is now also an environmental decision what a developer shipping Elixir and calling a model API can do today Companion episodes: local-first with Brooklyn Zelenka and Robert Virding; BlueSky's data plane with Chris Beck; Hologram with Bart Blast. Recorded October 2, 2026. Resources mentioned: eldrim.ai happyhacking.blog — Erik's writing The BEAM Book
Every secure connection made from an Erlang, Elixir, or Gleam application runs through code she wrote. Most developers have never heard her name. Ingela Andin has spent more than two decades on the OTP team at Ericsson, maintaining the TLS stack — the piece of infrastructure underneath HTTPS, LDAP, SMTP, and every other secure protocol in the BEAM ecosystem. She is the first point of contact when an AI-generated vulnerability report lands in the OTP inbox. And this year, that inbox changed entirely. At the start of 2026, maintainers were still laughing at AI bug reports. Daniel Stenberg, creator of Curl, shut down his bug bounty because the reports were hallucinating junk. Then in the space of weeks, the table turned. The reports became real and they kept coming. Linus Torvalds called the kernel security list almost entirely unmanageable. The BEAM did not escape. Topics include: * what separates a vulnerability from a bug — and what separates a bug from someone doing something dumb * what Ingela's inbox looked like at the start of 2026 and what it looks like now * what a hallucinated AI vulnerability report actually looks like — the asymmetry example that sounded serious and wasn't * why the domain knowledge of the person running the scanner matters more than the scanner itself * how the OTP team triages reports: domain knowledge first, then AI agents to help narrow it down, then human verification * the full fix pipeline: from GitHub advisory to coordinated patch release across three maintained OTP versions to CNA publication * what happens when a bug fix has a bug — and why that's more embarrassing than a partial fix * property-based testing as the tool the team uses to stop bugs from coming back * the one thing Ingela wishes every developer understood before filing a report: write the reproduction case in Erlang, include the full crash report, and don't leave details out * what companies depending on OTP can actually do to help — starting with the "Help Wanted" label on GitHub Companion episodes: BEAM Security Wake-Up Call with Jonathan Machen and Peter Ullrich; Bruce Tate on AI, juniors, and coding agents. Recorded October 1, 2026.
Brex runs on Elixir. Klarna runs on Erlang. Mastercard is believed to use it. And most of the community that builds on these systems watches them with PromEx - a library written by today's guest. Alex Koutmos has been in the Elixir ecosystem for over a decade. He wrote PromEx - the Prometheus metrics library most of this audience runs in production - and he's just written Elixir for Finance with his brother Dimitrios, a tenured finance professor at Texas A&M. The book takes Livebook, Explorer, NX, and Scholar and points them straight at markets, trading strategies, and blockchain infrastructure. Topics include: why switching money and routing a stock order are the same problem as switching a phone call - and why the BEAM was built for both
The Navajo Nation inside Arizona observes daylight saving. The Hopi reservation inside the Navajo Nation skips it again. There's a corner of the Yucatan Peninsula that takes 20 minutes to drive through and costs you an hour on your sat nav. No compiler warns you about any of this. Kip Cole has spent 10 years building the Elixir libraries that handle what software gets wrong about human reality: localization, time, and scheduling. CLDR/ex_cldr gave the ecosystem 173,000 Unicode characters and locale-aware formatting for numbers, dates, currencies, and units. Tempo remodelled time as an interval instead of an instant. And this week, Agenda shipped - the scheduling engine four years in the making. Topics include: why localization is not translation - the three things that go wrong in an e-commerce search before a single word has been mistranslated