

Thinking Elixir Podcast
ThinkingElixir.com
The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community.
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 us on this journey!
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 us on this journey!
Episodes
Mentioned books

Mar 16, 2021 • 38min
39: Mix Install and ExDocs for Erlang with Wojtek Mach
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!
Show Notes online - http://podcast.thinkingelixir.com/39
Elixir Community News
https://twitter.com/elixirbookclub – New Elixir Book Club
[Discord Elixir Book Club](Discord Elixir Book Club) – https://discord.gg/veN54bAmVa
https://github.com/elixir-lang/elixir/commit/4d2be245c0707698df22e9f659120e3daaa82186 – PR that makes doctests 4x faster
https://twitter.com/sorentwo/status/1366547813128110083 – Global concurrency limits and global rate limiting in Oban Pro release
https://thinkingelixir.com/podcast-episodes/029-running-jobs-using-oban-with-parker-selbert/ – Previous interview with Parker Selbert about Oban and Oban Pro
https://elixirforum.com/t/surface-a-component-based-library-for-phoenix-liveview/27671/95 – Surface 0.3.0 release
https://twitter.com/josevalim/status/1367759827905245185 – Nx library gets early binding support for LibTorch (from PyTorch) as a custom backend
https://dashbit.co/blog/goth-redesign – Wojtek Mach's blog post about Goth library redesign
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://github.com/elixir-lang/elixir/pull/10674 – PR adding Mix.install support
https://groups.google.com/g/elixir-lang-core/c/q0k2dX992HU – Mix.install feature proposal discussion
https://hexdocs.pm/hex_core/readme.html – Erlang doc example
https://github.com/elixir-lang/elixir/blob/master/CHANGELOG.md
https://www.erlang.org/news/144
https://github.com/elixir-makeup/makeup
https://github.com/peburrows/goth
Guest Information
https://twitter.com/wojtekmach – on Twitter
https://github.com/wojtekmach/ – on Github
https://dashbit.co/ – Blog posts on Dashbit
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Mar 9, 2021 • 1h 13min
38: Maintainable Elixir with Saša Jurić
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!
Show Notes online - http://podcast.thinkingelixir.com/38
Elixir Community News
https://twitter.com/josevalim/status/1366417827528396803 – Jose Valim is stepping down in his role as Board Director of the The Erlang Ecosystem Foundation
https://twitter.com/josevalim/status/1366427218306564096 – Jose Valim calls out to the Erlang community for any developers who are interested in Machine Learning
https://pragprog.com//titles/liveview/programming-phoenix-liveview/ – A new Phoenix LiveView book is coming out and is currently in a beta release
https://twitter.com/chris_mccord/status/1365031826813825033 – Chris McCord shared his perspective around the general community excitement with LiveView
https://blog.aeternity.com/erlscripten-92c815786987 – The company https://aeternity.com released a project called "Erlscripten"
https://seanmoriarity.com/ – Follow Sean Moriarity's blog for his "Nx Tip of the Week" series
https://www.erlang.org/news/144 – OTP 24 will release candidates have started
https://hex.pm/packages/finch – Finch HTTP library
https://twitter.com/chriskeathley/status/1364692787032113153 – Chris Keathley posted graphics showing the before and after performance charts from it's use at BleacherReport
https://github.com/elixir-ecto/ecto/pull/3566 – Ecto.Multi.inspect/2,3 support being added to Ecto
https://github.com/phoenixframework/phoenix_live_view/pull/1349/files – Fix for compiler warnings on live_component usage
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f – Discord announced why they were moving away from Go to Rust
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://www.manning.com/books/elixir-in-action-second-edition – Elixir in Action 2nd Edition book
https://verybigthings.com/
https://medium.com/very-big-things/towards-maintainable-elixir-the-development-process-205ee257c109
https://medium.com/very-big-things/towards-maintainable-elixir-the-core-and-the-interface-c267f0da43
https://en.wikipedia.org/wiki/Code_Complete
https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670
https://github.com/rrrene/credo
https://github.com/rrrene/credo/blob/master/lib/credo/check/readability/strict_module_layout.ex
https://github.com/sasa1977/boundary
https://github.com/sasa1977/ci
https://elixirforum.com/
Guest Information
https://twitter.com/sasajuric – on Twitter
https://github.com/sasa1977/ – on Github
https://www.theerlangelist.com/ – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Mar 2, 2021 • 51min
37: The Lambda Days Conference and Elixir
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!
Show Notes online - http://podcast.thinkingelixir.com/37
Elixir Community News
https://dashbit.co/blog/nx-numerical-elixir-is-now-publicly-available – Project Nx has finally gone public!
https://github.com/elixir-nx/nx – Project source on Github
https://groups.google.com/g/elixir-lang-core/c/Q4ZnK-R59-4/m/Uc2xOJKlAwAJ – Proposal to add before_suite to ExUnit
https://github.com/nerves-project/nerves_examples/tree/main/hello_zig – Zig Lang is now available for use on Nerves official platforms
https://gleam.run/news/gleam-v0.14-released/ – Gleam Lang 0.14 was released
https://hex.pm/packages/prom_ex – PromEx library leaves beta and releases v1.0
https://www.beamrad.io/ – New BeamRad.io Elixir and BEAM focused podcast
https://github.com/erlang-ls/erlang_ls/releases/tag/0.10.0 – ElixirLS v0.10.0 released
https://github.com/erlang/otp/pull/2960 – OTP 24 get faster float to string algorithm
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://www.lambdadays.org/lambdadays2021
https://codesync.global/conferences/code-beam-v-america-2021/ – Code Beam V America 2021
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Feb 23, 2021 • 42min
36: Using LiveView and Hooks with Alex Minette
Alexandre Minette shares his adventures with LiveView as he builds a personal finance tracking application. We cover his use of hooks to integrate Javascript libraries that give him the UX he wants. He shares some tips and resources for finding Javascript libraries that work well with LiveView. Alex pushes browser locale data up to the server to customize rendering dates and times for a fun and different approach. We also get his perspective on using Flutter for Mobile development and where he thinks it fits with web technologies like LiveView.
Show Notes online - http://podcast.thinkingelixir.com/36
Elixir Community News
https://www.tiobe.com/tiobe-index/ – Elixir is number 48 in the TIOBE index
https://twitter.com/MarlusSaraiva/status/1360254701808324615 – Surface Catalogue in the works. Similar to a "React Storybook" but for LiveView Surface components.
https://twitter.com/wbruce/status/1359299409196896259 – Bruce Williams, co-founder of the Absinthe library announced he's stepping away from being an active core contributor.
https://dashbit.co/blog/building-a-custom-broadway-producer-for-the-twitter-stream-api – Dashbit new blog post on using Broadway to consume a Twitter Stream API
https://github.com/erlang/otp/issues – Erlang OTP has moved the project to Github for issue management.
https://stillstatic.io/ – New static site generator called Still
https://dalgona.github.io/Serum/ – Alternative Elixir static site generator
https://hexdocs.pm/nerves_system_rpi0/changelog.html#v1-14-0 – New release for Nerves, v1.40. Bring native Apple M1 support and more.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://alex-min.fr/phoenix-live-view-very-large-list-hook/
https://alex-min.fr/live-view-browser-timezone/
https://github.com/fulmicoton/fattable/ - Fattable JS library
https://www.npmjs.com/package/moment
https://plaid.com/
http://microjs.com
http://cldr.unicode.org/
https://github.com/kipcole9
https://github.com/elixir-cldr/cldr
https://www.youtube.com/watch?v=MZvmYaFkNJI - Chris McCord's 15 minute Twitter video
https://flutter.dev/
Guest Information
https://github.com/alex-min – on Github
https://alex-min.fr/ – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Feb 16, 2021 • 41min
35: X-Plane's Elixir MMO with Tyler Young
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!
Show Notes online - http://podcast.thinkingelixir.com/35
Elixir Community News
https://elixir-lang.org/blog/2021/02/03/social-messaging-with-elixir/ – New Elixir Case study covers Community.com
https://github.com/erlang/otp/pull/3022 – Update to OTP master means 5x faster Phoenix template compilation
https://twitter.com/germsvel/status/1357690618621919232 – Bamboo update decouples it from Phoenix
https://pragprog.com/titles/sgdpelixir/concurrent-data-processing-in-elixir/ – New beta book "Concurrent Data Processing in Elixir" from PragProg
https://twitter.com/wojtekmach/status/1357857784205869056 – Proof of Concept - Erlang docs in ExDocs
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://twitter.com/tylerayoung/status/1349423099410833409 – RakNet implemented in Elixir
https://twitter.com/tylerayoung/status/1351578137231056898
https://www.youtube.com/watch?v=JvBT4XBdoUE – The Soul of Erlang and Elixir - Saša Jurić
https://developer.x-plane.com/2021/01/have-you-heard-the-good-news-about-elixir/
https://appsignal.com/
https://github.com/X-Plane/elixir-raknet
Guest Information
https://twitter.com/TylerAYoung – on Twitter
https://github.com/s3cur3 – on Github
https://www.x-plane.com – X-Plane Github
https://tylerayoung.com – Personal Blog
https://developer.x-plane.com/blog/ – Developer Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Feb 9, 2021 • 1h 16min
34: José Valim reveals Project Nx
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.
Nx stands for "Numerical Elixir". The Nx project brings a unique numerical mode to Elixir along with GPU support. This important work lays the foundation for a powerful new era with data science in Elixir! Listen in as Jose discusses the details of how this works, how it came about, the goals of the project, what this means for the community, and what comes next.
Show Notes online - http://podcast.thinkingelixir.com/34
Elixir Community News
https://elixirforum.com/t/introducing-elixirls-the-elixir-language-server/5857/122 – ElixirLS version 0.6.3 released
https://github.com/elixir-lsp/elixir-ls/blob/master/CHANGELOG.md – ElixirLS Changelog
https://codesync.global/conferences/code-beam-v-america-2021/ – CodeBEAM American conference dates March 10-12
https://hexdocs.pm/oban/changelog.html#2-4-0-2021-01-26 – Oban 2.4.0 released
https://twitter.com/sorentwo/status/1354099475191652352 – Oban performance improvement charts
https://github.com/wintermeyer/phx_tailwind_generators – Phoenix TailwindCSS generator
https://github.com/phoenixframework/phoenix/pull/4191 – Phoenix JavaScript gets more modern with Phoenix ES modules
https://fullstackphoenix.com/boilerplates/new – Feedback! We learned about the site FullStackPhoenix which helps you start new projects already setup with several options for how to configure it.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
Nx stands for "Numerical Elixir"
https://elixirforum.com/t/anyone-who-wants-to-speculate-about-this-tweet-from-jose/35772/68 – A great text summary of the announcement found on ElixirForum.
https://twitter.com/josevalim/status/1356880707474370560 – José Valim released the new Nx logo during our recording. The cute animal is a Numbat!
https://en.wikipedia.org/wiki/Numbat
https://github.com/erlang/otp/pull/2890 – José's pull request to add 16-bit floats in bitstrings to OTP
https://numpy.org/
https://en.wikipedia.org/wiki/Softmax_function
https://pragprog.com/titles/smgaelixir/genetic-algorithms-in-elixir/
https://elixirforum.com/t/pelemay-formerly-hastega-challenge-for-gpgpu-on-elixir/22986
https://erlang.org/doc/man/erl_nif.html#dirty_nifs – Information on Dirty NIFs
https://twitter.com/bcardarella
https://www.tensorflow.org/xla
https://tvm.apache.org/
https://mlir.llvm.org/
https://github.com/google/jax
https://julialang.org/
https://www.lambdadays.org/lambdadays2021/jose-valim – LambdaDays speaker page
https://www.lambdadays.org/lambdadays2021#programme – José speaks on day 2
Promo code for 15% off LambdaDays tickets! Just use "thinkingelixir15"
https://twitter.com/josevalim
https://twitter.com/sean_moriarity
https://twitter.com/elixirlang
Guest Information
https://twitter.com/josevalim – on Twitter
https://github.com/josevalim – on Github
https://dashbit.co/ – Dashbit website and blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Feb 2, 2021 • 45min
33: Postgres PubSub and Elixir with Allen Wyma
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.
Show Notes online - http://podcast.thinkingelixir.com/33
Elixir Community News
https://twitter.com/josevalim/status/1353634780018069506 – Jose Valim will reveal what project Nx is on ThinkingElixir!
https://www.lambdadays.org/lambdadays2021/thinking-elixir – 15% discount on LambdaDays tickets, use coupon code "thinkingelixir15"
https://www.testingliveview.com/ – German Velasco's Testing LiveView book now has a early-access course
https://github.com/elixir-circuits/circuits_quickstart/releases/tag/v0.4.2 – Nerves Circuits Quickstart image was updated with WiFi improvement
https://github.com/erlef/setup-elixir – The Erlang Ecosystem Foundation is now the proud owner of the github action "setup-elixir". Providing an "official" Github Actions Elixir CI pipeline.
https://github.com/elixir-lang/elixir/pull/10674 – Mix.install landed making it easier to do system scripting with Elixir
https://twitter.com/louispilfold/status/1353058992751140867 – Gleam Lang project now generates Erlang typespecs for better integrations
https://thinkingelixir.com/podcast-episodes/023-gleam-and-static-types-with-louis-pilfold/ – Previous interview with Louis Pilfold about Gleam
https://elixirstatus.com/p/Vmxb2-intellij-elixir-v1192 – Lots of bug fixes for Elixir support in the IntelliJ Elixir plugin
https://github.com/hexpm/hexpm/commit/f2e7e946ccf4a402aa26594a6fa412332a7f7c5f – Using custom Hex.pm registries is supported in mix.exs files
https://twitter.com/fhunleth/status/1352364417846026240 – mix hex.outdated updated to include a link that shows the diffs
https://hex.pm/blog/introducing-hex-preview – Todd Resudek announced preview.hex.pm to see exactly what gets installed with a package
https://developer.x-plane.com/2021/01/have-you-heard-the-good-news-about-elixir/ – X-Plane is using Elixir for their new MMO feature
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://www.youtube.com/watch?v=i30D_zTVJsc
https://www.essentialsql.com/introduction-common-table-expressions-ctes/
https://hexdocs.pm/postgrex/Postgrex.Notifications.html
http://www.plangora.com
http://www.teachmecode.hk
Guest Information
https://twitter.com/allenwyma – Allen on Twitter
https://twitter.com/Plangora – Plangora on Twitter
https://www.github.com/plangora – on Github
http://www.plangora.com – Blog
http://www.teachmecode.hk – Teach Me Code website
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Jan 26, 2021 • 44min
32: Circuit Breaker and Elixir Patterns with Allan MacGregor
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!
Show Notes online - http://podcast.thinkingelixir.com/32
Elixir Community News
https://elixir-lang.org/blog/2021/01/13/orchestrating-computer-vision-with-elixir/ – New Elixir case study features the company V7 where they use Elixir for orchestrating computer vision.
https://www.phoenixframework.org/blog/improving-testing-and-continuous-integration-in-phoenix – Phoenix is using Earthly for running tests on CI and locally
https://github.com/sasa1977/ci – Sasa Juric releases a hex package to run CI
https://hexdocs.pm/oban/web-changelog.html#v2-5-0-2021-01-15 – Oban Web v2.5.0 is out with new features
https://hex.pm/blog/hex-v0.21-released – Hex 0.21 released. Adds registry self-hosting and more!
https://hex.pm/docs/self_hosting – Documentation on self-hosting Hex
https://twitter.com/josevalim/status/1350004900973981699 – Jose Valim is requesting written guides or blog posts from people who have used "mix phx.gen.auth" and customized it
https://github.com/erlang-ls/erlang_ls/releases/tag/0.8.0 – Erlang-LS - Language server 0.8 was released along with a VS Code extension
https://thinkingelixir.com/petal-stack-in-elixir/ – ThinkingElixir post on PETAL stack
https://changelog.com/posts/petal-the-end-to-end-web-stack – Lars Wikman post on PETAL stack
https://redrapids.medium.com/petal-liveview-and-lamp-eb5e9f81a804 – Bruce Tate post on PETAL stack
https://www.lambdadays.org/lambdadays2021/thinking-elixir – ThinkingElixir podcast will record live at LambdaDays 2021 - Feb 16th
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://allanmacgregor.com/posts/circuit-breaker-pattern-in-elixir
https://siteguardian.dev
https://www.humi.ca/
https://en.wikipedia.org/wiki/Flow-based_programming
https://hex.pm/packages/flowex
https://www.youtube.com/watch?v=BJVzwaTiOdk
https://hex.pm/packages/ok
https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/
https://bernheisel.com/blog/nostalgia-programming
https://dashbit.co/ebooks/the-little-ecto-cookbook – The Little Ecto Cookbook
https://microservices.io/
https://www.youtube.com/watch?v=z4p4e9Uwn6I
Guest Information
https://twitter.com/allanmacgregor – on Twitter
https://github.com/amacgregor – on Github
https://allanmacgregor.com – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward

