

Elixir Wizards
SmartLogic LLC
Elixir Wizards is an interview-style podcast for anyone interested in functional programming and the Elixir Programming Language. Hosted by SmartLogic engineers and Elixirists Owen Bickford, Dan Ivovich, and Sundi Myint, this show features in-depth discussions with some of the brightest minds in the industry, discussing training and documentation in Phoenix LiveView, the evolution of programming languages, Erlang VM, and more.
In the current season, we're branching out from Elixir to compare notes with thought leaders and software engineers from programming languages like JavaScript, Ruby on Rails, Go, Scala, Java, and more. Each episode will take a deep dive into a topic from Machine Learning and AI, to ECS and game development, to education and community.
Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
In the current season, we're branching out from Elixir to compare notes with thought leaders and software engineers from programming languages like JavaScript, Ruby on Rails, Go, Scala, Java, and more. Each episode will take a deep dive into a topic from Machine Learning and AI, to ECS and game development, to education and community.
Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
Episodes
Mentioned books

Aug 14, 2025 • 47min
Elixir DevOps & Interoperability with Dan Ivovich and Charles Suggs
In this episode of Elixir Wizards, host Sundi Myint chats with SmartLogic engineers and fellow Wizards Dan Ivovich and Charles Suggs about the practical tooling that surrounds Elixir in a consultancy setting. We dig into how standardized dev environments, sensible scaffolding, and clear observability help teams ship quickly across many client projects without turning every app into a snowflake. Join us for a grounded tour of what’s working for us today (and what we’ve retired), plus how we evaluate new tech (including AI) through a pragmatic, Elixir-first lens.
Key topics discussed in this episode:
Standardizing across projects: why consistent environments matter in consultancy work
Nix (and flakes) for reproducible dev setups and faster onboarding
Igniter to scaffold common patterns (auth, config, workflows) without boilerplate drift
Deployment approaches: OTP releases, runtime config, and Ansible playbooks
Frontend pipeline evolution: from Brunch/Webpack to esbuild + Tailwind
Observability in practice: Prometheus metrics and Grafana dashboards
Handling time-series and sensor data
When Explorer can be the database
Picking the right tool: Elixir where it shines, integrations where it counts
Using AI with intention: code exploration, prototypes, and guardrails for IP/security
Keeping quality high across multiple codebases: tests, telemetry, and sensible conventions
Reducing context-switching costs with shared patterns and playbooks
Links mentioned:
http://smartlogic.io
https://nix.dev/
https://github.com/ash-project/igniter
Elixir Wizards S13E01 Igniter with Zach Daniel https://youtu.be/WM9iQlQSF_g
https://github.com/elixir-explorer/explorer
Elixir Wizards S14E09 Explorer with Chris Grainger https://youtu.be/OqJDsCF0El0
Elixir Wizards S14E08 Nix with Norbert (Nobbz) Melzer https://youtu.be/yymUcgy4OAk
https://jqlang.org/
https://github.com/BurntSushi/ripgrep
https://github.com/resources/articles/devops/ci-cd
https://prometheus.io/
https://capistranorb.com/
https://ansible.com/
https://hexdocs.pm/phoenix/releases.html
https://brunch.io/
https://webpack.js.org/loaders/css-loader/
https://tailwindcss.com/
https://sass-lang.com/dart-sass/
https://grafana.com/
https://pragprog.com/titles/passweather/build-a-weather-station-with-elixir-and-nerves/
https://www.datadoghq.com/
https://sqlite.org/
Elixir Wizards S14E06 SDUI at Cars.com with Zack Kayser https://youtu.be/nloRcgngT_k
https://github.com/features/copilot
https://openai.com/codex/
https://www.anthropic.com/claude-code
YouTube Video: Vibe Coding TEDCO's RFP https://youtu.be/i1ncgXZJHZs
Blog: https://smartlogic.io/blog/how-i-used-ai-to-vibe-code-a-website-called-for-in-tedco-rfp/
Blog: https://smartlogic.io/blog/from-vibe-to-viable-turning-ai-built-prototypes-into-market-ready-mvps/
https://www.thriftbooks.com/w/eragon-by-christopher-paolini/246801
https://tidewave.ai/
!! We Want to Hear Your Thoughts *!!*
Have questions, comments, or topics you'd like us to discuss in our season recap episode?
Share your thoughts with us here: https://forms.gle/Vm7mcYRFDgsqqpDC9

