168 episodes

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)

Elixir Wizards SmartLogic LLC

    • Technology

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)

    "Saga of a Gnarly Report" with Owen and Dan

    "Saga of a Gnarly Report" with Owen and Dan

    In today's episode, Elixir Wizards Owen and Dan delve into the complexities of building advanced reporting features within software applications. They share personal insights and challenges encountered while developing reporting solutions for user-generated data, leveraging both Elixir/Phoenix and Ruby on Rails.


    The discussion zeroes in on crucial data modeling and architectural decisions that enhance reporting efficiency and flexibility. Owen and Dan explore tactics like materialized views, event sourcing, and database triggers to optimize data handling while being mindful of UX elements like progress indicators and background job management.


    They share insights on leveraging the Elixir/Beam ecosystem’s strengths—like concurrency and streamlined deployment—to tackle common reporting, caching, and integration challenges. The episode highlights the impact of reporting features across all aspects of a software application’s design and architecture.


    Key topics discussed in this episode:


    Reporting on assessment data, survey results, and user metrics
    Differences between reporting and performance/error monitoring
    Implementing reporting in Elixir/Phoenix vs. Ruby on Rails
    Displaying reports in web, printable, PDF, SVG, and CSV formats
    Challenges of generating PDFs for large data sets
    Streaming CSV data directly to the client
    Handling long-running report generation tasks
    Providing progress indicators and user notifications
    Strategies for canceling or abandoning incomplete reports
    Tradeoffs of pre-calculating report data vs. real-time generation
    Materializing views and denormalizing data for reporting
    Exploring event sourcing patterns for reporting needs
    Using database triggers and stored procedures for reporting
    Balancing data structure optimization for reports vs. day-to-day usage
    Caching report data for faster retrieval and rendering
    Charting and visualization integration in reporting systems


    Links mentioned:

    Prometheus monitoring system & time series database https://prometheus.io/
    Thinking Elixir "FLAME with Chris McCord" https://podcast.thinkingelixir.com/181
    Phoenix LiveView Uploads https://hexdocs.pm/phoenix/file_uploads.html
    https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.UploadWriter.html
    Postgrex PostgreSQL driver for Elixir https://hexdocs.pm/postgrex/Postgrex.html
    Ecto https://hexdocs.pm/ecto/Ecto.html
    Heroku cloud application platform  https://www.heroku.com/
    Elixir Wizards S9E12 Marcelo Dominguez on Command and Query Responsibility Segregation https://smartlogic.io/podcast/elixir-wizards/s9-e12-marcelo-dominguez-cqrs/
    Commanded Elixir CQRS/ES applications https://github.com/commanded/commanded
    Tailwind CSS Framework https://github.com/tailwindlabs
    Memcached https://memcached.org/
    Redis https://redis.io/
    Oban https://hexdocs.pm/oban/Oban.html
    ETS https://hexdocs.pm/ets/ETS.html
    Capistrano remote server automation and deployment tool https://capistranorb.com/

    • 50 min
    "Whose Tailwind is it Anyway?" with Ava Slivkoff

    "Whose Tailwind is it Anyway?" with Ava Slivkoff

    In Elixir Wizards Office Hours Episode 4, SmartLogic Product Designer Ava Slivkoff joins hosts Sundi Myint and Owen Bickford to discuss the product designer's role in software development. Ava shares her experience navigating client expectations, software design principles, and technical constraints.


    They explore the integration of design and development workflows and how designers and engineers can collaborate to meet a project's specific needs. The conversation emphasizes the value of cross-functional teams and the synergy that can arise when all team members work in harmony to bring a product to life.


    Key concepts discussed in the episode:


    The broad scope of the designer role in web app development
    The value of an MVP in the iterative software design process
    Challenges of aligning client expectations with design best practices
    Pros and cons of leveraging pre-built Tailwind CSS styled components
    Trends and evolution in web design aesthetics and patterns
    Leveraging open-source design systems like Tailwind UI
    Balancing technical constraints with design aspirations
    Communication and trust-building between designers and engineers
    Workflows for design handoffs and feedback loops
    Importance of user flows and mapping the product experience
    Challenges around the implementation of complex UI elements
    Benefits of regular design review meetings and syncs
    Fostering empathy and collaboration across disciplines


    Links mentioned

    Figma Dev Mode https://www.figma.com/dev-mode/
    Tailwind CSS utility-first CSS framework https://tailwindcss.com/
    Tailwind UI https://tailwindui.com/
    https://devinai.ai/
    Special Guest: Ava Slivkoff.

    • 48 min
    "You've Got a Job to Do" with Joel Meador

    "You've Got a Job to Do" with Joel Meador

    Today on Elixir Wizards Office Hours, SmartLogic Engineer Joel Meador joins Dan Ivovich to discuss all things background jobs.


    The behind-the-scenes heroes of app performance and scalability, background jobs take center stage as we dissect their role in optimizing user experience and managing heavy-lifting tasks away from the main application flow. From syncing with external systems to processing large datasets, background jobs are pivotal to successful application management.


    Dan and Joel share their perspectives on monitoring, debugging, and securing background jobs, emphasizing the need for a strategic approach to these hidden workflows.


    Key topics discussed in this episode:


    The vital role of background jobs in app performance
    Optimizing user experience through background processing
    Common pitfalls: resource starvation and latency issues
    Strategies for effective monitoring and debugging of task runners and job schedulers
    Data integrity and system security in open source software
    Background job tools like Oban, Sidekiq, Resque, Cron jobs, Redis pub sub
    CPU utilization and processing speed
    Best practices for implementing background jobs
    Keeping jobs small, focused, and well-monitored
    Navigating job uniqueness, locking, and deployment orchestration
    Leveraging asynctask for asynchronous operations
    The art of continuous improvement in background job management


    Links mentioned in this episode:

    https://redis.io/
    Oban job processing library https://hexdocs.pm/oban/Oban.html
    Resque Ruby library for background jobs https://github.com/resque
    Sidekiq background processing for Ruby https://github.com/sidekiq
    Delayed Job priority queue system https://github.com/collectiveidea/delayed_job
    RabbitMQ messaging and streaming broker https://www.rabbitmq.com/
    Mnesia distributed telecommunications DBMS https://www.erlang.org/doc/man/mnesia.html
    Task for Elixir https://hexdocs.pm/elixir/1.12/Task.html
    ETS in-memory store for Elixir and Erlang objects https://hexdocs.pm/ets/ETS.html
    Cron - https://en.wikipedia.org/wiki/Cron
    Donate to Miami Indians of Indiana https://www.miamiindians.org/take-action
    Joel Meador on Tumblr https://joelmeador.tumblr.com/
    Special Guest: Joel Meador.

    • 44 min
    "Discovery Discoveries" with Alicia Brindisi and Bri LaVorgna

    "Discovery Discoveries" with Alicia Brindisi and Bri LaVorgna

    In Elixir Wizards Office Hours Episode 2, "Discovery Discoveries," SmartLogic's Project Manager Alicia Brindisi and VP of Delivery Bri LaVorgna join Elixir Wizards Sundi Myint and Owen Bickford on an exploratory journey through the discovery phase of the software development lifecycle.


    This episode highlights how collaboration and communication transform the client-project team dynamic into a customized expedition. The goal of discovery is to reveal clear business goals, understand the end user, pinpoint key project objectives, and meticulously document the path forward in a Product Requirements Document (PRD).


    The discussion emphasizes the importance of fostering transparency, trust, and open communication. Through a mutual exchange of ideas, we are able to create the most tailored, efficient solutions that meet the client's current goals and their vision for the future.


    Key topics discussed in this episode:


    Mastering the art of tailored, collaborative discovery
    Navigating business landscapes and user experiences with empathy
    Sculpting project objectives and architectural blueprints
    Continuously capturing discoveries and refining documentation
    Striking the perfect balance between flexibility and structured processes
    Steering clear of scope creep while managing expectations
    Tapping into collective wisdom for ongoing discovery
    Building and sustaining a foundation of trust and transparency


    Links mentioned in this episode:

    https://smartlogic.io/
    Follow SmartLogic on social media: https://twitter.com/smartlogic
    Contact Bri: bri@smartlogic.io
    What is a PRD? https://en.wikipedia.org/wiki/Product_requirements_document
    Special Guests: Alicia Brindisi and Bri LaVorgna.

    • 43 min
    "Testing 1, 2, 3" with Joel Meador and Charles Suggs

    "Testing 1, 2, 3" with Joel Meador and Charles Suggs

    The Elixir Wizards Podcast is back with Season 12 Office Hours, where we talk with the internal SmartLogic team about the stages of the software development lifecycle. For the season premiere, "Testing 1, 2, 3," Joel Meador and Charles Suggs join us to discuss the nuances of software testing.


    In this episode, we discuss everything from testing philosophies to test driven development (TDD), integration, and end-user testing. Our guests share real-world experiences that highlight the benefits of thorough testing, challenges like test maintenance, and problem-solving for complex production environments.


    Key topics discussed in this episode:


    How to find a balance that's cost-effective and practical while testing
    Balancing test coverage and development speed
    The importance of clear test plans and goals
    So many tests: Unit testing, integration testing, acceptance testing, penetration testing, automated vs. manual testing
    Agile vs. Waterfall methodologies
    Writing readable and maintainable tests
    Testing edge cases and unexpected scenarios
    Testing as a form of documentation and communication
    Advice for developers looking to improve testing practices
    Continuous integration and deployment


    Links mentioned:

    https://smartlogic.io/
    Watch this episode on YouTube! youtu.be/u_nx5AIvSdc
    Bob Martin “Clean Code” videos - “Uncle Bob”: http://cleancoder.com/
    JUnit 5 Testing for Java and the JVM https://junit.org/junit5/
    ExUnit Testing for Elixir https://hexdocs.pm/ex_unit/ExUnit.html
    Code-Level Testing of Smalltalk Applications https://www.cs.ubc.ca/~murphy/st_workshop/28-7.html
    Agile Manifesto https://agilemanifesto.org/
    Old Man Yells at Cloud https://i.kym-cdn.com/entries/icons/original/000/019/304/old.jpg
    TDD: Test Driven Development https://www.agilealliance.org/glossary/tdd/
    Perl Programming Language https://www.perl.org/
    Protractor Test Framework for Angular and AngularJS protractortest.org/#/
    Waterfall Project Management https://business.adobe.com/blog/basics/waterfall
    CodeSync Leveling up at Bleacher Report A cautionary tale - PETER HASTIE
    https://www.youtube.com/watch?v=P4SzZCwB8B4
    Mix ecto.dump https://hexdocs.pm/ecto_sql/Mix.Tasks.Ecto.Dump.html
    Apache JMeter Load Testing in Java https://jmeter.apache.org/
    Pentest Tools Collection - Penetration Testing https://github.com/arch3rPro/PentestTools
    The Road to 2 Million Websocket Connections in Phoenix https://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections
    Donate to Miami Indians of Indiana https://www.miamiindians.org/take-action
    Joel Meador on Tumblr https://joelmeador.tumblr.com/
    Special Guests: Charles Suggs and Joel Meador.

    • 45 min
    Creating a Language: Elixir vs. Roc with José Valim and Richard Feldman (Elixir Wizards X Software Unscripted Podcast)

    Creating a Language: Elixir vs. Roc with José Valim and Richard Feldman (Elixir Wizards X Software Unscripted Podcast)

    For the final episode of Elixir Wizards’ Season 11 “Branching Out from Elixir,” we’re featuring a recent discussion from the Software Unscripted podcast. In this conversation, José Valim, creator of Elixir, interviews Richard Feldman, creator of Roc. They compare notes on the process and considerations for creating a language.


    This episode covers the origins of creating a language, its influences, and how goals shape the tradeoffs in programming language design. José and Richard share anecdotes from their experiences guiding the evolution of Elixir and Roc. The discussion provides an insightful look at the experimentation and learning involved in crafting new languages.


    Topics discussed in this episode


    What inspires the creation of a new programming language
    Goals and use cases for a programming language
    Influences from Elm, Rust, Haskell, Go, OCaml, and more
    Tradeoffs involved in expressiveness of type systems
    Opportunistic mutation for performance gains in a functional language
    Minimum version selection for dependency resolution
    Build time considerations with type checking and monomorphization
    Design experiments and rolling back features that don’t work out
    History from the first simple interpreter to today's real programming language
    Design considerations around package management and versioning
    Participation in Advent of Code to gain new users and feedback
    Providing performance optimization tools to users in the future
    Tradeoffs involved in picking integer types and arithmetic
    Comparing floats and equality checks on dictionaries
    Using abilities to customize equality for custom types
    Ensuring availability of multiple package versions for incremental upgrades
    Treating major version bumps as separate artifacts
    Roc's focus on single-threaded performance


    Links mentioned in this episode

    Software Unscripted Podcast https://feeds.resonaterecordings.com/software-unscripted
    Roc Programming Language https://www.roc-lang.org/
    Roc Lang on Github https://github.com/roc-lang/roc
    Elm Programming Language https://elm-lang.org/
    Elm in Action by Richard Feldman https://www.manning.com/books/elm-in-action
    Richard Feldman on Github https://github.com/rtfeldman
    Lua Programming Language https://www.lua.org/
    Vimscript Guide https://google.github.io/styleguide/vimscriptfull.xml
    OCaml Programming Language https://ocaml.org/
    Advent of Code https://adventofcode.com/
    Roc Language on Twitter https://twitter.com/roc_lang
    Richard Feldman on Twitter https://twitter.com/rtfeldman
    Roc Zulip Chat https://roc.zulipchat.com
    Clojure Programming Language https://clojure.org/
    Talk: Persistent Data Structures and Managed References by Rich Hickey https://www.youtube.com/watch?v=toD45DtVCFM
    Koka Programming Language https://koka-lang.github.io/koka/doc/index.html
    Flix Programming Language https://flix.dev/
    Clojure Transients https://clojure.org/reference/transients
    Haskell Software Transactional Memory https://wiki.haskell.org/Software_transactional_memory
    Rust Traits https://doc.rust-lang.org/book/ch10-02-traits.html
    CoffeeScript https://coffeescript.org/
    Cargo Package Management https://doc.rust-lang.org/book/ch01-03-hello-cargo.html
    Versioning in Golang https://research.swtch.com/vgo-principles
    Special Guests: José Valim and Richard Feldman.

    • 1 hr 9 min

Top Podcasts In Technology

Vikasietotila
Olli Sulopuisto, Kari Haakana, Panu Räty
Lex Fridman Podcast
Lex Fridman
Kyberrosvot
Tivi & DNA
Herrasmieshakkerit
Mikko Hyppönen & Tomi Tuominen
Dwarkesh Podcast
Dwarkesh Patel
Acquired
Ben Gilbert and David Rosenthal

You Might Also Like

Thinking Elixir Podcast
ThinkingElixir.com
Elixir Mix
Charles M Wood
Beam Radio
Lars Wikman
Elixir Outlaws
Elixir Outlaws
Elixir Newbie
Brooklin Myers
The Changelog: Software Development, Open Source
Changelog Media