POPULARITY
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/ElektronikaMK-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/armstrongthesis2003.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%27sthree_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.
In this episode of Beam Radio, Alex Koutmos takes the hot seat as the panel learns about Alex's programming roots, his personal Elixir journey, and what excites him about programming on the Beam. Alex then goes on to discuss the importance of application observability and how the Beam (and specifically the projects in the Beam-Telemetry GitHub organization) allow you to easily achieve application observability. He then goes on to dive into his PromEx project which aims to bring effortless Prometheus and Grafana monitoring to Elixir applications. Alex is currently a Senior Engineer at Boulevard, the author of the Elixir Twitter Tip Series, a frequent blogger at akoutmos.com and the author of the PromEx and Doctor libraries (as well as a few others). Elixir in Action (https://www.manning.com/books/elixir-in-action-second-edition) Learn You Some Erlang (https://learnyousomeerlang.com) Learn you some Erlang “Onion Theory Platform” (https://learnyousomeerlang.com/building-applications-with-otp) Programming Elixir 1.6 (https://pragprog.com/titles/elixir16/programming-elixir-1-6/) Elixir in Action, 2nd edition (https://www.manning.com/books/elixir-in-action-second-edition) Telemetry (https://hexdocs.pm/phoenix/telemetry.html) Keynote: Telemetry and LiveDashboard - Sophie DeBenedetto | ElixirConf EU Virtual 2020 (https://www.youtube.com/watch?v=v9LV0hvPmUQ) Chris Keathley - Telemetry Conventions (https://keathley.io/blog/telemetry-conventions.html) Alex’s talk on PromEx (https://www.youtube.com/watch?v=ikIdh_UTkLM) Bruce Tate: Julia multiple dispatch talk (https://www.youtube.com/watch?v=kc9HwsxE1OY) We want to connect with you! Twitter: @BeamRadio1 Send us your questions via Twitter @BeamRadio1 #ProcessMailbox Keep up to date with our hosts on Twitter @StevenNunez @akoutmos @knewter @lawik @RedRapids @smdebenedetto Sponsored by @GroxioLearning
Jason loved tinkering with Erlang, they both read a little bit of Learn You Some Erlang, and Adam had a hard time with concurrency.
Conversei com Charlotte de Oliveira sobre sua carreira e sobre Elixir. Você pode encontrar a Charlotte de Oliveira no Twitter https://twitter.com/umamaistempo, no Telegram http://t.me/umamaistempo e no LinkedIn https://www.linkedin.com/in/umamaistempo/. Ela é participante dos dois grupos de Elixir no Telegram: https://t.me/elixirbr e https://t.me/elixirbr_offtopic. Eu criei um outro grupo, em inglês: https://t.me/elixir_world. Canal da Charlotte: https://www.youtube.com/channel/UCv3KvwpQG0SHJ9--FARQ_XA/playlists Apresentações em português: https://www.youtube.com/playlist?list=PL10pcBU5dWTi0FvxZCsh3Z25oYxbNxaFt Apresentações em inglês: https://www.youtube.com/playlist?list=PL10pcBU5dWThqRVB57sB8R-EE-kSoOKQs Charlotte implementando o Jogo da Vida em Elixir no Lottinha Programa https://www.youtube.com/channel/UC_gYKAD3-dvl8fvC9j-OGBQ/ Elixir Brasil 2020: https://2020.elixirbrasil.com/pt/ , https://www.sympla.com.br/elixir-brasil-2020-virtual__1000367 e https://twitter.com/elixir_brasil Code BEAM Brasil 2020 https://www.codebeambr.com/ Perfil da Charlotte na Code BEAM https://codesync.global/speaker/charlotte-lorelei-de-oliveira100/ Indicação da Charlotte; Learn You Some Erlang for great good! Fred Hébert https://learnyousomeerlang.com/ Também mencionado: ELUG SP https://www.meetup.com/elug_sp/ Charlotte pediu para fazer pequenas correções: A distância de onde eu morava até Pinheiros, para a escola, era uns 10~12km, não 6km, O meu emprego de aux. administrativo não era 1000 R$, era um salário mínimo (na época acho que 700 ou 800 reais). --- Send in a voice message: https://anchor.fm/adolfont/message
Joe Armstrong, one of the creators of Erlang, once said: "Erlang is 'write once, run forever'".Grab yourself a cup of coffee or tea and listen to this amazing conversation with Brian St. Amand, an expert Erlang software engineer. Erlang is a powerful yet not so popular tool for building fault-tolerant distributed systems. We talked about how to start learning Erlang, how to build good and maintainable software, and some interesting philosophical discussion about the human side of software development or, as Brian said, "the liberal art of programming".This episode is also a tribute to Joe Armstrong, one of the creators of Erlang, who passed away a few months ago. Thank you, Joe.Links from this episode:Visit our Podcast page and subscribe to our newsletter!Learn You Some Erlang for great goodStructure and Interpretation of Computer ProgramsCowboy Open source projectBrian's Linkedin
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus .TECH – Go.tech/Elixir and use the coupon code “ELIXIR.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Panel Mark Ericksen Joined by Special Guest: Fred Hebert Summary Fred Hebert shares his experience writing “Learn You Some Erlang for Great Good!: A Beginner's Guide” and “Stuff Goes Bad: Erlang in Anger”. He talks about why he wrote these books and explains the whimsical illustrations in “Learn you some Erlang”. Mark Ericksen asks Fred about his latest book “Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do”. Fred gives an overview of property-based testing, explaining what it is, why it is important and sharing tips for getting started in property-based testing. Mark and Fred discuss PropEr and Fred’s inclusion of Elixir in this book. The ecosystems of Erlang and Elixir are explored and Fred shares what he would like to see from the Elixir community as an Erlang developer. They end the episode by discussing Fred’s time at Heroku and Fred’s current interests. Links https://learnyousomeerlang.com/ https://github.com/ferd/recon https://www.erlang-in-anger.com/ https://propertesting.com/ https://github.com/proper-testing/proper https://propertesting.com/toc.html https://erlef.org/ https://www.youtube.com/watch?v=OR2Gc6_Le2U https://twitter.com/mononcqc https://twitter.com/elixir_mix https://www.facebook.com/Elixir-Mix Picks Fred Hebert https://www.hillelwayne.com/post/metamorphic-testing/ Mark Ericksen https://en.wikipedia.org/wiki/Dave_Brailsford
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus .TECH – Go.tech/Elixir and use the coupon code “ELIXIR.TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Panel Mark Ericksen Joined by Special Guest: Fred Hebert Summary Fred Hebert shares his experience writing “Learn You Some Erlang for Great Good!: A Beginner's Guide” and “Stuff Goes Bad: Erlang in Anger”. He talks about why he wrote these books and explains the whimsical illustrations in “Learn you some Erlang”. Mark Ericksen asks Fred about his latest book “Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do”. Fred gives an overview of property-based testing, explaining what it is, why it is important and sharing tips for getting started in property-based testing. Mark and Fred discuss PropEr and Fred’s inclusion of Elixir in this book. The ecosystems of Erlang and Elixir are explored and Fred shares what he would like to see from the Elixir community as an Erlang developer. They end the episode by discussing Fred’s time at Heroku and Fred’s current interests. Links https://learnyousomeerlang.com/ https://github.com/ferd/recon https://www.erlang-in-anger.com/ https://propertesting.com/ https://github.com/proper-testing/proper https://propertesting.com/toc.html https://erlef.org/ https://www.youtube.com/watch?v=OR2Gc6_Le2U https://twitter.com/mononcqc https://twitter.com/elixir_mix https://www.facebook.com/Elixir-Mix Picks Fred Hebert https://www.hillelwayne.com/post/metamorphic-testing/ Mark Ericksen https://en.wikipedia.org/wiki/Dave_Brailsford
Chris and Soroush continue their discussion of the future of concurrency in Swift by considering how Erlang achieves fault isolation with actors.Concurrency in Swift: One approachPreviously: Episode 42: ActorsErlang and ElixirErlang Hot Code SwappingConcurrent and Distributed Programming with Erlang and Elixir: Part 1Errors and ProcessesWho Supervises The Supervisors?Fault Tolerance doesn't come out of the boxConcurrency in Erlang & Scala: The Actor ModelAlan KaySmalltalkHeart of SmalltalkSmalltalk in One PageWhat is OTP? (Learn You Some Erlang)erlang/OTP on GitHub Get a new Fatal Error episode every week by becoming a supporter at patreon.com/fatalerror.
Correl Roush is using Erlang to develop fault-tolerant, scalable phone systems. Show notes: Erlang.org (IRC channel on Freenode, Erlang mailing lists) Erlang: The Movie (YouTube) Learn You Some Erlang, by Fred Hebert How I Start: Erlang, also by Fred Hebert Designing for Scalability with Erlang/OTP, by Francesco Cesarini and Steve Vinoski Comparable tools: Akka, Golang, Elixir Abstractions.io conference Correl Roush is on Twitter Want to be on the next episode? You can! All you need is the willingness to talk about something technical. Theme music is "Crosscutting Concerns" by The Dirty Truckers, check out their music on Amazon or iTunes.
Check out and sign up for Ruby Remote Conf! 02:45 - Francesco Cesarini Introduction Twitter GitHub Erlang Solutions Books: Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Larger Cover Erlang By Example by Francesco Cesarini and Simon Thompson Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski 03:08 - Erlang Programming Language Multicore [Stack Overflow] paralellel processing - Erlang on multicore CPU History Ericsson Home of Erlang/OTP 08:23 - Francesco and Erlang Joe Armstrong Blog 10:49 - Building a Company Around a Language (Erlang Solutions) Products: MongooseIM WombatOAM Riak NoSQL Database Events: Erlang User Conference Erlang Factory Code Mesh Projects: T-Mobile SMS Gateway Instant Messaging Gateway (2008-2009) Preemptive Support, Monitoring, Metrics & Alarming (WombatOAM) 16:00 - The Erlang Programming Language Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes Pharo by Example The Concurrency Model Debugging Live Code Upgrade Smalltalk The Elixir Programming Language OTP (Open Telecom Platform) 24:25 - Error Handling Semantics Actors and Supervisors The Client-Server Behavior The Event Handler Finite State Machines 30:23 - Getting Started with Erlang Resources: Programming Erlang: Software for a Concurrent World by Joe Armstrong Functional Programming with Erlang (Erlang MOOC) Learn You Some Erlang Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Major Hurdles to Learning Erlang: Understanding Tail Recursion and Pattern Matching Concurrency Error Handling 34:23 - Elixir 35:28 - Erlang and Polyglot Architecture RabbitMQ 37:01 - WombatOAM 38:57 - Erlang Pros and Cons Cons: Number Crunching Parallelism Graphics, Web Development, and Frontends Pros: REST APIs webmachine cowboy 40:44 - TDD (Test-Driven Development) common_test EUnit QuickCheck mnesia Shrinking 46:10 - Languages/Technologies on the Horizon (for Francesco) Elixir Large-Scale Distributed Computing FlowForwarding [GitHub] FlowForwarding 48:21 - The Erlang Community The Erlang Mailing List Erlang Central 50:24 - Writing Apps with Erlang / IoT? Picks Avdi Grimm: A Personal Programming Language Roadmap (Avdi) Pharo (Avdi) Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes (Avdi) Babel-17 / Empire Star by Samuel R. Delany (Coraline) Orson Welles (Coraline) John Hughes: QuickCheck Evolution @ CodeMesh 2014 (Jessica) Vehicles: Experiments in Synthetic Psychology by Valentino Braitenberg (Jessica) Zero to One: Notes On Startups, or How to Build the Future by Peter Thiel (Francesco) CodeNewbie Podcast (Chuck) Ask Me Another (Chuck) Startups For the Rest of Us (Chuck)
Check out and sign up for Ruby Remote Conf! 02:45 - Francesco Cesarini Introduction Twitter GitHub Erlang Solutions Books: Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Larger Cover Erlang By Example by Francesco Cesarini and Simon Thompson Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski 03:08 - Erlang Programming Language Multicore [Stack Overflow] paralellel processing - Erlang on multicore CPU History Ericsson Home of Erlang/OTP 08:23 - Francesco and Erlang Joe Armstrong Blog 10:49 - Building a Company Around a Language (Erlang Solutions) Products: MongooseIM WombatOAM Riak NoSQL Database Events: Erlang User Conference Erlang Factory Code Mesh Projects: T-Mobile SMS Gateway Instant Messaging Gateway (2008-2009) Preemptive Support, Monitoring, Metrics & Alarming (WombatOAM) 16:00 - The Erlang Programming Language Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes Pharo by Example The Concurrency Model Debugging Live Code Upgrade Smalltalk The Elixir Programming Language OTP (Open Telecom Platform) 24:25 - Error Handling Semantics Actors and Supervisors The Client-Server Behavior The Event Handler Finite State Machines 30:23 - Getting Started with Erlang Resources: Programming Erlang: Software for a Concurrent World by Joe Armstrong Functional Programming with Erlang (Erlang MOOC) Learn You Some Erlang Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Major Hurdles to Learning Erlang: Understanding Tail Recursion and Pattern Matching Concurrency Error Handling 34:23 - Elixir 35:28 - Erlang and Polyglot Architecture RabbitMQ 37:01 - WombatOAM 38:57 - Erlang Pros and Cons Cons: Number Crunching Parallelism Graphics, Web Development, and Frontends Pros: REST APIs webmachine cowboy 40:44 - TDD (Test-Driven Development) common_test EUnit QuickCheck mnesia Shrinking 46:10 - Languages/Technologies on the Horizon (for Francesco) Elixir Large-Scale Distributed Computing FlowForwarding [GitHub] FlowForwarding 48:21 - The Erlang Community The Erlang Mailing List Erlang Central 50:24 - Writing Apps with Erlang / IoT? Picks Avdi Grimm: A Personal Programming Language Roadmap (Avdi) Pharo (Avdi) Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes (Avdi) Babel-17 / Empire Star by Samuel R. Delany (Coraline) Orson Welles (Coraline) John Hughes: QuickCheck Evolution @ CodeMesh 2014 (Jessica) Vehicles: Experiments in Synthetic Psychology by Valentino Braitenberg (Jessica) Zero to One: Notes On Startups, or How to Build the Future by Peter Thiel (Francesco) CodeNewbie Podcast (Chuck) Ask Me Another (Chuck) Startups For the Rest of Us (Chuck)
Check out and sign up for Ruby Remote Conf! 02:45 - Francesco Cesarini Introduction Twitter GitHub Erlang Solutions Books: Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Larger Cover Erlang By Example by Francesco Cesarini and Simon Thompson Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski 03:08 - Erlang Programming Language Multicore [Stack Overflow] paralellel processing - Erlang on multicore CPU History Ericsson Home of Erlang/OTP 08:23 - Francesco and Erlang Joe Armstrong Blog 10:49 - Building a Company Around a Language (Erlang Solutions) Products: MongooseIM WombatOAM Riak NoSQL Database Events: Erlang User Conference Erlang Factory Code Mesh Projects: T-Mobile SMS Gateway Instant Messaging Gateway (2008-2009) Preemptive Support, Monitoring, Metrics & Alarming (WombatOAM) 16:00 - The Erlang Programming Language Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes Pharo by Example The Concurrency Model Debugging Live Code Upgrade Smalltalk The Elixir Programming Language OTP (Open Telecom Platform) 24:25 - Error Handling Semantics Actors and Supervisors The Client-Server Behavior The Event Handler Finite State Machines 30:23 - Getting Started with Erlang Resources: Programming Erlang: Software for a Concurrent World by Joe Armstrong Functional Programming with Erlang (Erlang MOOC) Learn You Some Erlang Designing for Scalability with Erlang/OTP: Implementing Robust, Fault-Tolerant Systems by Francesco Cesarini and Steve Vinoski Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini and Simon Thompson Major Hurdles to Learning Erlang: Understanding Tail Recursion and Pattern Matching Concurrency Error Handling 34:23 - Elixir 35:28 - Erlang and Polyglot Architecture RabbitMQ 37:01 - WombatOAM 38:57 - Erlang Pros and Cons Cons: Number Crunching Parallelism Graphics, Web Development, and Frontends Pros: REST APIs webmachine cowboy 40:44 - TDD (Test-Driven Development) common_test EUnit QuickCheck mnesia Shrinking 46:10 - Languages/Technologies on the Horizon (for Francesco) Elixir Large-Scale Distributed Computing FlowForwarding [GitHub] FlowForwarding 48:21 - The Erlang Community The Erlang Mailing List Erlang Central 50:24 - Writing Apps with Erlang / IoT? Picks Avdi Grimm: A Personal Programming Language Roadmap (Avdi) Pharo (Avdi) Avdi Grimm: In Which I Make You Hate Ruby in 7 Minutes (Avdi) Babel-17 / Empire Star by Samuel R. Delany (Coraline) Orson Welles (Coraline) John Hughes: QuickCheck Evolution @ CodeMesh 2014 (Jessica) Vehicles: Experiments in Synthetic Psychology by Valentino Braitenberg (Jessica) Zero to One: Notes On Startups, or How to Build the Future by Peter Thiel (Francesco) CodeNewbie Podcast (Chuck) Ask Me Another (Chuck) Startups For the Rest of Us (Chuck)
Listen to this episode to hear how wallowing around in many small balls of mud can help avoid the classic big ball of mud--and ultimately enable you too to practice "the art of destroying software".Turns out the key to writing great software starts with planning upfront to destroy it. In this episode, Greg shares many insights, with the main insight being that we have all been overlooking one key "-ility". That is, is delete-ability of code. And while some of you might argue the ideas are not new, Greg's way of presenting them definitely is.Listen now: (download)References:Greg's blog: http://goodenoughsoftware.net/Programming Erlang: Software for a Concurrent World by Joe ArmstrongLearn You Some Erlang for Great Good!: A Beginner's Guide by Fred HebertThe Glass Cage: Automation and Us by Nicholas CarrParallel Distributed Processing, Volume 1 By David E. Rumelhart, James L. McClelland and PDP Research Group