Aug 7, 2025 • 40min
Vibe Coding the LoopedIn Crochet App with Kimberly Erni & Pei Pei Wang
Today, co-founders Kimberly Erni and Pei Pei Wang join the Elixir Wizards to discuss their crochet app, LoopedIn. Recognizing a gap in the market for a more user-friendly and interactive crochet pattern experience, they're building an app that makes following patterns easier and more enjoyable for crocheters of all skill levels.
They're building features such as step-by-step guidance, video tutorials, and the ability to upload and convert PDF patterns into an interactive format. Kimberly explains how she's leveraging AI tools to vibe code in Elixir and LiveView.
They highlight the challenges and successes they encountered while creating a Progressive Web App (PWA) that integrates AI-powered features. They also discuss their user research and testing process, which involved gathering feedback from the crochet community to prioritize features and improve the app's UX.
Kimberly and Pei Pei share their thoughts on the potential of AI in the tech industry and how it has assisted them in the development and iteration process. They emphasize the importance of understanding the code generated by AI and the need for proper testing and verification. They offer advice to others looking to create passion projects, stressing the value of finding a partner with complementary skills and shared enthusiasm for the project.
Topics discussed in this episode:
Discovering a niche: why crochet patterns need a digital makeover
Core LoopedIn features: interactive steps, video help, PDF conversion
Building a PWA with Elixir & Phoenix LiveView for cross-platform reach
Offline support and caching strategies for on-the-go crafting
AI-driven pattern parsing: benefits and pitfalls of generated code
User research: gathering feedback from beginner to expert crocheters
Agile iterations: testing, prioritizing features, and shipping quickly
Balancing “vibe coding” with quality assurance and proper test coverage
Partnership dynamics: complementary skills and shared passion
Monetization approaches for a niche, community-driven app
Roadmap highlights: expanded social features, advanced AI tooling, and more
Lessons learned: documentation gaps, performance tuning, and UX trade-offs
Advice for side projects: start small, validate with users, and iterate
Links mentioned:
Amigurumis
https://www.amigurumi.com/
https://pragmaticstudio.com/phoenix-liveview
https://grox.io/about-product/liveview
Creating a Local First LiveView App https://www.youtube.com/watch?v=kcafwf14SDo
https://capacitorjs.com/docs
https://flutter.dev/
https://passion.place/
https://cursor.com/
https://claude.ai/
https://nerves-project.org/
https://crochetapp.web.app/
https://www.figma.com/
Little Red Book App https://www.xiaohongshu.com/
!! Try the LoopedIn app here 👉 https://looped-in.gigalixirapp.com *!!*
Add it to your phone like an app:
Open the link in Safari
Tap the Share button (square with arrow)
Tap Add to Home Screen
Tap Add
Then you can open it like a regular app! 🎉 Leave a comment if you try it!
!! We Want to Hear Your Thoughts *!!*
Have questions, comments, or topics you'd like us to discuss in our season recap episode?
Share your thoughts with us here: https://forms.gle/Vm7mcYRFDgsqqpDC9

