BEAM There, Done That

Plangora

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.

  1. hace 3 días

    Elixir in the Browser: Bart Blast on Hologram

    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 help​how 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 types​why Hologram doesn't merge front end and back end - there's still a clear separation, just one language crossing it​actions vs. commands: the two behavior primitives and which side of the client/server boundary each lives on​where 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 other​when you should not use Hologram yet​where it's all heading: local-first sync layer, mobile, desktop, and eventually a single Elixir codebase for everythingRecorded June 18, 2026. Resources mentioned: ​hologram.page​hologram.page/newsletter​GitHub: barb/hologram​Discord: hologram community​Hologram 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

    Elixir in the Browser: Bart Blast on Hologram
  2. 17 jul

    Zig Meets the BEAM: Garrison Hinson-Hasty & Isaac Yonemoto on Safer Native Code

    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

    Zig Meets the BEAM: Garrison Hinson-Hasty & Isaac Yonemoto on Safer Native Code
  3. 10 jul

    Inside the BEAM JIT: How Lukas Backström Made Erlang Faster

    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.

    Inside the BEAM JIT: How Lukas Backström Made Erlang Faster
  4. 3 jul

    Static Types Finally Come to the BEAM | Annette Bieniusa & Guillaume Duboc

    Joe Armstrong once said anyone can write a type system covering 90% of Erlang — it's the remaining 10% that defeats even the brightest minds in computer science. He was referring to Philip Wadler. That was 1995. Thirty years later, the BEAM is finally converging on an answer. In this episode, Alan Wyma and Francesco Cesarini sit down with Annette Bieniusa, professor of software technology at RPTU Germany, and Guillaume Dubois, PhD from IRIF Paris now at Dashbit, to dig into what it actually takes to bring static types to Erlang and Elixir — and why it took this long. Topics include: why every serious attempt at typing Erlang since 1995 — soft types, subtyping, Dialyzer — ran into the same wall, and what's genuinely different now what set-theoretic types are and why they're the foundation Elixir 1.2's type system is built on how Elixir's gradual type system differs fundamentally from TypeScript or Python's approach — and why baking dynamic in from the start changes everything why the BEAM ran telecoms for 25 years without static types, and what problems types are now actually solving the risk nobody talks about: developers getting lulled into false confidence by type checking, writing fewer supervision trees and less defensive code how Annette's parallel etalizer for Erlang and Guillaume's Elixir work share the same theoretical foundation but make different design choices why "type systems don't mean error-free" — and what types actually buy you on the BEAM specifically what Elixir 1.2 ships, what's still being worked on, and the one thing you can do this week Recorded May 28, 2026.

    Static Types Finally Come to the BEAM | Annette Bieniusa & Guillaume Duboc
  5. 26 jun

    30 Years Inside the BEAM: Björn Gustafsson on Building Erlang's Runtime

    Three engineers. Three different virtual machines. One conversation that started with the JAM and ends with the JIT compiler. Allen Wyma and Francesco Cesarini sit down again with Björn Gustafsson — member of the OTP team since 1996, and the person who has personally shepherded the BEAM through every major transition since taking it over from Bogdan Wódzicki — for a deep dive into 30 years of runtime engineering. Topics include: the three competing virtual machines built in parallel at Ericsson's lab — JAM, Robert Virding's V, and Bogdan's BEAM — and why each one's design choices succeeded or failed a compiler bug that caused random crashes and took weeks to find — and the BEAM Validator that was built specifically so it could never happen again why "turbo Erlang" compiled-to-C delivered a 10-20x sequential speedup on paper that shrank to 2x once concurrency entered the picture, and why that mattered for chip design the BEAM loader — Björn's own invention, still in use today — and why decoupling the compiler from hand-written runtime translation mattered how Björn took over Bogdan's code in 1997 and turned a research prototype into a 30-year production runtime without ever breaking backward compatibility what's coming next: the JIT compiler (next episode), type systems, and a possible episode on the historical and emerging Erlang machines -record(history, { jam, v, turbo_erlang, beam }). If you care about language runtimes, VM design, or how production systems survive three decades of evolution without ever stopping, this episode is for you. Recorded May 26, 2026.

    30 Years Inside the BEAM: Björn Gustafsson on Building Erlang's Runtime
  6. 19 jun

    Why Elixir Beat Go and Rust for BlueSky's Data Plane | Chris Beck

    There's a gap between BlueSky's open reference implementation (handles a few hundred thousand users) and BlueSky's own production system (handles millions, but runs on infrastructure most teams can't replicate). Chris Beck and his team at Bitcrowd set out to close it -and ended up somewhere they didn't expect. In this episode, Allen Wyma and Francesco Cesarini talk to Chris Beck, founder of Bitcrowd in Berlin, about building an open source alternative to BlueSky's data plane -the component that turns the AT Protocol firehose into the timeline you actually scroll through. This is the third episode in our "right tool for the job" series, following Rust and Zig. Topics include: what the AT Protocol actually is, and why it's closer to an "operating system for social apps" than a single product why BlueSky's own production solution (similar to Discord's MongoDB → Cassandra → ScyllaDB journey) is out of reach for smaller communities the real numbers: 200-500 messages/second on a normal day, 6 million active users during the November 2024 US election the hot path vs. cold path split that shaped the entire architecture why Go, Rust, and Node were all evaluated and rejected -including why Node's single-threaded event loop was already a dead end for the BlueSky team themselves why Elixir wasn't the expected choice, and what ETS gave them for free that they'd have had to hand-build everywhere else using a Rust NIF via Rustler for roaring bitmaps to solve the "social proof" (mutual follows) feature -and what that NIF actually costs in terms of crash isolation why losing almost every microbenchmark didn't matter once they asked "do we actually need to go there?" the fan-out architecture that pushes messages directly into user mailboxes, and why that made backpressure a non-issue what's left to build, and the one sentence Chris wants every team picking a stack to remember Recorded June 15, 2026.

    Why Elixir Beat Go and Rust for BlueSky's Data Plane | Chris Beck
  7. 12 jun

    Why Multiplayer Games Are Just Distributed Systems | Ellyse Cedeno on BEAM & the Actor Model

    Every player is a process. Every monster is a process. Every zone is a process. Sound familiar? In this episode, Allen Wyma and Francesco Cesarini sit down with Ellyse Cedeno - technology and product leader with 25+ years across online games, distributed systems, and real-time platforms - to explore why the BEAM and the actor model are a natural fit for multiplayer game servers, and why the games industry keeps learning this the hard way. Topics include: why MMORPGs and telecom systems have more in common than most people realize the N-squared problem: why high player density is so expensive and how classic games solved it why Java threads and deadlocks were the original game server nightmare how the actor model eliminates lock management - and what that means for mob AI event-sourced vs tick-based architecture and when each makes sense zones, sharding, and the air traffic control analogy for seamless server handoffs building a NetHack-style multiplayer game in LiveView - and what the DOM diffing taught her about game state why the games industry is dominated by C++ and Unreal, and what it would take to change that using player behavior analytics to catch bugs before ops teams or server logs do the production horror story of someone pulling the live database drive mid-operation Plus: why Ellyse wants to publish a 100% Elixir game on Steam, and what the open source game_server project on Codeberg is trying to do. Recorded May 25, 2026.

    Why Multiplayer Games Are Just Distributed Systems | Ellyse Cedeno on BEAM & the Actor Model
  8. 5 jun

    Who Builds the Next Generation of Senior Devs? Bruce Tate on AI, Juniors, and the Career Path Crisis

    The dashboards are green. PRs are shipping faster than ever. So why are seniors quietly burning out — and juniors not actually learning? In this episode, Allen Wyma and Francesco Cesarini sit down in person with Bruce Tate — author of Seven Languages in Seven Weeks, co-author of 10+ books on Elixir, and founder of Groxio — who just shut down a 10-year mentoring organization because the junior developer career path had become too unclear to sustain. Topics include: why AI has broken the traditional apprenticeship model without replacing it three scenes from a Tuesday afternoon: Freddie the junior, Martin the senior, and the manager watching the green dashboard — what each is missing about the other two the five modes of AI-assisted coding (completion, mini tasks, debugging, collaboration, vibing) and which ones a junior should actually live in why the pull request is no longer a learning moment — and what to do instead the four things a junior must develop to become a senior in 2026 what leadership owes the next generation, and the one pledge every team should make where BEAM languages fit in all of this — and why Elixir may be the best language for AI-assisted development The productivity dividend is real. The question is whether we invest it or eat it. Resources mentioned: Groxio: grox.io Tidewave Ash Framework "Tell Me a Story" talk by Sasha (referenced in episode) Recorded May 18, 2026.

    Who Builds the Next Generation of Senior Devs? Bruce Tate on AI, Juniors, and the Career Path Crisis

Acerca de

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.

También te podría interesar