Elixir Wizards
SmartLogic LLC
All episodes
Best episodes
Seasons
Top 10 Elixir Wizards Episodes
Goodpods has curated a list of the 10 best Elixir Wizards episodes, ranked by the number of listens and likes each episode have garnered from our listeners. If you are listening to Elixir Wizards for the first time, there's no better place to start than with one of these standout episodes. If you are a fan of the show, vote for your favorite Elixir Wizards episode by adding your comments to the episode page.
Steve Domin on Innovating Travel APIs
Elixir Wizards
01/08/21 • 38 min
Anyone who has written software for the travel industry can tell you that it is in desperate need of innovation — shockingly many of their cobwebbed systems were built in the 70s. Today we speak with Duffel CEO Steve Domin, who is building tech that can finally align travel with the expectations of modern consumers. We open by exploring Steve’s journey into coding before diving into how Duffel is innovating travel. After touching on how the pandemic has impacted Duffel’s roll-out, Steve shares horror stories about the outdated tech and API systems that airlines use. We discuss Duffel’s service offerings and why Elixir is uniquely suited to solve the problems that Steve’s company is addressing. Steve then talks about the types of engineers that Duffel hires, his client base, and where his company is heading. Near the end of the episode, we ask Steve for his advice on selling your company on Elixir and we chat about the status of the London Elixir Meetup. Tune in for more insights on how Steve is using Elixir to make travel an effortless experience.
Key Points From This Episode:
- Introducing Duffel CEO Steve Domin.
- Steve shares details about his coding journey and career highlights.
- Insights into the old school ecosystem of Flash, Flex, and ActionScript.
- Exploring how Duffel is innovating the travel industry.
- Why Duffel accelerated their roll-out due to the pandemic.
- Steve unpacks the outdated tech and API systems that airlines use.
- Why Duffel decided to use Elixir to tackle their problems.
- The benefits of using Elixir when dealing with airline data.
- Steve gives listeners an overview of Duffel’s pipeline.
- Insights into the types of engineers that Duffel hires.
- Who Duffel’s clients are and how they’re onboarded.
- Steve reflects on some airline API horror stories.
- Hear about Duffel’s roadmap — the future is bright.
- What Elixir has uniquely enabled Duffel to do.
- Steve’s advice on selling Elixir to stakeholders in your company.
- The status of the London Elixir Meetup.
Links Mentioned in Today’s Episode:
SmartLogic — https://smartlogic.io/
Steve Domin — https://stevedomin.com/about
Steve Domin on LinkedIn — https://www.linkedin.com/in/stevedomin/
Steve Domin on Twitter — https://twitter.com/stevedomin
Duffel — https://duffel.com/
Duffel Careers — https://duffel.com/careers
José Valim — https://twitter.com/josevalim
Flex — https://www.adobe.com/products/flex.html
Passenger Service System — https://en.wikipedia.org/wiki/Passenger_service_system
Global Distribution System — https://en.wikipedia.org/wiki/Global_distribution_system
Sabre — https://www.sabre.com/
Amadeus — https://amadeus.com/en
‘Why does NDC matter to my travel business?’ — https://duffel.com/blog/why-does-ndc-matter-to-my-travel-business
IATA — https://www.iata.org/
Next.js — https://nextjs.org/
GoCardless — https://gocardless.com/
Twilio — https://www.twilio.com/
Stripe — https://stripe.com/
Thomas Bates — https://www.linkedin.com/in/thomas-bates-3908a74b/
Elixir London Meetup — https://www.meetup.com/Elixir-London/
Baris Balic — https://twitter.com/barisbalic
Special Guest: Steve Domin.
Dan Ivovich from SmartLogic - Elixir in Production
Elixir Wizards
02/28/19 • 28 min
We talk with developers from the team here at SmartLogic about our current practices on deploying Elixir and Phoenix in production.
Dan Ivovich - Director of Development Operations @ SmartLogic
Learn more about how SmartLogic uses Phoenix and Elixir.
00:00 - Fade In
00:30 - Introductions to Eric, Dan and SmartLogic
Dan Ivovich - Director of Development Operations @ SmartLogic
Eric Oestrich - Developer, Elixir Lead @ SmartLogic
Justus Eapen - Full stack developer @ SmartLogic
Introduced to Elixir by an old colleague.
1:20 - What Elixir projects do you have in production?
Several client projects in production. Several Mobile Apps with APIs powered by Phoenix and Elixir.
Baltimore Water Taxi.
A digital marketplace.
And more!
1:57 - Advantages and disadvantages to using Elixir.
We made the switch when a colleague was stoked about Functional Programming and introduced us to Elixir. We were won over by the performance and rich feature sets, OTP, etc.
2:43 - Where are we hosting our Elixir Apps?
- Heroku
- AWS
- Linode
- Digital Ocean
6:20Deployment process, tools, scripting
- Ansible - for underlying VPS’s, servers, and more recently deployment itself. (Similar to Capistrano).
- Distillery
- Mix.release
7:18 - Zero Downtime Deployments
- Old school load balancers and rolling restarts
7:46 - What are the performance metrics like? Comparatively.
- Ruby ends up with memory leaks. That doesn’t happen with Elixir.
- Memory utilization is flat and low no matter what.
- “Phenomenal response times”
8:54 - How does Eric think about clustered applications in Elixir?
- Going Multi Node (https://www.youtube.com/watch?v=lCUKQnkjajo)
- Pg2 - process groups
- Mnesia distributed database (beware!)
- “Just sending messages to pids because Erlang is great”
- Swarm / Horde
12:40 - How do we handle background tasks?
- Started with verk
- Recently becoming more comfortable with spinning up GenServers
- “The language itself is built to be concurrent.”
15:06 What libraries are we using in prod?
- First thing: You don’t need a whole lot because the language is so well designed.
- Phoenix - web framework
- Ecto - sort of an ORM
- Distillery - for releases
- Bamboo - for sending emails
- Quantum - for task scheduling
- Timex - for dates and times, and timezones
- Cachex - for caching
18:20- What third party integrations have we attempted
- Stripe
- Square
- Twilio
- Mindbody
Always building our own clients. Using HTTPoison
19:58Has Elixir ever saved the day in production?
It’s saved many days by PREVENTING ISSUES. Systems are architected for reliability and fault-tolerance.
21:48 - Where do supervision trees come from? What is OTP?
- OTP is an Erlang standard lib
- Includes supervision trees, genservers, ETS, and a lot of stuff we don’t even know about!
- gen_tcp
- Mnesia
- dets
23:43- Tips for devs considering running elixir in production.
- Jump in and read the docs
- Understand how systems boot, distillery releases, config providers, etc.
- “Good server monitoring hygiene”
- “DIVE IN!” 19:54 Outro
Learn more about how SmartLogic uses Phoenix and Elixir.
Special Guest: Dan Ivo...
Season 2 Trailer
Elixir Wizards
07/09/19 • 1 min
We’re excited to announce our season two topic, Elixir Internals. In this season we talk with developers behind some of the most popular Elixir libraries, including Witchcraft, ElixirScript, Distillery, Ecto, and more!
10/26/23 • 50 min
In today’s episode, Sundi and Owen are joined by Yordis Prieto and Stephen Chudleigh to compare notes on HTTP requests in Elixir vs. Ruby, JavaScript, Go, and Rust. They cover common pain points when working with APIs, best practices, and lessons that can be learned from other programming languages.
Yordis maintains Elixir's popular Tesla HTTP client library and shares insights from building APIs and maintaining open-source projects. Stephen has experience with Rails and JavaScript, and now works primarily in Elixir. They offer perspectives on testing HTTP requests and working with different libraries.
While Elixir has matured, there is room for improvement - especially around richer struct parsing from HTTP responses. The discussion highlights ongoing efforts to improve the developer experience for HTTP clients in Elixir and other ecosystems.
Topics Discussed in this Episode
- HTTP is a protocol - but each language has different implementation methods
- Tesla represents requests as middleware that can be modified before sending
- Testing HTTP requests can be a challenge due to dependence on outside systems
- GraphQL, OpenAPI, and JSON API provide clear request/response formats
- Elixir could improve richer parsing from HTTP into structs
- Focus on contribution ergonomics lowers barriers for new participants
- Maintainers emphasize making contributions easy via templates and clear documentation
- APIs drive adoption of standards for client/server contracts
- They discuss GraphQL, JSON API, OpenAPI schemas, and other standards that provide clear request/response formats
- TypeScript brings types to APIs and helps to validate responses
- Yordis notes that Go and Rust make requests simple via tags for mapping JSON to structs
- Language collaboration shares strengths from different ecosystems and inspires new libraries and tools for improving the programming experience
Links Mentioned
Elixir-Tesla Library: https://github.com/elixir-tesla/tesla
Yordis on Github: https://github.com/yordis
Yordis on Twitter: https://twitter.com/alchemist_ubi
Yordis on LinkedIn: https://www.linkedin.com/in/yordisprieto/
Yordis on YouTube: https://www.youtube.com/@alchemistubi
Stephen on Twitter: https://twitter.com/stepchud
Stephen's projects on consciousness: https://harmonicdevelopment.us
Owen suggests: Http.cat
HTTParty: https://github.com/jnunemaker/httparty
Guardian Library: https://github.com/ueberauth/guardian
Axios: https://axios-http.com/
Straw Hat Fetcher: https://github.com/straw-hat-team/nodejs-monorepo/tree/master/packages/%40straw-hat/fetcher
Elixir Tesla Wiki: https://github.com/elixir-tesla/tesla/wiki
HTTPoison: https://github.com/edgurgel/httpoison
Tesla Testing: https://hexdocs.pm/tesla/readme.html#testing
Tesla Mock: https://hexdocs.pm/tesla/Tesla.Mock.html
Finch: https://hex.pm/packages/finch
Mojito: https://github.com/appcues/mojito
Erlang Libraries and Frameworks Working Group: https://github.com/erlef/libs-and-frameworks/ and https://erlef.org/wg/libs-and-frameworks
Special Guests: Stephen Chudleigh and Yordis Prieto.
Actor Model and Concurrent Processing in Elixir vs. Clojure and Ruby with Xiang Ji & Nathan Hessler
Elixir Wizards
12/21/23 • 47 min
In this episode of Elixir Wizards, Xiang Ji and Nathan Hessler join hosts Sundi Myint and Owen Bickford to compare actor model implementation in Elixir, Ruby, and Clojure.
In Elixir, the actor model is core to how the BEAM VM works, with lightweight processes communicating asynchronously via message passing. GenServers provide a common abstraction for building actors, handling messages, and maintaining internal state. In Ruby, the actor model is represented through Ractors, which currently map to OS threads.
They discuss what we can learn by comparing models, understanding tradeoffs between VMs, languages, and concurrency primitives, and how this knowledge can help us choose the best tools for a project.
Topics discussed in this episode:
- Difference between actor model and shared memory concurrency
- Isolation of actor state and communication via message passing
- BEAM VM design for high concurrency via lightweight processes
- GenServers as common abstraction for building stateful actors
- GenServer callbacks for message handling and state updates
- Agents as similar process abstraction to GenServers
- Shared state utilities like ETS for inter-process communication
- Global Interpreter Lock in older Ruby VMs
- Ractors as initial actor implementation in Ruby mapping to threads
- Planned improvements to Ruby concurrency in 3.3
- Akka implementation of actor model on JVM using thread scheduling
- Limitations of shared memory concurrency on JVM
- Project Loom bringing lightweight processes to JVM
- Building GenServer behavior in Ruby using metaprogramming
- CSP model of communication using channels in Clojure
- Differences between BEAM scheduler and thread-based VMs
- Comparing Elixir to academic languages like Haskell
- Remote and theScore are hiring!
Links mentioned in this episode:
theScore is hiring! https://www.thescore.com/
Remote is also hiring! https://remote.com/
Comparing the Actor Model and CSP with Elixir and Clojure Blog Post by Xiang Ji
Comparing the Actor model & CSP concurrency with Elixir & Clojure Xiang Ji at ElixirConf EU 2022
Clojure Programming Language https://clojure.org/
Akka https://akka.io/
Go Programming Language https://github.com/golang/go
Proto Actor for Golang https://proto.actor/
RabbitMQ Open-Source Message Broker Software https://github.com/rabbitmq
JVM Project Loom https://github.com/openjdk/loom
Ractor for Ruby https://docs.ruby-lang.org/en/master/ractor_md.html
Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher
Seven Languages in Seven Weeks by Bruce A. Tate
GenServer https://hexdocs.pm/elixir/1.12/GenServer.html
ets https://www.erlang.org/doc/man/ets.html
Elixir in Action by Saša Jurić
Redis https://github.com/redis/redis
Designing for Scalability with Erlang/OTP by Francesco Cesarini & Steve Vinoski
Discord Blog: Using Rust to Scale Elixir for 11 Million Concurrent Users
Xiang's website https://xiangji.me/
Feeling Good: The New Mood Therapy by David D. Burns
Special Guests: Nathan Hessler and Xiang Ji.
Chris Keathley on Performance and Functional Programming
Elixir Wizards
12/19/19 • 35 min
Our guest on the show today is blogger, software cowboy, and podcast host Chris Keathley. Chris is a senior engineer at Bleacher Report, co-host of Elixir Outlaws, and writer of an assemblage of open-source software. He joins us today to speak about his new projects, his journey with functional programming, and what it is like to run Bleacher Report’s infrastructure on Elixir. Chris gives us the lowdown on Norm, a data validating interface he recently completed, weighing in on how it is different from Dialyzer and what it can offer as far as scalability. We hear more about how Chris got introduced to Elixir through Haskell, why he wishes he learned Clojure sooner, and why Ruby on Rails isn’t going anywhere soon.
Chris also gets into the tradeoffs these languages make to correlate with Erlang. He argues that Elixir can only be more widely adopted if more people build cool things in it, and then lays out some of its power in supporting Bleacher Report’s user interface. We pick Chris’s brain about what his company is trying to optimize at the moment and hear about their preference for capacity over speed, and their techniques for failing gracefully during traffic spikes. Chris tells us how much he loves Elixir due to its use of ETS and other functionality which allows Bleacher Report to keep running even above capacity. Finally, we hear about some of the observability practices that Bleacher Report uses when deploying new systems and predicting future spikes. Plug in for a great conversation and hear why you should get building with Elixir now!
Key Points From This Episode:
- Chris’s explanation of Norm, his new software that describes data moving through a system.
- Chris’s introduction to functional programming through learning Haskell, Clojure, and Elixir.
- What makes a great functional language: immutable data and first class functions.
- Things that make Clojure great, such as its thought out, holistic design.
- Characteristics of Cons lists versus RRB trees, and what makes the latter better.
- An acknowledgment of the necessity of the tradeoffs Elixir makes to interact with Erlang.
- A little bit about the language Chris wrote to do the admin of code challenges in.
- Why Ruby (on Rails) will not be replaced by Elixir due to commoditization that surrounds it.
- An argument that Elixir can only be more widely adopted if more people build with it.
- Why any language can build any program thus comparisons between them are arbitrary.
- Where Chris sets the bar as to when something is performant.
- Chris’s preference for high user capacity capability over speed of delivery at Bleacher Report.
- Optimization projects at Bleacher Report such as using few boxes and handling traffic spikes.
- Things Chris loves about Elixir such as its ability to deliver more from its boxes.
- Elixir’s use of ETS and how Chris coded a complex problem in half a day using it.
- How Chris detects spikes using time series, StatsD, and other observability tools.
Links Mentioned in Today’s Episode:
SmartLogic — https://smartlogic.io/
Chris Keathley on GitHub — https://github.com/keathley
Chris Keathley Blog — https://keathley.io/
ElixirConf 2019, Contracts for Building Reliable Systems presented by Chris Keathley — https://www.youtube.com/watch?v=tpo3JUyVIjQ
The Big Elixir 2019 - Keynote: Adoption - Brian Cardarella — https://www.youtube.com/watch?v=ghpIiQKRfQ4
Bleacher Report — https://bleacherreport.com/
Elixir Outlaws Podcast — https://elixiroutlaws.com/
Norm — https://github.com/keathley/norm
Dialyzer — http://erlang.org/doc/man/dialyzer.html
Haskell — https://www.haskell.org/
Clojure — https://clojure.org/
Erlang — https://www.erlang.org/
Chris Okasaki — https://github.com/chrisokasaki
Discord — https://discordapp.com/company
StatsD — https://www.datadoghq.com/blog/statsd/
Prometheus —
Meryl Dakin on Token Alchemist – Elixir Internals
Elixir Wizards
08/01/19 • 27 min
Today on the show we continue our series on the inner workings of several different Elixir libraries and are happy to be joined by Meryl Dakin, Software Engineer at the Flatiron School and author of Token Alchemist. In this episode, we discover how Meryl got started with Elixir and what the process was like for her transitioning from Ruby to Elixir. We learn more about the internal functions of Token Alchemist within the school context and discuss the unique opportunities Meryl has discovered in Elixir, as well as the trickier language features that programmers are likely to experience in their learning process. Meryl also shares the challenges that Token Alchemist attempts to overcome – delving deeper into LTI, the Learn.co platform, OAuth and JSON. For all this and more, be sure to click play!
Key Points From This Episode:
- Discover why Meryl first got started with Elixir.
- Learn more about the Flatiron Bootcamp for coders.
- Meryl’s experience in transitioning from Ruby to Elixir.
- The opportunities for concurrency and fault tolerance in Elixir.
- Discover the top three tricky language features in Elixir.
- The benefits of going back to the basics of Elixir.
- Find out the problems that Token Alchemist attempts to solve.
- Meryl explains LTI and the Learn.co platform for students.
- Learn more about custom parameters in Token Alchemist.
- The process of learning OAuth in Token Alchemist.
- What to consider when using LTI in Elixir.
- The benefits of resource link history ID’s in the LTI spec.
- Opportunities for you with Token Alchemist.
- And much more!
Links Mentioned in Today’s Episode:
We Work — https://www.wework.com/
Flatiron School — https://flatironschool.com/
Elixir — https://elixir-lang.org/
Ruby — https://www.ruby-lang.org/en/
Learn.co — https://learn.co/
Meryl on LinkedIn — https://www.linkedin.com/in/meryldakin/
Meryl on Twitter — https://twitter.com/meryldakin
Meryl on GitHub — https://github.com/meryldakin
Token Alchemist on GitHub — https://github.com/meryldakin/token_alchemist
Learn more about how SmartLogic uses Phoenix and Elixir.
Special Guest: Meryl Dakin.
Brooklyn Zelenka on Witchcraft - Elixir Internals
Elixir Wizards
07/11/19 • 30 min
Hey everybody and welcome back to Season 2 of the podcast! This season we will be talking about Elixir internals, libraries and the inner workings of the language. In our first episode we are very happy to be joined by Brooklyn Zelenka to start off our journey on the subject with an exploration of her very own Witchcraft.
In this episode we talk to Brooklyn about her history with Elixir, how she got started and what attracts her to it. Brooklyn explains the influence that open source philosophy has had on her career in developing and from there she gives a pretty comprehensive introduction to what Witchcraft is, expanding its key concepts. Although this is quite a high level discussion about Elixir and Witchcraft, we are confident that with Brooklyn's expert help even our most uninitiated listener can get some benefit from our conversation. We also talk about type systems, property-based checking and Dialyzer, so for all of this and more make sure to join us as we kick things off for Season 2!
Key Points From This Episode:
- A quick introduction to Brooklyn, where she works and how she got started with Elixir.
- The influence of open source and library contributions on Brooklyn's development.
- Getting to grips with Witchcraft; defining monads and functors.
- Why some of these scary terms do not need to frighten you.
- A few little things that differentiate Witchcraft and some surprising elements.
- The convenient guarantees that Witchcraft provides around your data structure.
- Why there is no type system baked into Elixir; overheads, inputs and outputs.
- Property-based checking and compile times in Witchcraft.
- Merging of Elixir and Dialyzer; benefits and problems.
- Getting in touch with Brooklyn and getting involved with Witchcraft and Elixir.
- And much more!
Links Mentioned in Today’s Episode:
Smartlogic — https://www.smartlogic.io/
Brooklyn Zelenka — https://github.com/expede
Brooklyn Zelenka on Twitter — https://twitter.com/expede
Brooklyn Zelenka Email — [email protected]
Fission — https://fission.codes/
Elixir — https://elixir-lang.org/
Witchcraft — https://hex.pm/packages/witchcraft
Dialyzer — https://github.com/jeremyjh/dialyxir
Learn more about how SmartLogic uses Phoenix and Elixir.
Special Guest: Brooklyn Zelenka.
Smart Software Season 1 Trailer
Elixir Wizards
02/25/19 • 1 min
Welcome to the first season of Smart Software with SmartLogic. We'll be interviewing several companies about how they use Elixir in Production this season. In this preview episode, we introduce ourselves and some of the topics we’ll be covering.
Learn more about how SmartLogic uses Phoenix and Elixir.
Mark & David from Thinking Elixir on Ecto Queries
Elixir Wizards
10/20/22 • 53 min
This week the Thinking Elixir Podcast is taking over Elixir Wizards! Mark & David from Thinking Elixir are here today to parse the particulars of Ecto Queries! Mark Ericksen is an Elixir Specialist at Fly.io and host of Thinking Elixir. David Bernheisel is a Senior Software Engineer at Bitfo and host of Thinking Elixir. Tune in today to learn more about Ecto Queries from today’s special guests, Mark Ericksen and David Bernheisel!
Key Points From This Episode:
- A brief breakdown of today’s topic and introduction to our special guests, Mark & David
- The hosts catch up with Mark & David and learn about David’s new book Ecto In Production
- Dave Lucia is mentioned once again, can we go one episode without talking about him?
- Find out how long David & Mark have been working in databases
- We get the breakdown of what an Ecto Query is
- There is a discussion around schema migrations vs data migrations and how to avoid common pain points
- Learn what resources are available for learning Ecto
- We find out what the pin operator is and when it is used
- What an extensive query is and how to optimize queries
- We learn about fun edge cases that we’ve bumped into while working with Ecto
- The ins and outs of Ecto dump and Ecto load
”Ecto is a whole wide world of information. You think you know a lot and then you realize you don't. Nope, I'm almost just as dumb as I was five years ago about SQL and Ecto. Nope, it evolves. It gets deep.” - Mark Ericksen
Links Mentioned in Today’s Episode:
Mark Ericksen on Twitter — https://twitter.com/brainlid
Mark Ericksen on LinkedIn — https://www.linkedin.com/in/mark-ericksen-66397417/
David Bernheisel on Twitter – https://twitter.com/bernheisel
David Bernheisel on GitHub – https://github.com/dbernheisel
David Bernheisel on LinkedIn – https://www.linkedin.com/in/bernheisel/
Thinking Elixir Podcast https://podcast.thinkingelixir.com/
SmartLogic — https://smartlogic.io/
SmartLogic Twitter — https://twitter.com/smartlogic
Use The Index, Luke! https://use-the-index-luke.com/
Postgresql Tutorial https://www.postgresqltutorial.com/
Postgresql subqueries
https://stackoverflow.com/questions/3004887/how-to-do-a-postgresql-subquery-in-select-clause-with-join-in-from-clause-like-s
https://www.w3resource.com/sql/subqueries/understanding-sql-subqueries.php
Fly Blog: Safe Ecto Migrations https://fly.io/phoenix-files/safe-ecto-migrations/
Crunchy Data Developer Tutorials https://www.crunchydata.com/developers/tutorials
Crunchy Data Postgres Tips https://www.crunchydata.com/postgres-tips
Ecto in Production https://www.ectoinproduction.com/
SQL Join Illustration https://commons.wikimedia.org/wiki/File:SQLJoins.svg
SQL Join Illustration https://i.stack.imgur.com/UI25E.jpg
Show more best episodes
Show more best episodes
FAQ
How many episodes does Elixir Wizards have?
Elixir Wizards currently has 180 episodes available.
What topics does Elixir Wizards cover?
The podcast is about Coding, C++, Javascript, Phoenix, How To, Software Development, Podcasts, Technology, Education, Java and Programming.
What is the most popular episode on Elixir Wizards?
The episode title 'Season 2 Trailer' is the most popular.
What is the average episode length on Elixir Wizards?
The average episode length on Elixir Wizards is 43 minutes.
How often are episodes of Elixir Wizards released?
Episodes of Elixir Wizards are typically released every 7 days.
When was the first episode of Elixir Wizards?
The first episode of Elixir Wizards was released on Feb 25, 2019.
Show more FAQ
Show more FAQ