Jul 31, 2025 • 35min
Python in Elixir Apps with Victor Björklund
In this episode, Elixir Wizard Charles Suggs sits down with Victor Björklund to map out the landscape of Python integration in Elixir applications. From HTTP APIs and external services to embedded runtimes like ErlPort, PythonX, and the Venomous library, we evaluate each approach’s impact on performance, coupling, and developer experience. Victor draws on real-world examples like Scrapy-based web scraping and the Swedish BankID authentication to illustrate best practices for error handling, process pooling, and effective telemetry across the BEAM boundary.
We also tackle the practical side of deployment: packaging Python dependencies in Mix releases, mocking Python calls in tests, and deploying multi-language apps with confidence. Wrapping up, Victor shares his wishlist for even tighter interop (think multiple Python interpreter instances per VM) and offers low-risk entry points, like automating monthly reports, for teams ready to explore the power of Python’s ecosystem within Elixir.
Key topics discussed in this episode:
Integration methods: HTTP APIs, ports, ErlPort, PythonX, Venomous
Performance vs. coupling trade-offs across interop patterns
Managing the Global Interpreter Lock (GIL) with process pools
Leveraging mature Python libraries (Scrapy, BankID, etc.)
Error handling strategies across BEAM↔Python boundaries
Testing mixed-language systems: mocks and integration tests
Packaging and deploying Python alongside Elixir releases
Monitoring and telemetry for multi-language pipelines
Functional programming advantages in Elixir workflows
Tool selection guidance by project requirements
Future possibilities: multiple Python interpreters in one VM
Community resources for Python–Elixir interop help
Links mentioned:
jawdropping.io
https://cplusplus.com/
https://www.python.org/
https://react.dev/
https://nodejs.org/en
https://erlport.org/
https://hexdocs.pm/pythonx/Pythonx.html
https://pyrlang.github.io/Pyrlang/
Python GIL (Global Interpreter Lock): https://realpython.com/python-gil/
https://github.com/devinus/poolboy
https://hexdocs.pm/venomous/Venomous.html
Try-catch https://syntaxdb.com/ref/python/try-catch
https://www.scrapy.org/
https://www.bankid.com/en/
https://www.phoenixframework.org/
https://www.tzeyiing.com/posts/using-a-hunky-poolboy-to-manage-your-python-erlport-processes-in-elixir/
https://medium.com/stuart-engineering/how-we-use-python-within-elixir-486eb4d266f9
https://x.com/bjorklundvictor
https://victorbjorklund.com/
https://www.linkedin.com/in/victorbjorklund/
hello@victorbjorklund.com

Jul 24, 2025 • 43min
Explorer: Data Frames in Elixir with Chris Grainger
In this episode of Elixir Wizards, Charles Suggs sits down with Chris Grainger, co-founder and CTO of Amplified and creator of the Explorer library. Chris explains how Explorer brings the familiar data-frame workflows of R’s dplyr and Python’s pandas into the Elixir world. We explore (pun intended!) how Explorer integrates with Ecto, Nx, and LiveView to build end-to-end data pipelines without leaving the BEAM, and how features like lazy evaluation and distributed frames let you tackle large datasets.
Whether you’re generating reports or driving interactive charts in LiveView, Explorer makes tabular data accessible to every Elixir developer. We wrap up by looking ahead to SQL-style backends, ADBC connectivity, and other features on the Explorer roadmap.
Key topics discussed in this episode:
dplyr- and pandas-inspired data manipulation in Elixir
Polars integration via Rust NIFs for blazing performance
Immutable data frames and BEAM-friendly concurrency
Lazy evaluation to work with arbitrarily large tables
Distributed data-frame support for multi-node processing
Seamless integration with Ecto schemas and queries
Zero-copy interoperability between Explorer and Nx tensors
Apache Arrow and ADBC protocols for cross-language I/O
Exploring SQL-style backends for remote query execution
Building interactive dashboards and charts in LiveView
Consolidating ETL workflows into a single Elixir API
Streaming data pipelines for memory-efficient processing
Tidy data principles and behavior-based API design
Real-world use cases: report generation, patent analysis, and more
Future roadmap: new backends, query optimizations, and community plugins
Links mentioned:
https://hexdocs.pm/explorer/Explorer.html
https://www.amplified.ai/
https://www.r-project.org/
https://vita.had.co.nz/papers/tidy-data.pdf
https://www.tidyverse.org/
https://www.python.org/
https://dplyr.tidyverse.org/
https://go.dev/
https://hexdocs.pm/nx/Nx.html
https://github.com/pola-rs/polars
https://github.com/rusterlium/rustler
https://www.rust-lang.org/
https://www.postgresql.org/
https://hexdocs.pm/ecto/Ecto.html
https://www.elastic.co/elasticsearch
https://arrow.apache.org/
Chris Grainger & Chris McCord Keynote ElixirConf 2024: https://youtu.be/4qoHPh0obv0
https://dbplyr.tidyverse.org/
https://spark.posit.co/
https://hexdocs.pm/pythonx/Pythonx.html
https://hexdocs.pm/vega_lite/VegaLite.html
10 Minutes to Explorer: https://hexdocs.pm/explorer/exploring_explorer.html
https://github.com/elixir-nx/scholar
https://scikit-learn.org/stable/
https://github.com/cigrainger
https://erlef.org/slack-invite/erlef
https://bsky.app/profile/cigrainger.bsky.social
https://github.com/cigrainger