Jan 19, 2021 • 51min
31: Crawling the Web using Elixir with Oleg Tarasenko and Tze Yiing
Oleg Tarasenko and Tze Yiing discuss web crawling with Elixir, covering legal concerns, codeless scrapers, and handling login pages. They explain how Elixir is ideal for crawling tasks and showcase the crawly project for efficient crawling tasks.

Jan 12, 2021 • 59min
30: Mutation Testing using Muzak with Devon Estes
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!
Show Notes online - http://podcast.thinkingelixir.com/30
Elixir Community News
https://github.com/elixir-lang/elixir/releases/tag/v1.11.3 – Elixir 1.11.3 was released with mostly bug fixes
https://www.lambdadays.org/lambdadays2021 – Lambda Days 2021. An Online Conference 16-19 February 2021
https://twitter.com/lambdadays/status/1346021063671619584 – Jose Valim plans to announce something he's excited about at the conference
https://github.com/phoenixframework/phoenix_html/issues/329 – Phoenix HTML is adding validated HTML
https://utils.zest.dev/gendiff – David's Elixir generator diffing service
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://devonestes.com/announcing_muzak
https://hexdocs.pm/muzak/muzak.html
https://hexdocs.pm/assertions/Assertions.html – Another library Devon created in the area of testing
https://github.com/bencheeorg/benchee
https://github.com/PragTob
https://github.com/danmayer/coverband
https://github.com/unused-code/unused
https://github.com/sponsors
Guest Information
https://twitter.com/devoncestes – on Twitter
https://github.com/devonestes – on Github
https://devonestes.com/ – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward


