Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool
We continue our exploration of Erlang and Elixir with Shawn McCool, diving deep into the Elixir ecosystem and its powerful tools and frameworks. From Phoenix’s revolutionary LiveView approach to Ecto’s composable database queries, we examine how Elixir’s design enables building sophisticated systems with less complexity.
Shawn shares practical examples from his experience, including building home automation systems with Nerves for monitoring energy usage. We explore LiveBook’s potential for executable documentation and collaborative development, and dive into how Tidewave enables AI agents to interact with running Elixir applications. The conversation also covers when to leverage built-in BEAM capabilities versus external services, and how this gradual scaling approach simplifies early development while maintaining flexibility for growth.
Topics include:
- Phoenix Framework and its real-time capabilities through LiveView
- Ecto’s approach to database access and why it’s not a traditional ORM
- When to use built-in capabilities vs external services (ETS vs Redis, Phoenix PubSub vs RabbitMQ)
- Nerves for embedded development and IoT applications
- Numerical Elixir (Nx) for ML and numerical computing
- LiveBook for collaborative development and executable documentation
- Tidewave and AI integration with Elixir applications
- Domain modeling with functional programming principles
- Learning strategies: Erlang first vs jumping into Elixir
We wrap up by exploring the paradigm shift from object-oriented to functional programming, with Shawn sharing his recommended learning path including books from the Pragmatic Bookshelf.
This is Part 2 of a 2-part series. In Part 1 , we explored the BEAM virtual machine, the actor model, and how Erlang’s unique approach to concurrency enables building more resilient systems.
Show Links
- Shawn McCool’s Website
- Shawn McCool on X/Twitter
- Shawn McCool on Bluesky
- Shawn McCool’s Elixir/Erlang Learning Resources
- Erlang
- Elixir
- Phoenix Framework
- Phoenix LiveView
- Laravel Livewire
- Hotwire
- Ecto Documentation
- Ecto Changesets
- Erlang Term Storage (ETS)
- Phoenix PubSub
- Oban - Background Jobs
- Nerves Project
- Numerical Elixir (Nx)
- Elixir LiveBook
- Tidewave
- Elixir in Action
- Programming Erlang
- Pragmatic Bookshelf - Elixir
- EventSourcery