Jul 17, 2025 • 41min
Nix for Elixir Apps with Norbert (NobbZ) Melzer
In this episode of Elixir Wizards, Dan Ivovich and Charles Suggs sit down with Norbert “NobbZ” Melzer to discuss how Nix enables reproducible builds, consistent development environments, and reliable deployments for Elixir projects.
Norbert shares his journey from Ruby to Elixir, contrasts Nix with NixOS, and walks us through flakes, nix-shell workflows, sandboxed builds, and rollback capabilities. Along the way, we cover real-world tips for managing Hex authentication, integrating Nix into CI/CD, wrapping Mix releases in Docker, and avoiding common pitfalls, such as flake performance traps.
Whether you’re spinning up your first dev shell or rolling out a production release on NixOS, you’ll come away with a clear, gradual adoption path and pointers to the community mentors and resources that can help you succeed.
Key topics discussed in this episode:
Reproducible, sandboxed builds vs. traditional package managers
Nix flakes for locked dependency graphs and version pinning
nix-shell: creating consistent development environments across teams
Rollback and immutable deployment strategies with Nix/NixOS
Integrating Nix with the Elixir toolchain: Hex, Mix, and CI/CD pipelines
Flakes vs. standard shells: when and how to transition
Handling private Hex repositories and authentication in Nix
Cross-platform support (macOS/Darwin, Linux variants)
Channels, overlays, and overrides for customizing builds
Dockerizing Elixir releases using Nix-based images
Home Manager for personal environment configuration
Security patching workflows in a Nix-managed infrastructure
Common pitfalls: flake performance, sandbox workarounds, and symlink behavior
Community resources and the importance of human mentorship
Links mentioned:
https://jobrad-loop.com/
https://nixos.org/
https://nix.dev/
https://nix.dev/manual/nix/2.18/command-ref/nix-shell
https://github.com/nix-darwin/nix-darwin
https://asdf-vm.com/
https://go.dev/
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/packaging_and_distributing_software/introduction-to-rpm_packaging-and-distributing-software
Nix Flake templates for Elixir https://github.com/jurraca/elixir-templates
https://www.docker.com/
https://www.sudo.ws/
https://ubuntu.com/
https://archlinux.org/
Nobbz’s blog https://blog.nobbz.dev/blog/
https://ayats.org/blog/nix-workflow
@nobbz.dev on BlueSky
@NobbZ1981 on Twitter
https://www.linkedin.com/in/norbert-melzer/
https://youtu.be/HbtbdLolHeM?si=6M7fulTQZmuWGGCM (talk on CodeBEAM)

