Discover
Elixir Wizards

Elixir Wizards
Author: SmartLogic LLC
Subscribed: 111Played: 4,533Subscribe
Share
© 2025 SmartLogic LLC
Description
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)
199 Episodes
Reverse
Today, the Elixir Wizards wrap up Season 14 “Enter the Elixirverse.” Dan, Charles, and Sundi look back at some common themes: Elixir plays well with others, bridges easily to access languages and tools, and remains a powerful technology for data flow, concurrency, and developer experience. We revisit the popular topics of the year, from types and tooling to AI orchestration and reproducible dev environments, and share what we’re excited to explore next.
We also invite your questions and takeaways to help shape future seasons and conference conversations. Season 14 doubles as a handy primer for anyone curious about how Elixir integrates across the stack.
Key topics discussed in this episode:
* Lessons from a season of interoperability
* Set-theoretic types and what new compiler warnings unlock
* AI in practice: LLM orchestration, fallbacks, and real-world use
* SDUI and GraphQL patterns for shipping UI across web/iOS/Android
* Dataframes in Elixir with Explorer for analytics workflows
* Python interoperability (ErlPort, PythonX) and when to reach for it
* Reproducible dev environments with Nix and friends
* Performance paths: Rustler and Zig for native extensions
* Bluetooth & Nerves: Blue Heron and hardware integrations
* DevEx upgrades: LiveView, build pipelines, and standard project setup
* Observability and ops: Prometheus/Grafana and sensible deployments
* Community feedback, conferences, and what’s on deck for next season
Links mentioned in this episode:
Cars.com
S14E06 SDUI at Scale with Elixir https://youtu.be/nloRcgngTk?si=g4Zd4N1s56Ronrtw
https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html
https://wordpress.com/
https://elixir-lang.org/
S14E01 Zigler: Zig NIFs for Elixir https://youtu.be/hSAvWxh26TU?si=d55tVuZbNw0KCfT
https://ziglang.org/
https://hexdocs.pm/zigler/Zig.html
https://github.com/blue-heron/blueheron
https://github.com/elixir-explorer/explorer
S14E08 Nix for Elixir Apps https://youtu.be/yymUcgy4OAk?si=BRgTlc2VK5bsIhIf
https://nixos.org/
https://nix.dev/
S14E07 Set Theoretic Types in Elixir https://youtu.be/qMmEnXcHxL4?si=Ux2lebiwEp3mc0e
S14E10 Python in Elixir Apps https://youtu.be/SpVLrrWkRqE?si=ld3oQVXVlWHpo7eV
https://www.python.org/
https://hexdocs.pm/pythonx/
https://github.com/Pyrlang/Pyrlang
https://github.com/erlport/erlport
S14E03 LangChain: LLM Integration for Elixir https://youtu.be/OwFaljL3Ptc?si=A0sDs2dzJ0UoE2PY
https://github.com/brainlid/langchain
S14E04 Nx & Machine Learning in Elixir https://youtu.be/Ju64kAMLlkw?si=zdVnkBTTLHvIZNBm
S14E05 Rustler: Bridging Elixir and Rust https://youtu.be/2RBw7B9OfwE?si=aRVYOyxxW8fTmoRA
https://github.com/rusterlium/rustler
Season 3: Working with Elixir https://youtube.com/playlist?list=PLTDLmInI9YaDbhMRpGuYpboVNbp1Fl9PD&si=hbe7qt4gRUfrMtpj
S14E11 Vibe Coding the LoopedIn Crochet App https://youtu.be/DX0SjmPE92g?si=zCBPjS1huRDIeVeP
Season 5: Adopting Elixir
YouTubeLaunchisode and Outlaws Takeover with Chris Keathley, Amos King, and Anna Neyzberg
S13E01 Igniter: Elixir Code Generation https://youtu.be/WM9iQlQSF_g?si=e0CAiML2qC2SxmdL
Season 8: Elixir in a Polyglot Environment https://youtube.com/playlist?list=PLTDLmInI9YaAPlvMd-RDp6LWFjI67wOGN&si=YCI7WLA8qozD57iw
!! We Want to Hear Your Thoughts *!!*
Have questions, comments, or topics you'd like us to discuss on the podcast?
Share your thoughts with us here: https://forms.gle/Vm7mcYRFDgsqqpDC9
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/WM9iQlQSFg
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/nloRcgngTk
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
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
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
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/vegalite/VegaLite.html
10 Minutes to Explorer: https://hexdocs.pm/explorer/exploringexplorer.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
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/redhatenterpriselinux/8/html/packaginganddistributingsoftware/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)
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/phoenixliveview/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-ls
Special Guest: José Valim.
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/phoenixliveview/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.
Rustler Core Team Member Sonny Scroggin joins Elixir Wizards Sundi Myint and Charles Suggs. Rustler serves as a bridge to write Native Implemented Functions (NIFs) in Rust that can be called from Elixir code. This combo leverages Rust's performance and memory safety while maintaining Elixir's fault tolerance and concurrency model, creating a powerful solution for CPU-intensive operations within Elixir applications.
Sonny provides guidance on when developers should consider using NIFs versus other approaches like ports or external services and highlights the considerations needed when stepping outside Elixir's standard execution model into native code.
Looking toward the future, Sonny discusses exciting developments for Rustler, including an improved asynchronous NIF interface, API modernization efforts, and better tooling. While Rust offers tremendous performance benefits for specific use cases, Sonny emphasizes that Elixir's dynamic nature and the BEAM's capabilities for distributed systems remain unmatched for many applications. Rustler simply provides another powerful tool that expands what developers can accomplish within the Elixir ecosystem.
Key topics discussed in this episode:
Rust as a "high-level low-level language" with memory safety
NIFs (Native Implemented Functions) in the BEAM virtual machine
Rustler's role simplifying Rust-Elixir integration with macros
CPU-intensive operations as primary NIF use cases
Beam scheduler interaction considerations with native code
Dirty schedulers for longer-running NIFs in OTP 20+
Memory safety advantages of Rust for NIFs
Development workflow using Mix tasks for Rustler
Common pitfalls when first working with Rust
Error handling improvements possible with Rustler NIFs
Differences between ports, NIFs, and external services
Asynchronous programming approaches in Rust versus Elixir
Tokyo runtime integration for asynchronous operations
Static NIFs for mobile device compatibility
Upcoming CLI tooling to simplify Rustler development
Rustler's API modernization efforts for better ergonomics
Thread pool sharing across multiple NIFs
Wasm integration possibilities for the BEAM
Compile-time safety versus dynamic runtime capabilities
Performance considerations when implementing NIFs
Compiler-assisted memory management in Rust
Automatic encoding/decoding between Rust and Elixir types
The importance of proper error handling
Real-world application in high-traffic authentication servers
Community resources for learning Rustler
Links mentioned:
https://github.com/rusterlium/rustler
https://github.com/rust-lang/rust
https://www.angelfire.lycos.com/
https://www.webdesignmuseum.org/flash-websites
https://www.php.net/
https://xmpp.org/
https://jabberd2.org/
Geocities: https://cybercultural.com/p/geocities-1995/ (fun fact: when you search Geocities on Google, the results page is in Comic Sans font.)
https://bleacherreport.com/
https://hexdocs.pm/jose/readme.html
https://github.com/rust-lang/rust-bindgen
Erlang Ports: https://www.erlang.org/doc/system/cport.html
Erlang ETFs (External Term Format): https://www.erlang.org/doc/apps/erts/erlextdist.html
Elixir gRPC https://github.com/elixir-grpc/grpc
gRPC (“Remote Proceduce Call”): https://grpc.io/
dirtycpu.ex https://github.com/E-xyza/zigler/blob/main/lib/zig/nif/dirty_cpu.ex
ets https://www.erlang.org/doc/apps/stdlib/ets.html
Mnesia https://www.erlang.org/doc/apps/mnesia/mnesia.html
VPPs (Virtual Power Plants): https://www.energy.gov/lpo/virtual-power-plants
https://nixos.org/
WASM WebAssembly with Elixir: https://github.com/RoyalIcing/Orb
Rust Tokio https://tokio.rs/
Getting Started:
https://hexdocs.pm/rustler/0.17.0/Mix.Tasks.Rustler.New.html
https://rustup.rs/
Special Guest: Sonny Scroggin.
Today on Elixir Wizards, hosts Sundi Myint and Charles Suggs catch up with Sean Moriarity, co-creator of the Nx project and author of Machine Learning in Elixir. Sean reflects on his transition from the military to a civilian job building large language models (LLMs) for software. He explains how the Elixir ML landscape has evolved since the rise of ChatGPT, shifting from building native model implementations toward orchestrating best-in-class tools.
We discuss the pragmatics of adding ML to Elixir apps: when to start with out-of-the-box LLMs vs. rolling your own, how to hook into Python-based libraries, and how to tap Elixir’s distributed computing for scalable workloads. Sean closes with advice for developers embarking on Elixir ML projects, from picking motivating use cases to experimenting with domain-specific languages for AI-driven workflows.
Key topics discussed in this episode:
The evolution of the Nx (Numerical Elixir) project and what's new with ML in Elixir
Treating Elixir as an orchestration layer for external ML tools
When to rely on off-the-shelf LLMs vs. custom models
Strategies for integrating Elixir with Python-based ML libraries
Leveraging Elixir’s distributed computing strengths for ML tasks
Starting ML projects with existing data considerations
Synthetic data generation using large language models
Exploring DSLs to streamline AI-powered business logic
Balancing custom frameworks and service-based approaches in production
Pragmatic advice for getting started with ML in Elixir
Links mentioned:
https://hexdocs.pm/nx/intro-to-nx.html
https://pragprog.com/titles/smelixir/machine-learning-in-elixir/
https://magic.dev/
https://smartlogic.io/podcast/elixir-wizards/s10-e10-sean-moriarity-machine-learning-elixir/
Pragmatic Bookshelf: https://pragprog.com/
ONNX Runtime Bindings for Elixir: https://github.com/elixir-nx/ortex
https://github.com/elixir-nx/bumblebee
Silero Voice Activity Detector: https://github.com/snakers4/silero-vad
Paulo Valente Graph Splitting Article: https://dockyard.com/blog/2024/11/06/2024/nx-sharding-update-part-1
Thomas Millar's Twitter https://x.com/thmsmlr
https://github.com/thmsmlr/instructorex
https://phoenix.new/
https://tidewave.ai/
https://en.wikipedia.org/wiki/BERT(language_model)
Talk: PyTorch: Fast Differentiable Dynamic Graphs in Python (https://www.youtube.com/watch?v=am895oU6mmY) by Soumith Chintala
https://hexdocs.pm/axon/Axon.html
https://hexdocs.pm/exla/EXLA.html
VLM (Vision Language Models Explained): https://huggingface.co/blog/vlms
https://github.com/ggml-org/llama.cpp
Vector Search in Elixir: https://github.com/elixir-nx/hnswlib
https://www.amplified.ai/
Llama 4 https://mistral.ai/
Mistral Open-Source LLMs: https://mistral.ai/
https://github.com/openai/whisper
Elixir Wizards Season 5: Adopting Elixir https://smartlogic.io/podcast/elixir-wizards/season-five
https://docs.ray.io/en/latest/ray-overview/index.html
https://hexdocs.pm/flame/FLAME.html
https://firecracker-microvm.github.io/
https://fly.io/
https://kubernetes.io/
WireGuard VPNs https://www.wireguard.com/
https://hexdocs.pm/phoenixpubsub/Phoenix.PubSub.html
https://www.manning.com/books/deep-learning-with-python
Code BEAM 2025 Keynote: Designing LLM Native Systems - Sean Moriarity
Ash Framework https://ash-hq.org/
Sean’s Twitter: https://x.com/seanmoriarity
Sean’s Personal Blog: https://seanmoriarity.com/
Erlang Ecosystems Foundation Slack: https://erlef.org/slack-invite/erlef
Elixir Forum https://elixirforum.com/
Sean’s LinkedIn: https://www.linkedin.com/in/sean-m-ba231a149/
Special Guest: Sean Moriarity.
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/gettingstarted.html
https://ash-hq.org/
https://hex.pm/packages/langchain
https://hexdocs.pm/igniter/readme.html
https://www.youtube.com/watch?v=WM9iQlQSFg
@brainlid on Twitter and BlueSky Special Guest: Mark Ericksen.
Connor Rigby joins the Elixir Wizards to talk about Blue Heron BLE (Bluetooth Low Energy) support for Elixir apps. Blue Heron implements the BLE specs in pure Elixir, leveraging binary pattern matching and concurrent message processing to handle Bluetooth protocols. Unlike most solutions that require C ports or NIFs, Blue Heron runs entirely in user space, so it works seamlessly in both Nerves-based embedded projects and (eventually) desktop Elixir applications.
We discuss how Nerves development differs from building Phoenix apps. Connor shares challenges he's experienced with hardware compatibility, where some chips only partially implement the spec, and he discusses the surprisingly deep (but sometimes incomplete) world of BLE device profiles. His tip for anyone entering the BLE space: read the official spec instead of trusting secondhand blog posts. Tools like Nerves LiveBook give you hands-on examples, so you can get a BLE prototype running on a Raspberry Pi and your phone in no time.
Key topics discussed in this episode:
Blue Heron origins and “bird” naming convention
BLE vs. Bluetooth Classic: core differences
Pure Elixir implementation—no C dependencies
Binary pattern matching for packet parsing
Hardware transport options: UART, SPI, USB, SDIO
GenServer patterns in Nerves vs. Phoenix
Linux requirement and power-consumption trade-offs
GATT (Generic Attribute Table) implementation patterns
SQLite integration for Nerves apps
Hardware chip quirks and spec compliance
Manufacturer-specific commands and workarounds
BLE device profiles and spec gaps
Security Management Profile (SMP) for encryption
Device connection and pairing workflows
Web vs. embedded development differences
Where to get started: hardware recommendations and docs
Links mentioned:
https://github.com/ConnorRigby/
https://github.com/blue-heron/
https://nerves-project.org/
BLE (Bluetooth Low Energy) https://en.wikipedia.org/wiki/BluetoothLowEnergy
https://developer.apple.com/ibeacon/
https://learnyousomeerlang.com/building-otp-applications
Linux https://www.linux.org/
HCI (Host Controller Interface) https://en.wikipedia.org/wiki/Hostcontrollerinterface
Circuits UART Library https://hexdocs.pm/circuitsuart/readme.html
SPI (Serial Peripheral Interface) https://github.com/elixir-circuits/circuitsspi
SDIO (Secure Digital Input Output https://en.wikipedia.org/wiki/SDIO
Raspberry Pi https://www.raspberrypi.com/
Coral SoM Dev Board https://coral.ai/products/dev-board/
BeagleBone Single-Board Linux Computer https://www.beagleboard.org/boards/beaglebone-black
https://www.bluetooth.com/bluetooth-resources/intro-to-bluetooth-gap-gatt/
Genservers https://hexdocs.pm/elixir/1.12/GenServer.html
https://hexdocs.pm/ecto/Ecto.html
https://github.com/elixir-sqlite/ectosqlite3
https://github.com/nerves-livebook/nerveslivebook Special Guest: Connor Rigby.
In the Season 14 premiere, hosts Dan Ivovich and Sundi Myint chat with Isaac Yonemoto, creator of the Zigler library, to explore how Zigler brings Zig’s performance and safety to Elixir through Native Implemented Functions (NIFs). Isaac walks through the core design of Zigler and how it auto-generates the Elixir-to-Zig bridge, enforces type safety, and exposes multiple execution modes (normal, dirty, threaded). The conversation covers real-world applications, from SIMD-powered token selection for LLM hardware acceleration to OTP-style fault tolerance in low-level code.
Isaac shares his own journey: stepping back from professional software work to launch a biotech startup focused on reducing drug manufacturing costs while continuing to maintain Zigler and even leveraging Elixir for bioinformatics pipelines.
Topics discussed in this episode:
What is the Zigler library and what does it do?
What does it mean to run a "dirty NIF"?
Async mode is temporarily removed from Zig (therefore, yielding NIFs is temporarily deprecated in Zigler)
Zigler’s three execution modes (normal, dirty, and threaded) and how you switch modes with a single config change
Isaac’s journey from professional software work to launching a biotech startup
How Isaac leverages Elixir in bioinformatics pipelines at his startup
LLM hardware acceleration using Zigler NIFs and SIMD-powered token picking
Fault-tolerant load balancing of NIF workloads via OTP principles
Transparent handling and recovery from hardware failures through monitoring
Potential future memory-safety features in Zig and their implications
The Elixir-based borrow-checker prototype: purpose and design
Unit-checking for scientific computations to enforce correctness
New OS support in Zigler 0.14: macOS, Windows, and FreeBSD
Inline Zig code authoring directly within Elixir modules
Isaac's commitment to maintain Zigler through its 1.0 release (...and beyond?)
Links mentioned:
https://github.com/E-xyza/zigler
https://github.com/ziglang/zig
https://vidalalabs.com/
Zig Programming Language: https://ziglang.org/
https://obsidian.md/
https://hexdocs.pm/elixir/macros.html
https://erlang.org/documentation/doc-4.7.3/doc/extensions/macros.html
A Deep Dive Into the Elixir AST: https://dorgan.ar/posts/2021/04/theelixirast/
https://www.erlang.org/doc/system/nif.html
https://nodejs.org/en
Llama Open-Source LLM: https://www.llama.com/
Mixtral Open-Source LLM: https://mistral.ai/news/mixtral-of-experts
https://Fly.io
SIMD: https://en.wikipedia.org/wiki/Singleinstruction,multiple_data
https://opentrons.com/
CI/CD: https://en.wikipedia.org/wiki/CI/CD
https://hexdocs.pm/zigler/Zig.html
http://www.x.com/DNAutics
https://bsky.app/profile/dnautics.bsky.social
For the Season 13 finale, Elixir Wizards Dan and Charles are joined by Spin42 Engineers Marc Lainez, Thibault Poncelet, and Loïc Vigneron to discuss their work retrofitting a 2007 VW Polo and creating an Open Vehicle Control System (OVCS). Using Elixir, Nerves, and Raspberry Pis, the team is reimagining vehicle technology to extend the lifespan of older cars and reduce waste—all while making the process approachable and open source.
The Spin42 team shares the technical details behind OVCS and how they use Elixir and Nerves to interact with the CAN bus and build a Vehicle Management System (VMS) to coordinate various vehicle components. They dive into the challenges of reverse engineering CAN messages, designing a distributed architecture with Elixir processes, and ensuring safety with fail-safe modes and emergency shutoffs.
Beyond the technical, the team discusses their motivation for the project—upgrading older vehicles with modern features to keep them on the road, building an open-source platform to share their findings with others, and above all-- to just have fun. They explore potential applications for OVCS in boats, construction equipment, and other vehicles, while reflecting on the hurdles of certifying the system for road use.
If you’ve ever wondered how Elixir and Nerves can drive innovation beyond software, this episode is packed with insights into automotive computing, hardware development, and the collaborative potential of open-source projects.
Topics Discussed in this Episode:
Retrofitting a 2007 VW Polo with electric engines and modern tech
Building an open-source Vehicle Control System (OVCS) using Elixir and Nerves
Leveraging Elixir to interact with the CAN bus and parse proprietary messages
Designing a Vehicle Management System (VMS) to coordinate vehicle components
Developing custom hardware for CAN communication
Creating a YAML-based DSL for CAN message and frame descriptions
Building a distributed architecture using Elixir processes
Ensuring safety with fail-safe modes and emergency shutoffs
Using Flutter and Nerves to build a custom infotainment system
Exploring autonomous driving features with a ROS2 bridge
Developing remote control functionality with a Mavlink transmitter
Testing OVCS features at scale with a Traxxas RC car (OVCS Mini)
Challenges of certifying OVCS for road use and meeting regulatory requirements
Encouraging community contributions to expand OVCS functionality
Balancing open-source projects with contract work to sustain development
The fun and fulfillment of experimenting with Elixir beyond traditional applications
Links mentioned:
https://www.spin42.com/
https://nerves-project.org/
Quadcopter https://github.com/Spin42/elicopter
https://github.com/linux-can/can-utils
https://docs.kernel.org/networking/can.html
https://github.com/open-vehicle-control-system/cantastic
https://github.com/commaai/opendbc
https://en.wikipedia.org/wiki/CANbus#CANFD
https://comma.ai/
https://en.wikipedia.org/wiki/CANFD
https://webkit.org/wpe/
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/WindowingSystems/WestonWayland.html
https://buildroot.org/
https://vuejs.org/
https://flutter.dev/
https://github.com/smartrent/elixirflutterembedder
https://www.raspberrypi.com/products/raspberry-pi-5/
The Rabbit Pickup https://www.hemmings.com/stories/value-guide-1980-83-volkswagen-pickup
https://www.expresslrs.org/software/mavlink
https://industrial-training-master.readthedocs.io/en/melodic/source/session7/ROS1-ROS2-bridge.html
https://github.com/ros2/rcl
https://github.com/open-vehicle-control-system/traxxas
Contact Marc, Thibault, and Loïc: info@spin42.com
Special Guests: Loïc Vigneron, Marc Lainez, and Thibault Poncelet.
The Elixir Wizards welcome Jim Freeze, organizer of ElixirConf and creator of the Horizon library. Jim shares his journey from organizing Ruby conferences to founding and growing ElixirConf into the community cornerstone it is today. He reflects on the challenges of running a major conference, how COVID-19 shaped the event, and why the talks remain an evergreen resource for the Elixir ecosystem.
We discuss Horizon, Jim’s deployment library for Elixir and Phoenix applications with Postgres on FreeBSD. Driven by a need for simplicity and cost-effectiveness, Jim explains how Horizon minimizes external dependencies while delivering fault-tolerant and streamlined setups. He compares it to tools like Fly, Terraform, and Ansible, highlighting its low cognitive load and flexibility—key benefits for developers seeking more control over their deployment environments.
Jim also unpacks the broader value of understanding and customizing your deployment stack rather than relying solely on managed services. He discusses the benefits of using FreeBSD, including its stability, security, and performance advantages, as well as its robust ZFS file system.
Jim emphasizes the importance of coherent deployment workflows, community collaboration, and contributions to open-source projects like Horizon. He invites listeners to explore Horizon, share feedback, and own their deployments.
Topics discussed in this episode:
Jim Freeze’s background organizing RubyConf and founding ElixirConf
Reducing reliance on managed services and external dependencies
Simplifying deployments with minimal tools and lower cognitive overhead
The trade-offs of cutting-edge tools vs. stable, well-documented solutions
The importance of customizing deployment tools to meet specific needs
Addressing challenges with Tailwind compatibility
Streamlining the FreeBSD installation process for Horizon users
Community collaboration: contributing to open-source tools
Jim’s vision for Horizon: PKI support, hot standby features, and serverless potential
Links mentioned
Nine Minutes of Elixir (https://youtu.be/hht9s6nAAx8?si=ocrk1wQtGplSGL0B)
https://www.youtube.com/@ElixirConf
https://github.com/liveview-native
https://github.com/elixir-nx/nx
https://2024.elixirconf.com/
https://github.com/jfreeze/horizon
https://hexdocs.pm/horizon/deploying-with-horizon.html#web-cluster-topology
https://kamal-deploy.org/
https://fly.io/
https://aws.amazon.com/console/
https://www.digitalocean.com/
https://cloud.google.com/
https://www.cloudflare.com/
https://www.hetzner.com/
https://www.proxmox.com/en/
https://nginx.org/
https://github.com/openzfs/zfs
Zettabyte File System https://en.wikipedia.org/wiki/ZFS
https://www.postgresql.org/
https://www.terraform.io/
https://www.ansible.com/
https://docs.freebsd.org/
https://www.redhat.com/
https://ubuntu.com/
https://esbuild.github.io/
Listener's Survey: https://smr.tl/EWS13
Special Guest: Jim Freeze.
Zack Kayser and Ethan Gunderson, Software Engineers at Cars Commerce, join the Elixir Wizards to share their expertise on telemetry and observability in large-scale systems. Drawing from their experience at Cars.com—a platform handling high traffic and concurrent users—they discuss the technical and organizational challenges of scaling applications, managing microservices, and implementing effective observability practices.
The conversation highlights the pivotal role observability plays in diagnosing incidents, anticipating system behavior, and asking unplanned questions of a system. Zack and Ethan explore tracing, spans, and the unique challenges introduced by LiveView deployments and WebSocket connections.
They also discuss the benefits of OpenTelemetry as a vendor-agnostic instrumentation tool, the significance of Elixir’s telemetry library, and practical steps for developers starting their observability journey. Additionally, Zack and Ethan introduce their upcoming book, Instrumenting Elixir Applications, which will offer guidance on integrating telemetry and tracing into Elixir projects.
Topics Discussed:
Cars.com’s transition to Elixir and scaling solutions
The role of observability in large-scale systems
Uncovering insights by asking unplanned system questions
Managing high-traffic and concurrent users with Elixir
Diagnosing incidents and preventing recurrence using telemetry
Balancing data collection with storage constraints
Sampling strategies for large data volumes
Tracing and spans in observability
LiveView’s influence on deployments and WebSocket behavior
Mitigating downstream effects of socket reconnections
Contextual debugging for system behavior insights
Observability strategies for small vs. large-scale apps
OpenTelemetry for vendor-agnostic instrumentation
Leveraging OpenTelemetry contrib libraries for easy setup
Elixir’s telemetry library as an ecosystem cornerstone
Tracing as the first step in observability
Differentiating observability from business analytics
Profiling with OpenTelemetry Erlang project tools
The value of profiling for performance insights
Making observability tools accessible and impactful for developers
Links Mentioned
https://www.carscommerce.inc/
https://www.cars.com/
https://hexdocs.pm/telemetry/readme.html
https://kubernetes.io/
https://github.com/ninenines/cowboy
https://hexdocs.pm/bandit/Bandit.html
https://hexdocs.pm/broadway/Broadway.html
https://hexdocs.pm/oban/Oban.html
https://www.dynatrace.com/
https://www.jaegertracing.io/
https://newrelic.com/
https://www.datadoghq.com/
https://www.honeycomb.io/
https://fly.io/phoenix-files/how-phoenix-liveview-form-auto-recovery-works/
https://www.elastic.co/
https://opentelemetry.io/
https://opentelemetry.io/docs/languages/erlang/
https://opentelemetry.io/docs/concepts/signals/traces/
https://opentelemetry.io/docs/specs/otel/logs/
https://github.com/runfinch/finch
https://hexdocs.pm/telemetry_metrics/Telemetry.Metrics.html
https://opentelemetry.io/blog/2024/state-profiling
https://www.instrumentingelixir.com/
https://prometheus.io/
https://www.datadoghq.com/dg/monitor/ts/statsd/
https://x.com/kayserzl
https://github.com/zkayser
https://bsky.app/profile/ethangunderson.com
https://github.com/open-telemetry/opentelemetry-collector-contrib Special Guests: Ethan Gunderson and Zack Kayser.
AJ (Alykhan Jetha), CEO and CTO of Marketcircle, joins the Elixir Wizards to share his experience building and evolving Daylite, their award-winning CRM and business productivity app for Apple users. He details his experiences as a self-taught programmer and how Marketcircle has navigated pivots, challenges, and opportunities since its founding in 1999.
AJ explains why they migrated Daylite’s backend to Elixir, focusing on their sync engine, which demands high concurrency and fault tolerance. He highlights how Elixir has improved performance, reduced cloud costs, and simplified development with its approachable syntax and productive workflows.
The conversation also touches on the technical hurdles of deploying native apps for Apple devices and the potential for integrating new technologies like LiveView Native to streamline cross-platform development.
For technical founders, AJ emphasizes the importance of leveraging your strengths (“superpowers”), staying deeply connected to the development process, and finding stability in tools like Elixir amidst a rapidly evolving tech ecosystem. He also shares Marketcircle’s roadmap for migrating more customers to Elixir-powered systems and explores the potential for new features in their native apps.
Tune in for insights on building resilient systems, navigating technical and business challenges, and how Elixir is shaping Marketcircle’s future.
Topics discussed in this episode:
AJ’s journey as a self-taught programmer and entrepreneur
Marketcircle’s evolution since 1999 and lessons from their pivots
Daylite’s growth as a flagship product for Apple users
Migrating to Elixir for high concurrency and fault tolerance
How Elixir improved performance and reduced cloud costs
The simplicity of Elixir and its impact on developer onboarding
Challenges in managing a growing microservices architecture
Insights into deploying native apps for the Apple ecosystem
Exploring LiveView Native for future cross-platform development
Advice for technical founders: leveraging your superpowers
Staying connected to development to maintain system understanding
The role of Elixir in improving development efficiency and stability
Planning gradual customer migrations to an Elixir-powered backend
Potential new features for Daylite’s native apps
Benefits of collaboration with the Elixir community
#ElixirMullet -- native app in the front, Elixir in the back
Navigating a rapidly evolving tech ecosystem as a founder
Leveraging Elixir to future-proof Marketcircle’s systems
Balancing technical and business priorities in a startup environment
AJ’s thoughts on the future of Elixir in powering business tools
Links mentioned:
https://www.marketcircle.com/
Daylite.app
https://www.nextcomputers.org/
https://www.digitalocean.com/
Python Async https://docs.python.org/3/library/asyncio.html
https://github.com/sinatra/sinatra
https://github.com/dependabot
https://kafka.apache.org/
https://www.djangoproject.com/
https://github.com/socketry/falcon
https://github.com/puma/puma
https://www.swift.org/blog/announcing-swift-6/
https://en.wikipedia.org/wiki/Async/await
https://www.ffmpeg.org/
https://www.sqlite.org/
https://github.com/commanded/commanded
https://pragprog.com/titles/khpes/real-world-event-sourcing/
https://en.wikipedia.org/wiki/ShipofTheseus
https://reactnative.dev/
https://www.electronjs.org/
https://en.wikipedia.org/wiki/WebOS
https://www.linkedin.com/in/alykhanjetha/
https://bsky.app/profile/ajetha.bsky.social Special Guest: Alykhan Jetha.
Justin Tormey, co-founder of Castmagic, joins the Elixir Wizards to discuss building an AI-powered content creation app. Castmagic repurposes audio and video into social media posts, blog articles, newsletters, and more. The tech stack leverages OpenAI and Anthropic LLMs with Elixir as the coordination layer and Phoenix LiveView powering the front end.
Justin dives into the technical details of Castmagic, including the integration of JavaScript libraries like ProseMirror and TipTap through LiveSvelte, as well as enabling real-time collaboration with CRDTs and YDoc. He shares the benefits and challenges of using Elixir for rapid development, as well as the trade-offs between custom code and off-the-shelf solutions.
The conversation also covers Justin’s entrepreneurial journey, highlighting the advantages of bootstrapping over venture capital, the importance of acquiring early customers, and creative marketing strategies like affiliate programs and software marketplaces.
Whether you're an Elixirist exploring machine learning or an aspiring tech founder, tune in to learn more about AI with Elixir, navigating startup challenges, and turning ideas into impactful software.
Topics discussed in this episode:
Building Castmagic to generate content from audio and video for creators
Using AI services like OpenAI and Anthropic for transcription and workflows
Elixir as the coordination layer for complex processes
Rapid UI development with Phoenix LiveView
Integrating rich text editing libraries through LiveSvelte
Enabling collaborative editing with CRDTs and YDoc
Balancing offline functionality with cloud-based AI tools
Challenges of working with external AI services
Exploring the future of multimodal AI in product development
Bootstrapping vs. venture capital: benefits and challenges
Strategies for finding distribution channels and early adopters
Creative approaches to marketing, including affiliates and marketplaces
Balancing engineering efforts with customer and business needs
Practical advice for navigating the early stages of a startup
Links mentioned:
https://www.castmagic.io/
https://pragprog.com/titles/jaerlang2/programming-erlang-2nd-edition/
https://www.blockchain.com/
https://fly.io/
https://hexdocs.pm/livesvelte/readme.html
https://github.com/woutdp/livesvelte
https://prosemirror.net/
https://tiptap.dev/
https://docs.yjs.dev/api/y.doc
https://hexdocs.pm/polymorphicembed/readme.html
https://github.com/elixir-nx/nx
https://github.com/elixir-nx/tokenizers
https://github.com/thmsmlr/instructorex
https://openai.com/
https://www.anthropic.com/
https://getoban.pro/
https://github.com/wojtekmach/req
https://ollama.com/
https://x.com/j_tormey Special Guest: Justin Tormey.
Stephen Solka, CTO and co-founder of Standd.io, joins Elixir Wizards Owen and Charles to share the journey of building an AI-native deal intelligence and due diligence platform. Designed to streamline document analysis and text generation for venture capital firms, Standd.io leverages large language models and AI tools to address key customer pain points in document workflows.
Stephen explains how Elixir and Phoenix LiveView enabled rapid UI iteration and seamless integration between the front-end and back-end.
The conversation also explores the human side of startup life. Stephen reflects on balancing tech debt with customer demands, the value of accelerators in building networks and securing funding, and the challenges of pricing in early-stage startups. He emphasizes the importance of validating ideas with potential customers and learning from the hurdles of growing a business.
Tune in for insights on leveraging AI in Elixir, solving real-world problems, and navigating the journey from concept to company.
Topics discussed in this episode:
The journey from self-taught programmer to CTO
The perks of Phoenix LiveView for rapid UI development
Integrating front-end and back-end technologies
AI tools for code generation
How early adopters balance functionality with product polish
Validating ideas and understanding customer needs
The impact of accelerators on networking and fundraising
Approaches to managing pricing strategies for startups
Balancing technical debt with feature development
The role of telemetry and error reporting in product development
Creating collaborative and supportive tech communities
Educating users on AI’s capabilities and limitations
The broader implications of AI tools across industries
Links Mentioned
Contact Stephen & Julie at Standd: founders@standd.io
https://www.standd.io/
https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns
https://www.thriftbooks.com/w/code-completesteve-mcconnell/248753/item/15057346/
https://aws.amazon.com/sagemaker/
https://www.anthropic.com/
https://getoban.pro/
https://kubernetes.io/
https://www.apollographql.com/
https://aws.amazon.com/startups/accelerators
https://accelerate.techstars.com/
https://aider.chat/
https://github.com/Aider-AI/aider
https://neovim.io/
https://ui.shadcn.com/
https://tailwindui.com/
https://www.ycombinator.com/
https://www.thriftbooks.com/w/close-to-the-machine-technophilia-and-its-discontentsellen-ullman/392556
Special Guest: Stephen Solka.
Today on Elixir Wizards, Owen Bickford, fellow Wizard and creator of the WebauthnComponents library, joins us to talk about building passwordless authentication for Phoenix LiveView applications. Owen walks us through the evolution of authentication—touching on everything from plain text passwords to multi-factor setups—and explains the security flaws and user experience issues each method presents. He describes passkeys, a solution based on the WebAuthn API, which improves security and ease of use.
The conversation covers cross-device support for passkeys, the role of password managers in keeping credentials synced, and ideas for enhancing WebauthnComponents, like supporting multiple passkeys per account. Owen invites listeners to contribute to the library’s development on GitHub and emphasizes the role passkeys play in improving app security and user experience.
Topics discussed in this episode:
Passkeys and the shift toward passwordless authentication
WebAuthn API and its role in secure login systems
Creating the WebauthnComponents library for Phoenix LiveView
History of authentication from basic passwords to multi-factor approaches
Security gaps and user experience challenges with traditional methods
Asymmetric cryptography’s impact on secure logins
Hardware-based credential storage and generation with Trusted Platform Modules
Structure and components of the WebAuthn library: dependencies, LiveViews, and Ecto schemas
Live components for real-time server-browser interactions
Passkeys as a primary or secondary authentication method
Key business considerations when choosing authentication methods
Cross-device support for passkeys and credential syncing
Strategies for passkey recovery if devices are lost
Ensuring secure access in unattended environments
Elixir’s ecosystem advantages for building authentication systems
Simplifying JavaScript complexity within Elixir projects
Future-proofing WebAuthn Components for seamless updates
Using Igniter to enhance customization and refactoring
Developer-friendly tools for secure authentication
Inviting community contributions on GitHub and the Elixir forum
Plans for telemetry and performance tracking
Why adopting passkeys is a win for app security and user experience
Links mentioned:
https://github.com/liveshowy/webauthncomponents
https://en.wikipedia.org/wiki/Salt(cryptography)
https://en.wikipedia.org/wiki/Rainbowtable
https://en.wikipedia.org/wiki/Multi-factorauthentication
https://oauth.net/2/
https://developer.mozilla.org/en-US/docs/Web/API/WebAuthenticationAPI
https://www.w3.org/TR/webauthn-3/
https://www.microsoft.com/en-us/windows/tips/windows-hello
https://trustedcomputinggroup.org/resource/trusted-platform-module-tpm-summary/
https://hexdocs.pm/phoenix/mixphxgenauth.html
https://en.wikipedia.org/wiki/Public-keycryptography
SSH Protocol (Secure Shell) https://en.wikipedia.org/wiki/SecureShell
https://www.yubico.com/products/yubikey-5-overview/
https://fidoalliance.org/how-fido-works/
https://1password.com/
https://keepassxc.org/
https://hexdocs.pm/ectoulid/Ecto.ULID.html
https://en.wikipedia.org/wiki/Universallyuniqueidentifier
https://hexdocs.pm/ecto/Ecto.Schema.html
https://hexdocs.pm/sourceror/
https://github.com/ash-project/igniter
Forum thread:
https://elixirforum.com/t/webauthnlivecomponent-passwordless-auth-for-liveview-apps/49941
The episode with Jonatan Klosko was great!