
Advertise on podcast: BEAM There, Done That
Rating
4.4from
Categories
This podcast has
34 episodes
Language
EnglishPublisher
PlangoraExplicit
No
Date created
2026/02/27
Latest episode
2026/10/23
Average duration
56 min.
Release period
7 days
Description
BEAM There, Done That is a podcast about building real systems with Elixir, Erlang, and the BEAM. We’ve built it before — distributed systems, fault‑tolerant services, event pipelines, real‑time apps, production nightmares, and the supervision trees that saved them. Each episode dives into practical lessons from shipping software on the BEAM: architecture decisions, scaling challenges, operational failures, and the patterns that actually work. No hype. No theory without scars. Just hard‑won experience from engineers who’ve been there.
Unlock BEAM There, Done That podcast Email contact info,
Listeners & Audience details
Email contact information
Direct podcast contact details

Listeners
Audience numbers & engagement insights

Audience details
Podcast Insights

Podcast episodes
Check latest episodes from BEAM There, Done That podcast
Embedded Gleam for Everyone: D. Bettio & G. Cavalieri on Microcontrollers
2026/10/23
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 devicesWhy Gleam and AtomVM are a perfect match for hobbyists and studentsDavide's "scar story" of a buggy AtomVM-powered home thermostat leaving him debugging in the coldThe trade-offs of the AtomVM standard library and how to extend itWriting Gleam bindings for AtomVM features via Erlang FFIExample projects to tackle as an embedded Gleam beginnerWhat's possible with $2 boards, some sensors, and MQTTRecorded October 12, 2026.
Resources:
AtomVM: https://github.com/AtomVM/AtomVMAtomVM website: https://atomvm.orgAtomVM Gleam bindings: https://hex.pm/packages/atomvm_gleamOrbital Gleam library: https://github.com/giacomocavalieri/orbital
Data Sovereignty & Local-First AI: Building Eldrim with Erik Stenman
2026/10/16
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 Bookthe 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 lawthe US Cloud Act and China's national intelligence law: why both reach companies regardless of where their servers are physically locatedwhat 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 ranopen weight models and the myth of portability — why you never get the same answer twice, and why licenses complicate things furtherdistrict heating in northern Sweden: how a data center in Haparanda can pipe waste heat under the streets instead of dumping it as a climate problemthe sustainability-as-sovereignty argument — and why where you run compute is now also an environmental decisionwhat a developer shipping Elixir and calling a model API can do todayCompanion 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.aihappyhacking.blog — Erik's writingThe BEAM Book
Ingela Andin on the TLS Stack Running Under Every BEAM App
2026/10/09
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.
Alex Koutmos on Elixir for Finance, Trading & Blockchain
2026/10/02
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 ISO 8583 protocol story: 100 lines of C per message frame, dropped to 10 in pure Erlang, dropped to 4 with the bit syntax - and why nobody talks about this
Explorer as an Elixir wrapper around Polars (a Rust data frame library) - why the BEAM delegates the heavy compute and keeps the orchestration
how to use Livebook, NX, and Scholar to backtest a moving average crossover trading strategy without leaving Elixir
why "let it crash" doesn't mean "let the money vanish" - and exactly how a ledger, Oban, and durable event storage keep the truth safe across process restarts
the difference between a ledger and a database - and why a bank built on plain Postgres misses the point
blockchain as a distributed ledger: the same distributed state problem the BEAM community was chewing on long before Bitcoin existed
why fintech companies use Erlang and Elixir as a competitive advantage - and tell nobody
BlockScout, Aeternity, and where BEAM languages already run in blockchain infrastructure
what the Python and JVM financial tooling stacks miss that Explorer and NX cover - and where they still win
Recorded August/September 2026.
Resources mentioned:
Elixir for Finance - the book
PromEx on Hex
BlockScout - open source Ethereum explorer written in Elixir
Aeternity - blockchain built in Erlang
Kip Cole on Time, Localization and Building Agenda
2026/09/25
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
the 10-year weekend project: how a localization library for Elixir turned into 28 packages and a full rewrite into Localized
why compile-time code generation with Elixir macros hit a wall - 1,000+ function clauses and quadratic compile times - and why moving to runtime fixed it
the astronomical algorithms scar: three years of learning a new branch of mathematics to implement calendar software the BEAM was never designed for
what Tempo makes explicit that everyone does by accident: time as an interval, not an instant
why scheduling is just set intersection over everyone's free and busy intervals - and why that single insight collapses almost every hard scheduling problem
how "sometime on Tuesday" is not a time but a domain error - and what Tempo forces you to say instead
Unicode version 18, 173,000 human language characters, and why most language ecosystems still can't represent them correctly
the difference between CLDR (the Unicode standard) and Localized (the Elixir implementation of it)
what Agenda actually ships this week and what's next
Recorded September 8th, 2026.
Is Your Elixir Code Actually Fast? Tobias Pfeiffer on Benchmarking
2026/09/18
Everyone has an opinion about whether the BEAM is fast or slow. Almost nobody has actually measured it properly.
Tobias Pfeiffer -PragTob on the internet, benchmarking nerd, real-time engineer at Supabase -came to Elixir from Ruby because Ruby couldn't handle WebSockets at scale. Then he learned the language the way he learns every language: by building a benchmarking library. Ten years later, Benchee is what most of the Erlang and Elixir world reaches for when it wants a number instead of an argument.
Topics include:
why Tobias writes a benchmarking library every time he learns a new language -and what that discipline actually teaches about how a runtime works
the production scar: a benchmark that showed one query was faster, deployed it, and discovered the benchmark had been measuring the wrong input entirely
the single most important insight about benchmarking: most people quietly fool themselves and walk away more confident and more wrong than when they started
inputs as a first-class feature -the lesson José Valim taught Tobias within 17 minutes of an open GitHub issue
why body-recursive map is faster than tail-recursive map for small lists on the BEAM -and what that tells you about the runtime
what reductions are, why they're a more stable measurement than wall time, and when they diverge
how Benchee measures memory: spawning a monitored process, watching GC events, reporting exact bytes -and why deterministic code gives deterministic memory
the JSON benchmarking arms race -built-in OTP JSON, jason, Jiffy, and why comparison benchmarks usually miss the point
why Benchee has no macros, no DSL, and deliberately only uses functions -and why that design decision made it composable in ways nobody predicted
the hardest benchmarking mistake to stop making: confusing latency and throughput
what Toby wishes more Elixir developers understood about BEAM performance before they opened a PR claiming something was faster
Recorded August 21, 2026.
Resources mentioned:
Benchee on Hex: hex.pm/packages/benchee
Benchee HTML formatter -self-contained HTML output with downloadable graphs
Benchee markdown formatter
PragTob on GitHub: github.com/bencheeorg
Louis Pilfold on Building Gleam - Static Types on the BEAM
2026/09/11
What if the BEAM had a language that felt like talking to a friend instead of fighting a compiler?
That's the problem Louis Pilfold set out to solve. He loved the BEAM. He missed static types. Every other option was a tradeoff he couldn't live with. So he built Gleam - and after years of quietly saying no to everything he wasn't sure about, it's gathered a community, found production users, and now runs on servers, browsers, and $2 microcontrollers.
Topics include:
why every successful language is born from a problem - and what specific frustration made Louis start building rather than just complaining
the discipline of saying no: no if, no currying, no pretending two targets are one world
the design decision Louis regrets most - the conditional compilation syntax he's now stuck with and desperately doesn't want more people to use
why Gleam's concurrency model lives in a library rather than the language - and what that buys in terms of flexibility when smarter people eventually improve it
how Gleam solved the problem everyone said was unsolvable: "you can't type message passing on the BEAM"
what the JavaScript and BEAM targets share and where they genuinely can't be unified - and why pretending they can leads to terrible architecture
why Gleam chose Erlang records as its data structure and what that costs at runtime
Lustre, Gleam's web framework - beating mainstream JavaScript frameworks in benchmarks while written entirely in Gleam
how Louis funds his work on Gleam: GitHub Sponsors, the Gleam community, and what sustainable open source actually looks like from the inside
what Gleam will look like in 3–5 years - native records, better JavaScript interop, and why the language's approach to stability makes those changes possible
Recorded August 20, 2026.
Resources mentioned:
gleam.run - docs, tour, community
tour.gleam.run - interactive language tour running the Gleam compiler compiled to Wasm, takes an afternoon
Exercism Gleam track
Code Crafters - build Redis/SQLite/Git in Gleam
GitHub Sponsors: lpil (Louis Pilfold)
Lustre - Gleam's web framework
How WhatsApp Fixed Erlang's Tooling Problem | Roberto Aloi & Michał Muskała
2026/09/04
Part one established that Erlang scales. Part two is about what comes after - keeping a codebase that large healthy for years, when most engineers arrive having never written Erlang before.
WhatsApp's answer was to invest in the language itself. The formatter, the language server, the type checker. And then to open source almost all of it back to the community - not as charity, but because diverse use cases and external bug reports make the tools better.
Roberto Aloi and Michał Muskała are back for the half that doesn't appear on conference posters.
Topics include:
why the investment in tooling came from a developer survey rather than an engineering instinct - the data showed Erlang developer experience was the weak point
what ELP (the Erlang Language Platform) actually is and how it superseded the Erlang LS that Roberto built before joining WhatsApp
how eqWAlizer, WhatsApp's type checker, was rolled out without breaking other teams - the team owning the type checker also owned the task of fixing things up when new checks introduced errors
why types and let it crash aren't in tension: you can never statically verify everything in a dynamic language, so the gap is where supervision and recovery fit
the two biggest misconceptions about static analysis tools: that they're slow (modern tooling is fast) and that you have to commit to them all at once (you can do it incrementally)
why WhatsApp open sources tools that took significant engineering investment - keeping them internal would make them worse, not better
what's still unsolved: exhaustiveness checks at this scale remain an open problem
how AI is changing the Erlang learning experience - build first, ask AI to review your patterns afterward
the word that ties both episodes together: trust. Supervision earns it at runtime. Types earn it at compile time.
Companion episode: Part 1 on scale and operations.
Recorded June 25, 2026.
Inside WhatsApp with Roberto Aloi & Michał Muskała
2026/08/28
Everyone quotes WhatsApp when the topic of Erlang and scale comes up. Fewer people know what it actually looks like from the inside - what was hard, what was never hard, and what the team spent their time on once the concurrency stopped being the problem.
Roberto Aloi and Michał Muskała work on the team keeping it running. This is the first of two episodes with them.
Topics include:
what Roberto's first Erlang moment was - implementing a GenServer for a robot at university and learning binary pattern matching felt like cheating
why Michał came to Erlang backwards, from Elixir, and what the tooling gap actually felt like
the column numbers OTP bug that caused cascading failures and taught Roberto what no documentation could
the optimization that made the JSON Unicode parser slower - binary pattern matching was the wrong tool, and a custom state machine was faster
what "let it crash" actually means at WhatsApp scale: letting it crash is the easy part, recovery is where the engineering lives
why the 30th employee was the first person at WhatsApp with Erlang experience - and what that means for hiring
the most misunderstood thing about Erlang at WhatsApp: scaling isn't the exotic part, keeping the codebase healthy is
how WhatsApp does deployments: 1% of servers first, one region next, monitoring throughout, ready to roll back
what types of failures become normal at this scale - and why disaster recovery drills are a regular practice
overly dynamic code as the anti-pattern that creates the most sustained pain
Part two covers ELP, Equalizer, and the tooling that keeps a codebase this large navigable. You want both.
Recorded June 25, 2026.
Erlang on a Microcontroller: Davide Bettio & Paul Guyot on AtomVM
2026/08/21
In 1952, Marvin Minsky and Claude Shannon built a box with a single switch. When you flip it, the only thing it does is reach out and switch itself back off. Seventy years later, 5,000 of those boxes are sitting on desks worldwide — and the thing making them tick is Erlang, running on a chip smaller than a fingernail.
Davide Bettio built AtomVM, the virtual machine that makes this possible. Paul Guyot wrote the Erlang firmware, added SMP support as a weekend project, and shipped 5,000 units.
Topics include:
what AtomVM is — a from-scratch BEAM-compatible VM for microcontrollers with a few hundred kilobytes of RAM and no OS
debugging a virtual machine with no stack traces: printf everywhere, blindfolded
the first production batch with a 5–10% return rate that turned out to be a mechanical problem — after Paul rewrote half the software looking for a bug that wasn't there
why the actor model, let it crash, and binary pattern matching are unusually well-suited to embedded devices
what AtomVM actually supports: GenServer, maps, JSON, Erlang distribution, and via the Popcorn project — Phoenix LiveView on a microcontroller
Paul's SMP implementation as a "mixed blessing" — added for purely selfish engineering reasons, then forced the whole team to rewrite their drivers
where AtomVM differs from the BEAM: no dirty schedulers, no hot code unloading, a simpler scheduler model that mostly doesn't surface at the API level
Recorded June 24, 2026.
Resources mentioned:
atomvm.net
GitHub: atomvm/AtomVM
Popcorn project — Phoenix LiveView on AtomVM
Discord: AtomVM community
Mat Trudel on Building Bandit - the Web Server Running Your Phoenix App
2026/08/14
Bandit quietly became the default web server in Phoenix. Mat Trudel wrote it by hand, in pure Elixir, as a side project - and kept it that way even as AI changed how everyone else writes code.
This episode goes two places at once: the engineering of a foundational piece of infrastructure most developers never think about, and an honest conversation about what it means to keep building something by hand when you don't have to.
Topics include:
how a six-month debugging session - Wireshark, a 30-page RFC, and a single misread line in the HPACK spec - explains why HTTP is genuinely hard to get right
what "one process per connection" actually buys you at 3am when something's on fire: a stack trace that's entirely Elixir frames, all the way up
why HTTP parsers have a million attack vectors that have nothing to do with which language you write them in
the WebSock and WebSock Adapter split - and why a web server depending on another web server is ridiculous
how José Valim looked at Mat's first WebSocket implementation and told him he was doing too much
an AI-generated PR sitting open on the Bandit repo that implements the entire HTTP/3 stack - and why Mat hasn't merged it
why Mat still writes Bandit entirely by hand while using agents for everything in his day job
the cabinet maker's son analogy that explains the whole thing: if you want cabinets, go to IKEA; if you want to build them, the journey is the point
what it means when "finding bugs got cheap but judging and fixing them didn't"
Companion episode: Peter Ulrich and Jonathan Machin on CVEs and security - the same story from the reporting side.
Recorded June 22, 2026.
Bandit quietly became the default web server in Phoenix. Mat Trudel wrote it by hand, in pure Elixir, as a side project - and kept it that way even as AI changed how everyone else writes code.
This episode goes two places at once: the engineering of a foundational piece of infrastructure most developers never think about, and an honest conversation about what it means to keep building something by hand when you don't have to.
Topics include:
how a six-month debugging session - Wireshark, a 30-page RFC, and a single misread line in the HPACK spec - explains why HTTP is genuinely hard to get right
what "one process per connection" actually buys you at 3am when something's on fire: a stack trace that's entirely Elixir frames, all the way up
why HTTP parsers have a million attack vectors that have nothing to do with which language you write them in
the WebSock and WebSock Adapter split - and why a web server depending on another web server is ridiculous
how José Valim looked at Mat's first WebSocket implementation and told him he was doing too much
an AI-generated PR sitting open on the Bandit repo that implements the entire HTTP/3 stack - and why Mat hasn't merged it
why Mat still writes Bandit entirely by hand while using agents for everything in his day job
the cabinet maker's son analogy that explains the whole thing: if you want cabinets, go to IKEA; if you want to build them, the journey is the point
what it means when "finding bugs got cheap but judging and fixing them didn't"
Companion episode: Peter Ulrich and Jonathan Machin on CVEs and security - the same story from the reporting side.
Recorded June 22, 2026.
Erlang Without an OS: Maxim Kharchenko on Building LING
2026/08/07
Booting OTP without a Linux kernel underneath it. Running Erlang directly on a Xen hypervisor. Implementing a VM where every single out-of-memory condition is explicitly handled — not a single allocation without a recovery path.
Maxim Kharchenko spent five to eight years building Ling, a from-scratch Erlang runtime that runs without an operating system. Not a fork of the BEAM. Not a modification. A clean implementation, built to answer one question: can you run a system that never stops?
Francesco Cesarini joins Alan Wyma for this episode — he was there when it was built, running the Erlang Solutions team that worked on the other half of the project.
Topics include:
how Maxim came to Erlang backwards — building his own isolation-based runtime first, then discovering Erlang had already solved the same problems
what a Xen hypervisor actually is and why it's the right host for a no-OS Erlang VM
how Ling's dynamic instruction set works: analyzing real OTP source code to figure out the optimal instruction set for that specific workload, then generating specialized opcodes — including one that loads the number 17 specifically because 17 appeared frequently enough to warrant it
why every single memory allocation in Ling has an explicit out-of-memory handler — and how hard that discipline was to maintain
the garbage collector design for bare-metal network applications and why it matters differently there than in regular BEAM workloads
running the entire network as an Erlang application: not just a piece of it, but switch firmware, controller, and the full stack
why the industry was not ready for this ten years ago — and why the problems Ling was solving have come back under different names
where unikernels and Linux eBPF fit in the same space today
Recorded June 3, 2026.
Mike Williams & Björn Gustavsson on Building the JAM
2026/07/31
Before the BEAM, there was the JAM - Joe's Abstract Machine. It was the first virtual machine that made Erlang fast enough to run in production, and it was built by a handful of people at Ericsson's computer science lab who had a mandate to do whatever they wanted.
Mike Williams wrote large parts of the emulator. Björn Gustavsson inherited it in 1996 and built what came after. In this episode - the most historically significant we've recorded - Alan Wyma and Francesco Cesarini bring them both together to tell the story of where the BEAM actually came from.
Topics include:
why Mike looked at Joe Armstrong's first 20 lines of C and said "this is awful, I'll do something about it" - and how he got message passing down to six instructions
the three numbers that decide whether a concurrent language lives or dies: process creation time, context switch time, and message copy time - and why 70% of VM time was spent on them, not application code
why keeping concurrency inside the language rather than the OS was "perfectly obvious" to Mike, and why it was a minority view even then - Java removed green threads, early Rust removed lightweight processes
the two-version rule for module hot loading that's still in the BEAM today, 30 years on - and why Björn never wanted to remove it
memory as the binding constraint, not speed: phone switches handling whole cities ran on 16–64 MB of RAM
how distribution was added to the JAM by Claes Wikström - the person whose name is always forgotten in this story, who also invented ETS tables and created the first prototype of Erlang's binary syntax
what Björn saw when he first read Mike's code in 1996, why he liked the JAM more than the BEAM at first, and what finally made the JAM obsolete
the computer science lab culture that made Erlang possible: no publish-or-perish pressure, just a mandate to solve a real problem
Recorded June 4, 2026.
Resources mentioned:
"History of Programming Languages" paper, Joe Armstrong (HOPL III)
Bjarne Däcker's licentiate thesis
Early Erlang CS lab technical reports (ERN series)
Elixir in the Browser: Bart Blast on Hologram
2026/07/24
What if instead of making your server smarter to handle the browser, you just ran your Elixir in the browser instead?
That's the bet Bart Blast has been making for six years - three of them full time. Hologram is a full-stack web framework that compiles Elixir to JavaScript and rebuilds the Erlang runtime in the browser: pattern matching engine, OTP guarantees, boxed types, all of it. No JavaScript to write. No round trip on every interaction. No inconsistent state between client and server.
This is the fourth episode in the podcast's ongoing series on where state should live - following Chris McCord on durable servers, Adi Iyengar on building a web framework, and Brooklyn Zelenka and Robert Virding on local-first. Bart made the opposite bet to Live View.
Topics include:
why Bart spent six years building this instead of reaching for existing tools - and why the answer is "plain frustration"the latency ceiling you can't engineer past on the server, and why bandwidth improvements don't helphow Hologram actually works: pulling the expanded AST from compiled BEAM files, normalizing it, lowering to an IR, and encoding to a JS runtime - including a real pattern matching engine and boxed typeswhy Hologram doesn't merge front end and back end - there's still a clear separation, just one language crossing itactions vs. commands: the two behavior primitives and which side of the client/server boundary each lives onwhere Live View wins over Hologram - and Bart is honest about this (private logic, data-heavy apps, maturity)how Hologram compares to Luster (Gleam's equivalent) and why neither is competing with the otherwhen you should not use Hologram yetwhere it's all heading: local-first sync layer, mobile, desktop, and eventually a single Elixir codebase for everythingRecorded June 18, 2026.
Resources mentioned:
hologram.pagehologram.page/newsletterGitHub: barb/hologramDiscord: hologram communityHologram tag on Elixir ForumWebsite: https://hologram.pageGitHub: https://github.com/bartblast/hologramNewsletter: https://hologram.page/newsletterDiscord: https://discord.com/invite/huJWNuqt8JElixir Forum: https://elixirforum.com/hologramX: https://x.com/Bart_BlastLinkedIn: https://www.linkedin.com/in/bartblast/Bluesky: https://bsky.app/profile/bartblast.comSlack: https://elixir-lang.slack.com/channels/hologram
Zig Meets the BEAM: Garrison Hinson-Hasty & Isaac Yonemoto on Safer Native Code
2026/07/17
Everyone who's ever written a C NIF for the BEAM knows the story. You have a bottleneck, you reach for native code, it works - until one day it doesn't, and instead of a process crashing, the whole node goes down. A segfault in a NIF takes the entire BEAM with it, bypassing every fault-tolerance guarantee OTP was designed to provide.
This episode asks a simple question: do we have to accept that? The answer, increasingly, is no.
Allen Wyma and Francesco Cesarini sit down with Garrison Hinson-Hasty, author of Systems Programming with Zig, and Isaac Yonemoto, creator of Zigler - the library that lets you write Zig directly inside Elixir and Erlang modules, with automatic marshalling, scheduler-aware execution modes, and memory tracking that's visible to the BEAM itself.
This is part of the podcast's ongoing "right tool for the job" series, following earlier episodes on Rust and native code.
Topics include:
what Zig is and why it exists - C's simplicity and zero-cost abstractions, without C's footguns
how Zig compares to both C and Rust: where it wins, where it loses, and why they're solving different problems
why Zig's allocator model is unusually well-suited for BEAM integration - and what it means that Zigler uses the BEAM's own allocator by default, making native memory visible to Erlang's VM
how Zigler works: write Zig in a sigil inside your Elixir module, and the marshalling between BEAM terms and native types is handled automatically at function call boundaries
the four execution modes Zigler gives you - normal, dirty CPU, dirty IO, spawned thread - and how to pick one without changing a single line of your Zig code
the honest answer to the question every BEAM developer wants to ask: can a Zigler NIF still crash the whole node? (Yes. Isaac explains exactly when and why, and what Zig's spatial memory safety actually buys you)
why Zig has no hidden control flow and no lexical macros, and why that matters when you're debugging something at the boundary between two runtimes
where Zig's async story currently stands, and what that means for Zigler's roadmap
Isaac's unusual professional position: CEO of a pharma startup who is also writing the software stack for his own lab in Zig and Elixir
Recorded June 9, 2026.
Resources mentioned:
Systems Programming with Zig by Garrison Hinson-Hasty
Zigler on Hex and GitHub
Zigler docs
Podcast sponsorship advertising
Start advertising on BEAM There, Done That relevant audience podcasts
You may also like to advertise on these Podcasts

4.8296741990
Fantasy Footballers - Fantasy Football Podcast
Fantasy Football

4.712841550
True Crime All The Time
Emash Digital

4.8160161996
Watch What Crappens
Ben Mandelker & Ronnie Karam

4.639051164
Modern Wisdom
Chris Williamson

4.66211307
True Crime with Kendall Rae
Mile Higher Media & Audioboom Studios

4.73430782
The Ancients
History Hit

4.89140313
The Why Files: Operation Podcast
The Why Files: Operation Podcast

51088171
Middle Children
Jessie Jolles and Chris Burns

4.8265122000
Morning Wire
The Daily Wire

4.518782374
American Scandal
Audible