Jul 10, 2025 • 46min
Set Theoretic Types in Elixir with José Valim
Elixir creator José Valim returns to the podcast to unpack the latest developments in Elixir’s set-theoretic type system and how it is slotting into existing code without requiring annotations. We discuss familiar compiler warnings, new warnings based on inferred types, a phased rollout in v1.19/v1.20 that preserves backward compatibility, performance profiling the type checks across large codebases, and precise typing for maps as both records and dictionaries.
José also touches on CNRS academic collaborations, upcoming LSP/tooling enhancements, and future possibilities like optional annotations and guard-clause typing, all while keeping Elixir’s dynamic, developer-friendly experience front and center.
Key topics discussed in this episode:
Set-theoretic typing (union, intersection, difference)
Compiler-driven inference with zero annotations
Phased rollout strategy in 1.19 and 1.20
Performance profiling for large codebases
Map typing as records and dictionaries
Exhaustivity checks and behavioral typing in GenServers
Language Server Protocol & tooling updates
Future optional annotations and guard-clause typing
CNRS collaboration for theoretical foundations
Clear error messages and false-positive reduction
Community-driven feedback and iterative improvements
Links mentioned:
https://github.com/elixir-nx
https://livebook.dev/
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
https://hexdocs.pm/elixir/main/gradual-set-theoretic-types.html
https://hexdocs.pm/dialyxir/0.4.0/readme.html
https://remote.com/
Draw the Owl meme: https://i.imgur.com/rCr9A.png
https://dashbit.co/blog/data-evolution-with-set-theoretic-types
https://hexdocs.pm/ecto/Ecto.html
https://github.com/elixir-lsp/elixir-lsSpecial Guest: José Valim.

Jul 3, 2025 • 49min
SDUI at Scale: GraphQL & Elixir at Cars.com with Zack Kayser
Zack Kayser, Staff Software Engineer at cars.com, joins Elixir Wizards Sundi Myint and Charles Suggs to discuss how Cars.com adopted a server-driven UI (SDUI) architecture powered by Elixir and GraphQL to deliver consistent, updatable interfaces across web, iOS, and Android.
We explore why SDUI matters for feature velocity, how a mature design system and schema planning make it feasible, and what it takes, culturally and technically, to move UI logic from client code into a unified backend.
Key topics discussed in this episode:
SDUI fundamentals and how it differs from traditional server-side rendering
GraphQL as the single source of truth for UI components and layouts
Defining abstract UI components on the server to eliminate duplicate logic
Leveraging a robust design system as the foundation for SDUI success
API-first development and cross-team coordination for schema changes
Mock data strategies for early UI feedback without breaking clients
Handling breaking changes and hot-fix deployments via server-side updates
Enabling flexible layouts and A/B testing through server-controlled ordering
Balancing server-driven vs. client-managed UI
Iterative SDUI rollout versus “big-bang” migrations in large codebases
Using type specs and Dialyxir for clear cross-team communication
Integration testing at the GraphQL layer to catch UI regressions early
Quality engineering’s role in validating server-driven interfaces
Production rollback strategies across web and native platforms
Considerations for greenfield projects adopting SDUI from day one
Zack and Ethan's upcoming Instrumenting Elixir Apps book
Links mentioned:
https://cars.com
https://github.com/absinthe-graphql/absinthe
Telemetry & Observability for Elixir Apps Ep: https://youtu.be/1V2xEPqqCso
https://www.phoenixframework.org/blog/phoenix-liveview-1.0-released
https://hexdocs.pm/phoenix_live_view/assigns-eex.html
https://graphql.org/
https://tailwindcss.com/
https://github.com/jeremyjh/dialyxir
https://github.com/rrrene/credo
GraphQL Schema https://graphql.org/learn/schema/
SwiftUI https://developer.apple.com/documentation/swiftui/
Kotlin https://kotlinlang.org/
https://medium.com/airbnb-engineering/a-deep-dive-into-airbnbs-server-driven-ui-system-842244c5f5
Zack’s Twitter: https://x.com/kayserzl/
Zack’s LinkedIn: https://www.linkedin.com/in/zack-kayser-93b96b88 Special Guest: Zack Kayser.

