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)
Maxim Fedorov on Building and Scaling WhatsApp with Erlang
Today we are so excited to share a conversation with Maxim Fedorov, who is the Core Infrastructure Lead at communications giant, WhatsApp! In our chat, Maxim offers such interesting insight and wisdom from a long career in the space, focusing on Erlang and why he views it as such a powerful language for the work at WhatsApp. We also get some backstory from Maxim, looking at his first experiences with computers, his educational background, and some of the work he did leading up to his current position. Our guest does a great job of sharing his thoughts on what he sees as a lack of magic within the Erlang language, why he prefers this, and how the company has managed to scale in such a major way over the past years. We also deal with some more general questions, weighing functional languages against object-oriented ones, useful resource recommendations, and a whole lot more! We finish off this episode with a mini-interview with David Hardwick, who is the current Vice President of Engineering at STORD, so make sure to stay tuned until the end for that!
Key Points From This Episode:
- The beginnings of Maxim's interest in computer science and software development.
- How Maxim transitioned into the network security field.
- Maxim's experience with timezones and how this is approached for an app like WhatsApp.
- Thoughts on why WhatsApp is so popular outside of the United States.
- How Erlang is used at WhatsApp to power messaging.
- Probable reasons that Erlang was selected as the language for WhatsApp.
- Outages and downtime; what constitutes a serious issue for WhatsApp user experience.
- The massive growth that WhatsApp has seen and how their approach to scaling has evolved.
- Characteristics of Erlang that make it so well suited to WhatsApp's needs; simplicity and reliability.
- Maxim's perspective on the issues around programmer education and their results.
- Functional languages versus object-oriented programming; Maxim's thoughts on strengths and weaknesses.
- Why Maxim views Erlang as not containing or performing anything magical.
- Maxim's recommendations for resources when getting started in Erlang!
- Looking back at Maxim's experiences of tertiary education and the thesis he produced.
- The scaling of the WhatsApp server; the project that Maxim is most proud of!
- Maxim's love for motorcycles and bicycles and how these grew out of initial conveniences.
- Today's mini-feature interview with David Hardwick, VP of Engineering at STORD.
Links Mentioned in Today’s Episode:
SmartLogic — https://smartlogic.io/
Maxim Fedorov: https://au.linkedin.com/in/maxim-fedorov-14a570b
Electronika MK-61 — https://en.wikipedia.org/wiki/Elektronika_MK-52
Brian Acton — https://www.forbes.com/profile/brian-acton/
Learn You Some Erlang — https://learnyousomeerlang.com/
Adopting Erlang — https://github.com/adoptingerlang
Joe Armstrong Thesis — https://erlang.org/download/armstrong_thesis_2003.pdf
The BEAM Book— https://github.com/happi/theBeamBook
ejabberd — https://www.ejabberd.im/
Will Cathcart Tweet — https://twitter.com/wcathcart/status/1385253969522413568
Clarke's three laws — https://en.wikipedia.org/wiki/Clarke%27s_three_laws
Lukas Larson — https://twitter.com/garazdawi
Erlang OTP — https://github.com/erlang/otp/blob/master/lib/kernel/src/pg.erl
David Hardwick — https://www.linkedin.com/in/davidhardwick
STORD — https://www.stord.com/
BetterCloud — http://www.bettercloud.com/
Special Guest: Maxim Fedorov.