Elixir Wizards

Elixir Wizards

By SmartLogic LLCTechnologyEducationHow To
Download on the App Store

Elixir Wizards episodes

  • 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.

      50 min
    • Rustler: Bridging Elixir and Rust with Sonny Scroggin

      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.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/c_port.html
        Erlang ETFs (External Term Format): https://www.erlang.org/doc/apps/erts/erl_ext_dist.html
        Elixir gRPC https://github.com/elixir-grpc/grpc
        gRPC (“Remote Proceduce Call”): https://grpc.io/
        dirty_cpu.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.

        49 min
      • Nx and Machine Learning in Elixir with Sean Moriarity

        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/instructor_ex
          https://phoenix.new/
          https://tidewave.ai/
          https://en.wikipedia.org/wiki/BERT_(language_model)
          Talk: PyTorch: Fast Differentiable Dynamic Graphs in Python 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.

          45 min
        • 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 BlueSky

          Special Guest: Mark Ericksen.

          39 min
        • Blue Heron: Bluetooth Low Energy (BLE) for Elixir & Nerves with Connor Rigby

          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/Bluetooth_Low_Energy
            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/Host_controller_interface
            Circuits UART Library https://hexdocs.pm/circuits_uart/readme.html
            SPI (Serial Peripheral Interface) https://github.com/elixir-circuits/circuits_spi
            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/ecto_sqlite3
            https://github.com/nerves-livebook/nerves_livebook

            Special Guest: Connor Rigby.

            47 min
          • Zigler: Zig NIFs for Elixir with Isaac Yonemoto

            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/the_elixir_ast/
              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/Single_instruction,_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

              43 min
            • Building an Open Vehicle Control System using Elixir and Nerves with Marc, Thibault, and Loïc

              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/CAN_bus#CAN_FD
                https://comma.ai/
                https://en.wikipedia.org/wiki/CAN_FD
                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/elixir_flutter_embedder
                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: [email protected]

                Special Guests: Loïc Vigneron, Marc Lainez, and Thibault Poncelet.

                55 min
              • Creating Horizon: Deploy Elixir Phoenix Apps on FreeBSD with Jim Freeze

                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://www.youtube.com/@ElixirConf
                  https://github.com/liveview-native
                  https://github.com/elixir-nx/nx
                  https://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.

                  45 min
                • Telemetry & Observability for Elixir Apps at Cars.com with Zack Kayser & Ethan Gunderson

                  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.

                    43 min
                  • Scaling the Daylite Apple-Native CRM Using Elixir with AJ

                    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://en.wikipedia.org/wiki/NeXT
                      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/Ship_of_Theseus
                      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.

                      53 min

                    About Elixir Wizards

                    From the publisher's feed

                    Elixir Wizards is an interview-style podcast from SmartLogic featuring conversations with developers, engineers, and industry leaders about the Elixir programming language and the broader software…