Jun 26, 2025 • 49min
Rustler: Bridging Elixir and Rust with Sonny Scroggin
Sonny Scroggin, a member of the Rustler Core Team and an expert in high-performance applications, joins Sundi Myint and Charles Suggs for an engaging discussion. They explore the seamless integration of Rust and Elixir, focusing on Native Implemented Functions (NIFs) for CPU-intensive tasks. Sonny shares insights on when to use NIFs versus other approaches, emphasizing Rust's memory safety. Exciting future developments for Rustler, including asynchronous NIF interfaces, are highlighted, alongside the enduring strengths of Elixir's dynamic model.

Jun 19, 2025 • 44min
Nx and Machine Learning in Elixir with Sean Moriarity
Sean Moriarity, co-creator of the Nx project and author of Machine Learning in Elixir, shares his journey from military to tech, focusing on large language models. He discusses the evolving Elixir ML landscape, the strategic choice between off-the-shelf models and custom solutions, and how to effectively integrate Python libraries. Sean highlights Elixir's strengths in distributed computing for ML tasks and offers practical advice on starting ML projects, emphasizing the use of motivating use cases and domain-specific languages to enhance AI workflows.

Jun 12, 2025 • 38min
LangChain: LLM Integration for Elixir Apps with Mark Ericksen
Mark Ericksen, creator of the Elixir LangChain framework, joins the Elixir Wizards to talk about LLM integration in Elixir apps. He explains how LangChain abstracts away the quirks of different AI providers (OpenAI, Anthropic’s Claude, Google’s Gemini) so you can work with any LLM in one more consistent API. We dig into core features like conversation chaining, tool execution, automatic retries, and production-grade fallback strategies.
Mark shares his experiences maintaining LangChain in a fast-moving AI world: how it shields developers from API drift, manages token budgets, and handles rate limits and outages. He also reveals testing tactics for non-deterministic AI outputs, configuration tips for custom authentication, and the highlights of the new v0.4 release, including “content parts” support for thinking-style models.
Key topics discussed in this episode:
• Abstracting LLM APIs behind a unified Elixir interface
• Building and managing conversation chains across multiple models
• Exposing application functionality to LLMs through tool integrations
• Automatic retries and fallback chains for production resilience
• Supporting a variety of LLM providers
• Tracking and optimizing token usage for cost control
• Configuring API keys, authentication, and provider-specific settings
• Handling rate limits and service outages with degradation
• Processing multimodal inputs (text, images) in Langchain workflows
• Extracting structured data from unstructured LLM responses
• Leveraging “content parts” in v0.4 for advanced thinking-model support
• Debugging LLM interactions using verbose logging and telemetry
• Kickstarting experiments in LiveBook notebooks and demos
• Comparing Elixir LangChain to the original Python implementation
• Crafting human-in-the-loop workflows for interactive AI features
• Integrating Langchain with the Ash framework for chat-driven interfaces
• Contributing to open-source LLM adapters and staying ahead of API changes
• Building fallback chains (e.g., OpenAI → Azure) for seamless continuity
• Embedding business logic decisions directly into AI-powered tools
• Summarization techniques for token efficiency in ongoing conversations
• Batch processing tactics to leverage lower-cost API rate tiers
• Real-world lessons on maintaining uptime amid LLM service disruptions
Links mentioned:
https://rubyonrails.org/
https://fly.io/
https://zionnationalpark.com/
https://podcast.thinkingelixir.com/
https://github.com/brainlid/langchain
https://openai.com/
https://claude.ai/
https://gemini.google.com/
https://www.anthropic.com/
Vertex AI Studio https://cloud.google.com/generative-ai-studio
https://www.perplexity.ai/
https://azure.microsoft.com/
https://hexdocs.pm/ecto/Ecto.html
https://oban.pro/
Chris McCord’s ElixirConf EU 2025 Talk https://www.youtube.com/watch?v=ojL_VHc4gLk
Getting started:
https://hexdocs.pm/langchain/getting_started.html
https://ash-hq.org/
https://hex.pm/packages/langchain
https://hexdocs.pm/igniter/readme.html
https://www.youtube.com/watch?v=WM9iQlQSF_g
@brainlid on Twitter and BlueSkySpecial Guest: Mark Ericksen.