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
We talk with Jonatan Kłosko, the coder behind Livebook, to learn how it works, how the collaborative feature was done, what you can do with it, what you shouldn’t do with it, some unusual ways people are using it, and more! We can’t help but talk about all the fun and cool ways it can be abused and how it’s finding exciting uses outside of machine learning. A great discussion with lots of insights.
Show Notes online – https://thinkingelixir.com/podcast-episodes/046-livebook-with-jonatan-klosko
We talk with Michał Buszkiewicz about Junior Developers in the Elixir community. We share tips for Juniors both early in their careers but also more experienced developers coming new to Elixir. We talk about the University vs Bootcamp approaches and what you want to focus on coming from either side. We further discuss how we as employers can support and encourage juniors. A lot of great resources shared!
We talk with Sasha Fonseca about Elixir’s data types behind the scenes. We learn about binary leaks, discuss memory usage, performance considerations, what boxed values are and much more!
We talk with Marcin Lewandowski about Membrane Framework. We learn what it is, the project’s goals, how people are using it and how it can solve the speed-to-market problem when streaming multimedia. We cover WebRTC, radio, industry challenges, why you want to deploy it to your own infrastructure, why startups fail and much more!
Show Notes online – https://thinkingelixir.com/podcast-episodes/043-membrane-with-marcin-lewandowski
We talk with Velina Petrova about a blog post she wrote showing how a “designer dreamed up” feature was delivered using LiveView and Alpine.js. She shares how she added the LiveView feature to a non-LiveView page demonstrating a great strategy for slowly moving a project in the direction you want to go without stopping to re-write. We also talk about blogging, the value of sharing and putting yourself out there. We all share some tips we’ve found helpful when creating content. A fun discussion with some great tips and tools shared!
We talk with Mrinal Wadhwa about Ockam.io, the project and the company. They are taking on the ambitious goal of building an open protocol through Elixir and Rust libraries to enable secure and trusted IoT platforms. We learn about recurring problems that the IoT industry faces and how they are seeking to solve them differently. A very informative and interesting discussion!
We talk about the mental models we use for writing our Elixir code and for thinking about our Elixir systems (starting at 5:46). We cover transformations, plug, and Mark’s “Workshop Model” (starting at 23:45). We also talk about LiveView, (starting at 31:20) how we approach it today, mistakes we’ve both made and seen. A fun discussion! We want to continue the discussion with you over on ElixirForum. Check the show notes for links to those topics!
Wojtek Mach returns and talks about the new Mix.install/2 feature coming in Elixir 1.12. We learn about some other features coming that will help script authors. We talk about OTP 24 and when we can expect 1.12 to be released, ExDocs support for Erlang libraries, and more!
Saša Jurić shares how the team at Very Big Things is building maintainable Elixir code. This ranges from the development processes to code design and organization. He takes some “radical” positions and challenges conventions on a mission to find what actually works well. We talk about his library Boundary and how it helps enforce API designs. He talks about the “Junk Drawer Pattern” and how code analysis helps identify lines of separation for refactoring. A thought provoking and fun discussion!
After covering the news, we share a live recording of the show from the Lambda Days conference. It was a lot of fun! We covered topics like learning and teaching Elixir, functional programming, strengths of Elixir over Erlang, the developer tooling, why Elixir is awesome even when not building distributed systems, and much more!
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