Elixir Wizards is an interview-format podcast, focused on engineers who use the Elixir programming language. Initially launched in early 2019, each season focuses on a specific topic or topics, with each interview focusing on the guest's experience and opinions on the topic. Elixir Wizards is hosted by Eric Oestrich and Sundi Myint of SmartLogic, a dev shop that’s been building custom software since 2005 and running Elixir applications in production since 2015. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
Protocols in Elixir with Yiming Chen
Today on the show we are grateful to get the chance to speak with Yiming Chen from Tubi, where we hear all about how he likes to use Elixir and the contributions he has made to the community. We begin as always with Yiming's journey into programming and how he got into Elixir through his early interest in Ruby. From there, we talk about the magic of Protocols, hearing about an awesome project Yiming built using them and how this lead him to build a testing framework called Promox. In this section, we also get into how Protocols enable polymorphic logic, why they are useful for defining shared interfaces explicitly, and the differences between Promox and Mox. Our conversation today covers some general advantages of writing code in Elixir, and we explore how it has influenced Yiming’s style of programming, its efficiency thanks to concurrency, and its usefulness for building maintainable applications. Wrapping up, we hear Yiming’s thoughts about the nascent Elixir community in China and all the future possibilities for this magical language.
Key Points From This Episode:
- How Yiming got into programming by building websites using WYSIWYG tools as a child.
- Yiming’s experiences using Ruby and how that led him to learn Elixir.
- People Yiming knows that are using Elixir for personal projects and some highlights of these.
- Yiming’s project where he used Protocols to transfer files from one cloud provider to another.
- How Yiming’s Protocol project led him to create a testing framework called Promox.
- Protocols versus behaviors and how Promox differs from Mox.
- A basic description of how Protocols enable polymorphic logic in Elixir.
- Why Protocols are so useful for defining shared interfaces explicitly.
- The thing that makes Protocols in Elixir specifically attractive.
- Sundi’s talk on Mox and her thoughts on the pros and cons of using it.
- How Yiming got into using Mox through Ruby and his thoughts on it.
- The advantages of using Elixir over Ruby relating to concurrency and testing.
- Networking and software developer jobs after remote work.
- How Yiming’s ElixirConf talk went and the positive feedback he received.
- Yiming’s feelings about Test Driven Development and how closely he follows it.
- Learning Lisp in college and Yiming’s earlier experiences with functional programming.
- How small the Elixir scene in China is and thoughts about how it should grow.
- The benefits of Elixir for building maintainable applications and more.
- How Elixir has changed the way the Yiming programs.
- A model for building websites in Elixir with HTTP requests as functions.
- Final plugs from Yiming about the need for developers at Tubi!
Links Mentioned in Today’s Episode:
Yiming Chen on Twitter — https://twitter.com/dsdshcym?lang=en
tubi.tv — https://tubitv.com/
Quinn Wilton — https://twitter.com/wilton_quinn
Promox — https://giters.com/dsdshcym/promox
Sundi Myint: Stunt Doubles | Testing with Mox, Elixir Conf 2021 — https://youtu.be/qMScnpGhu4E
Yiming Chen - Promox: Roles, Protocols, and Mocks — https://youtu.be/Df81LbdRd0A
‘Mocks and explicit contracts’ — https://dashbit.co/blog/mocks-and-explicit-contracts
Programming Phoenix — https://www.amazon.com/Programming-Phoenix-Productive-Reliable-Fast/dp/1680501453
Why Elixir Matters A Genealogy of Functional Programming - OsaGaius — https://youtu.be/X2u0bBqhRKE
SmartLogic — https://smartlogic.io/
Special Guest: Yiming Chen.