The Thinking Elixir Podcast
Welcome to the Thinking Elixir Podcast! The show has weekly episodes where we talk about the Elixir programming language and community around it.
Whether you are already experienced with Elixir or just exploring the language, this show is created with you in mind. We discuss community news, Functional Programming, transitioning from OOP, coding conventions, and more.
Guests visit the show to help challenge our assumptions, learn about new developments and grow in the process.
Subscribe to join me on this journey!
Learning or Teaching Elixir
Tyler Young from X-Plane talks with us about how he added a new MMO feature to the popular flight simulator using Elixir. He shares some behind the scenes information on how it was created and how it’s been working in production. We learn about the single modest server that supports all the mobile users right now.
I loved hearing how Tyler found working with Elixir to be super productive. He took on a major new feature that he expected to take over a year but was able to deliver it in less than half the time. He did all the Elixir work himself and was new to it!
José Valim visits and finally publicly reveals what Project Nx is! He and others have been working on it for 3 months and he’s finally ready to unveil it. José will speak more about it at the LambdaDays conference, demonstrating it with code and announcing the release and availability of the OpenSource code. This is an exciting development that brings Elixir into areas it hasn’t been used before. We also talk about what this means for Elixir and the community going forward. A must listen!
Show Notes online – https://thinkingelixir.com/podcast-episodes/034-jose-valim-reveals-project-nx
We talk with Allen Wyma about a Postgres PubSub feature and how it plays nice with Elixir. We dispel the idea that you should always use Phoenix PubSub just because it’s there and we cover the value of learning what’s built-in to tools like the postgrex library. Allen shares how Postgres PubSub elegantly solved a problem for him and he gives tips for using it. We also talk about teaching Elixir through Allen’s YouTube videos and teaching in person with his Teach Me Code efforts.
We talk with Allan MacGregor about implementing the Circuit Breaker pattern in Elixir and compare that to just using a job library. We get into a fun discussion about design patterns in Elixir and designing for failure. Allan is creating a project called Site Guardian using the PETAL stack and shares his experiences with it and much more!
We talk with Oleg Tarasenko and Tze Yiing about crawling the web using Elixir. Oleg created the crawly project to help solve this problem and Tze Yiing joined him as a contributor and maintainer. We cover how Elixir is well suited to orchestrate crawling, how to deal with login pages, understanding the legal concerns, building a codeless scraper and much more!
We talk with Devon Estes, the creator of a new Elixir mutation testing library called Muzak. Devon joins us to explain what mutation testing is and how it can help development teams in organizations move faster and with greater confidence. We cover when a project can benefit from it, the challenges of offering a PRO version of a library, where Muzak is going in the future, and more!
We talk with Parker Selbert, the creator of the job processing library Oban. He shares the benefits of using Postgres as the data store over more common choices like Redis. Oban also offers a paid “pro” level and Parker explains how a paid feature set is provided for the OpenSource library. He helps us understand the differences between pro and free as well. We talk about how the BEAM’s concurrency and processes enable powerful features in a job processing library that you won’t easily find in alternatives. He also shares a glimpse of what’s coming in the future for the library and more!
We talk with Jason Axelson. He created the DepViz tool that can help improve your Elixir compile-time experience. Jason explains how to use the tool to identify where compile time dependencies may be causing issues in your project and provides tips on what to do about it. We also cover recent improvements in Elixir 1.11 and coming improvements in 1.12 and what those will mean for you! Jason is also a member of the Elixir-LSP github organization and explains the history of the Elixir-LS project and how it has grown and developed. Jason shares some tips with how to fix Elixir-LS issues when it stops working for you. He also shares some glimpses of where things may go in the future, and more!
We talk with Zach Daniel, the creator of the Ash Framework, a declarative, resource-oriented application framework for Elixir that lets you build out JSON or GraphQL APIs in minutes. In this episode he explains the history, guiding doctrine of Declarative Design how it can give developers a huge boost without boxing them into a corner!
Show Notes online – https://thinkingelixir.com/podcast-episodes/027-ash-framework-with-zach-daniel
We talk with Jonathan Allen, an instructor at a Utah college, who taught Elixir to his Distributed Computing students. He tells how he got Elixir into the classroom, what the students loved, what was hard, and how we in the professional community can influence Elixir in education!
We talk with Marlus Saraiva about three big projects he is a part of. All of which are around improving the developer experience in Elixir! We start with Broadway, a library that makes working with GenStage even easier. We learn about his project Surface that brings a more react-like component model to LiveView. We then talk about his work on ElixirSense and ElixirLS which are used by editors to give code completion and documentation help. He covers where he thinks web development went wrong and what he thinks Elixir can do to improve it. We also cover where things may go with Surface and ElixirLS in the future, and much more!
We talk with Chris McCord about the Phoenix LiveView 0.15.0 release which includes uploads! Chris explains the background on the release and his video showing it off. He shares his go-to stack when starting a new Phoenix project (HINT it includes TailwindCSS). We talk about current gaps in the tooling and where things might go from here in both the short and long term. A great visit with lots of insights!
We talk with Louis Pilfold about how he created Gleam, a static typed language that runs on the BEAM. Louis explains some of the challenges with bringing static types to the BEAM and shares ideas on what can possibly be done about it. We learn how Gleam got started, how it works, and how Elixir and Erlang can interop with it. We cover the recently released Gleam OTP work, talk about Type Driven Development and much more!
We talk with Patryk Bąk about running migrations in production. For production systems where downtime or service interruptions are a problem, we sometimes need to take special care when migrating data structures or the data itself. Patryk shares some valuable tips and techniques along with examples of when to use them. We chime in with war stories, our own tips, and mistakes we’ve made. A great resource when migrating data in your own systems. Check it out!
We talk with Patrick Thompson about the PETAL stack. The combination of Phoenix, Elixir, Tailwind CSS, Alpine.js and LiveView! Patrick and David help me understand why people are excited about Tailwind CSS and how it works nicely with Alpine.js. Add LiveView to it and it makes a convincing case! Learn about this powerful and productive stack. Patrick shares his insight and a ton of great resources. Check it out!
We reached outside the Elixir community to talk with Caleb Porzio. Caleb is the creator of PHP Laravel LiveWire, a framework inspired by LiveView. He created Alpine.js to help solve problems common to both LiveWire and LiveView. He also shares how he made his OpenSource work sustainable, and successfully shifted to being full-time supported for his community work. Lots of great insight and discussion!
We cover the news then talk with Milada Majáková about combining Elixir and art. Milada came new to Elixir from Architecture and Graphic Design. We reject the idea that people are either logical or artistic but not both. She shares her journey, what it was like learning Elixir as a first programming language, creating generative art using Elixir and LiveView, and much more!
We cover the news then talk with German Velasco about his free book “Test-Driven Development with Phoenix”. He shares his experiences of learning TDD at ThoughtBot, his writing process, tips and more. On TDD, we talk about the benefits we see, the process of “Red Green Refactor”, tools and even when we don’t do it. Some great insights!
We cover the news then talk with Lukas Larsson and John Högberg to learn about the new BeamAsm project that brings a JIT compiler to Erlang OTP and Elixir. This is a very exciting development for all Beam languages and they break down for us what it is, how it works, how it impacts us as Elixir developers, when to expect it, and they share insights into developing OTP. An episode you don’t want to miss!