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)
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.
42 min 14 sec
Today we are joined by programmer, professor, educator, and podcaster, Adolfo Neto! We have a fascinating conversation that continues our exploration of the theme of the impact of Elixir, hearing from Adolfo about his early attraction to computers and computer science, the decision to study the subject, and how this led to a life in education and academia. We also talk about growing up in Brazil and how geography influenced his career trajectory, before getting into some of the main outlets that Adolfo uses to share information on functional programming. He also comments on what he loves about Elixir, why learning it can improve any programmer's skills, and much more. One of Adolfo's main goals with his podcasts and YouTube channel is the diversification of the computer science field, and to bring the subject to a wider audience that may not always consider it an option to pursue. Towards the end of our chat, our guest shares some thoughts on useful resources to check out, and his desire to help the Elixir community to continue to grow! Key Points From This Episode: Opening remarks and rants from Adolfo regarding Livebook! Adolfo's route into teaching and how he became a university professor. Information on Adolfo's Ph.D. program which he completed at the University of São Paulo. The initial impetus to study computer science; what drew Adolfo to the field. Adolfo's YouTube channels and the subjects he covers for his audience. The course that Adolfo offers on Elixir to students all over the world! How Adolfo found and learned about functional programming. Adolfo's thoughts on the benefits of different functional programming languages. The main goals that Adolfo has for his functional programming classes. Adolfo's own forays into podcasting, and what drew him to the medium! Experiences in the South; Adolfo's early days studying the US. Recommended resources for learning Elixir; the books and sites that Adolfo uses. Adolfo's hopes for Elixir to keep growing and why he prefers functional programming. How to connect with Adolfo online and make use of some of his amazing content! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Adolfo Neto on Twitter — https://twitter.com/adolfont Adolfo Neto on YouTube — https://www.youtube.com/c/AdolfoNeto Livebook — https://livebook.dev/#install Fly.io — https://fly.io/ BASIC — https://en.wikipedia.org/wiki/BASIC ML (programming language) — https://en.wikipedia.org/wiki/ML(programminglanguage) Emílias on Twitter — https://twitter.com/emilias_utfpr Elixir em Foco on Twitter — https://twitter.com/elixiremfoco Seven Languages in Seven Weeks — https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X Clojure — https://clojure.org/ Laurie Williams — https://collaboration.csc.ncsu.edu/laurie/ Saša Jurić — https://www.theerlangelist.com/ Brujo Benavides on LinkedIn — https://www.linkedin.com/in/elbrujohalcon?originalSubdomain=es Elixir School — https://elixirschool.com/en/ Exercism Elixir Track — https://exercism.org/tracks/elixir Exercism Erlang Track — https://exercism.org/tracks/erlang Special Guest: Adolfo Neto.
47 min 57 sec
As we continue this season of the podcast, focusing on the impact of Elixir, we are joined by Florian Kraft, all the way from Berlin, Germany! Florian works as a software engineer at Contentful, and has a number of exciting open-source projects that he is currently involved with. In our fun conversation with Florian, we get to hear about the events that led up to him becoming interested in computers and working with software, and why he maintains a light-hearted attitude when talking about his expertise. We also get to hear from our guest about his thoughts on a few other languages, and why learning new languages is a great way to constantly improve your work in the languages you already know! Florian talks about what drew him to Elixir and the community and also shares some of his reflections from this year's virtual Elixir Wizards conference. Towards the end of our chat, Florian tells us about his work with AdoptOSS and Mimicry, which you can currently find on GitHub, both of which we are quite excited about! So to hear it all from Florian and our usual suspects, be sure to listen in! Key Points From This Episode: Florian's interesting route into the world of software engineering. How Florian views his experiences and skills as a software engineer. Florian's thoughts on Haskell and some of the best resources for learning about it. The languages that Florian uses in his work at Contentful. Experiences entering into the Elixir community and the colleague who introduced him to the language! Life in Germany and Berlin; thoughts on the seasons, and the general culture. Florian's experiences at this year's Elixir Wizards conference; warming to virtual events. Staying active in the Elixir community and Florian's honest confessions about the time he puts in. Features that Florian misses and wishes for when working in Elixir. Immutability and pattern matching: Florian's favorite parts of Elixir! Some of the open-source Elixir projects that Florian is currently working on. The video games that Florian has most enjoyed recently and some of his all-time favorites! Where to find and connect with Florian and his exciting projects! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Florian Kraft — github.com/FlorianK Contentful — https://www.contentful.com/ Exercism — https://exercism.org/ Adoptoposs — https://adoptoposs.org Adoptoposs Github — https://github.com/adoptoposs/adoptoposs Mimicry — https://github.com/mimicry-tech/mimicry Learn You a Haskell for Great Good — https://www.amazon.com/Learn-You-Haskell-Great-Good/dp/1593272839 Haskell — https://www.haskell.org/ Prolog — https://www.cpp.edu/~jrfisher/www/prologtutorial/ptframer.html Learn You Some Erlang for Great Good — https://www.amazon.com/Learn-Some-Erlang-Great-Good/dp/1593274351 Elixir in Action, Second Edition — https://www.manning.com/books/elixir-in-action-second-edition Gleam — https://gleam.run/ Autobutler — https://autobutler.co.uk Squid Game — https://www.rottentomatoes.com/tv/squidgame Oktoberfest — https://www.imdb.com/title/tt10244612/ Toucan — https://www.toucan.events/ The Binding of Isaac — https://store.steampowered.com/app/113200/TheBindingofIsaac/ Zelda — https://www.zelda.com/ Doom — https://bethesda.net/en/game/doom Defragmenting C Drive — http://hultbergs.org/defrag/ Special Guest: Florian Kraft.
48 min 52 sec
Today’s guest is Angel Jose, a Software Engineer Manager at Cars.com with a passion for product and the customer experience. Angel played a key role in completely re-platforming Cars.com via Elixir, Phoenix, and other open source tooling, and his former adventures in the blockchain space include working with ETH, EOS, and general distributed tooling. In today’s episode, we discuss Cars.com's decision to migrate to an entirely Elixir-based system, rebuilding the data model from scratch, redesigning all of the user interfaces, and what that meant for the team that Angel was tasked with leading, as well as how the Elixir system functions at such incredible scale, with Cars.com receiving more than a million visitors daily! We touch on Angel’s approach to onboarding new engineers, how Elixir impacts this process, and the broader impact Elixir has on the community as a whole, as well as what he hopes to see from the community in the future, so make sure not to miss this awesome conversation about adopting Elixir with Angel Jose! Key Points From This Episode: Hot takes, rants, and obsessions: Angel’s best and worst taco experiences. Why Angel won’t be at ElixirConf 2021 and the story of how he began programming in Elixir. The process of finding a job in software engineering after completing an online bootcamp. Angel’s experience of navigating the freedom that comes with being an engineer. Find out how Angel got involved in re-platforming Cars.com, one of the original dot coms. Get a glimpse into the make up of the engineering team at Cars.com. How the pandemic impacted not only Angel’s deadlines but the car industry as a whole. The ETL pipeline of different data points that makes up Cars.com and Auto.com. Angel shares his opinion of LiveView and what he has learned about using it at scale. Advice for those adopting new technology: make sure there are enough resources out there. Where Angel believes his team would be without Elixir and what they are looking forward to. Some of the tangible benefits Cars.com has seen from flipping the switch to Elixir. How Angel approaches onboarding new engineers by providing them with resources and integrating learning into their day-to-day. The importance of celebrating small wins and fostering feelings of accomplishment. Angel on how Elixir impacts onboarding and new engineers; more simplicity, less magic. How Elixir has impacted the programming community and what Angel hopes to see in future. Taco happy hour, conference food, making the most of each meal, remote work, and more! What Angel has learned from working remotely, particularly from a social perspective. Angel shares his dream car after working at Cars.com and moving to Colorado. Links Mentioned in Today’s Episode: Angel Jose on LinkedIn — https://www.linkedin.com/in/ajose01/ Angel Jose on Twitter — https://twitter.com/ajose01 Cars.com — https://www.cars.com/ Cars.com Careers — https://www.cars.com/careers/ Elixir Conf — https://2021.elixirconf.com/ Elixir Slack — https://elixir-slackin.herokuapp.com/ General Assembly — https://generalassemb.ly/ SmartLogic — https://smartlogic.io/ Special Guest: Angel Jose.
47 min 57 sec
As we kick off our new, seventh season of the Elixir Wizards podcast, we wanted to introduce our theme of the impact of Elixir by having a simple chat between our panel and foregoing our usual guest format. As fans of podcasts ourselves, we always like to get to know some of the personalities behind the voices, so we decided to take this opportunity to do just that, with Alex, Sundi, and Eric! So to hear a little about what to expect in the coming weeks of the show, what the teams have been up to recently, both professionally and beyond, and to just enjoy a quick hangout with some friendly voices, make sure you tune into this launchisode! Key Points From This Episode: What our team has been up to recently: new projects, the apprentice program, and more. Reflections on this iteration of the apprentice program and differences from 2018. The recent ElixirConf and how our panel was involved in the event. Inside information that is shared at conferences and learning about the world! Avoiding the pressure to always do more while engaging in the community. Noting the impact that Elixir has had on each of us, and how we write code respectively. Proactive learning and career growth; looking forward to the new season exploring these subjects! Staying focused on what's important, getting rest, and pursuing passions. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Aino — https://github.com/oestrich/aino Aino Read Me — https://ainoweb.dev/readme.html King Tooth — https://www.instagram.com/kingtoothpug/ SmartLogic Apprenticeship Program — https://smartlogic.io/about/community/apprentice/ SmartLogic Welcomes Two New Developer Apprentices to the Team! — https://smartlogic.io/blog/2021apprentices/ Elixir Conf — https://2021.elixirconf.com/ Culttt — https://www.culttt.com/ Shrek — https://www.rottentomatoes.com/m/shrek Kangaroo Jack — https://www.rottentomatoes.com/m/kangaroojack Korn — https://www.kornofficial.com/ Flutter — https://flutter.dev/docs/resources/books Lonestar Elixir — https://lonestarelixir.com/
58 min 47 sec
We have reached the final episode of our season, and as we wrap up our exploration of BEAM magic, we are joined by Amos King, whose tweet was the inspiration behind this season's focus! We've had such a great time this season and hope that our listeners have enjoyed it as much as we have, and gained something in the process. Our conversation with Amos jumps around from exploring his experiences during the last year and a half, to the journey he has been on with his company, Binary Noggin, life as a CEO, and much more! We delve into some thoughts from our guest about the relationship between magic and understanding and also talk a little about this year's upcoming ElixirConf, where Amos will be speaking. Amos also shares how learning a new language can help the coding you do in languages you already know, and tells an interesting story about how he turned a long commute into a superpower! So stay tuned for Season 7, coming to you soon, and thank you for sticking with us this long! Key Points From This Episode: Looking forward to this year's ElixirConf and the hope that it will proceed. Amos' return to the office after three months of working from home. A little about Binary Noggin and the different size clients they work with. The inspiration behind the company name and the transition from side work to a full-time gig. Amos' experiences as a CEO during the pandemic and the surprising growth at Binary Noggin. How Amos inspired the BEAM Magic theme for this season and his thoughts on understanding. Amos' experiences of speaking at conferences and the possibility of presenting about magic. Some details on Amos' talk this year at ElixirConf. How Amos was introduced to Elixir through Erlang and the things that made him love it! The impact that learning new languages can have on your work in general. How an extremely long commute early in Amos' career served him in unexpected ways. Links Mentioned in Today’s Episode: SmartLogic Jobs — https://smartlogic.io/about/jobs Amos King on Twitter — https://twitter.com/adkron Binary Noggin — https://binarynoggin.com/ Binary Noggin Careers — https://binarynoggin.com/about-us/#careers Binary Noggin Email — firstname.lastname@example.org DirtyInformation — http://dirtyinformation.com/ Elixir Outlaws — https://elixiroutlaws.com/ Wallaby — https://github.com/elixir-wallaby/wallaby Testing Elixir — https://www.goodreads.com/book/show/54156353-testing-elixir Special Guest: Amos King.
58 min 4 sec
This episode serves as a round-up of some of the special mini-features we have recorded throughout Season 6, where we'll hear from Tyler Clemens, Elom Amouzou, Elise Navarro, and Jeremy Neal about their work and experiences with Elixir. Our first segment is with Tyler, who is a software developer at Jackpocket, where he explains what he is currently busy with and how the company is offering access to the lottery in more safe and convenient ways. We then move on to Elom, who talks about transitioning from a life in public education, and what prompted him to learn functional programming. Elise, who works at Zingeroo, takes us through her relatively new career, why she is so excited about Elixir, and the interesting work that is being done at her company to educate the public about the stock market. Lastly, Jeremy talks to us about the socially conscious agenda at Clover Food Lab, his personal interests in cooking and baking, and how he came to work with Elixir. All of our guests share helpful resources for learning, and reflections on their time working within Elixir - make sure to join us to catch all this good stuff! Key Points From This Episode: Tyler's path into software engineering and the first language he learned. What Jackpocket offers its customers and how Elixir is used within the company. Tyler's thoughts on the perks and challenges associated with engineering with Elixir. The most helpful resources that Tyler uses when in need: Elixir Slack, books, and Elixir School! Onboarding and training in Elixir and the biggest challenges presented in this area. Tyler's passion for photography and imagining an alternative career path in this direction. Elom's first programming language and the subsequent transition into Elixir. How Elom moved into working in programming from his roots in education. Elom's perspective on the positives associated with adopting Elixir early on. Resource recommendations from Elom for early-stage developers. Considering the pros and cons of the small intimate Elixir community and its future. Elom's ideal alternative career path and favorite book! Elise's beginnings in programming and her move from a career in digital media. Comparing Elixir with other languages; Elise weighs in with her experiences. What Zingeroo does and how they use Elixir to make the stock market more accessible through the app. The benefits of using Elixir for a real-time app like Zingeroo. The resources that have been most valuable to Elise since joining the community. Elise's alternative career path, and her passion for teaching Pilates. Jeremy's educational and professional path into software engineering and working with Elixir. How Jeremy has been using LiveView in his work to get a functional UI up and running. What Clover Food Lab does and how Elixir is used at the company and online store. Jeremy's thoughts on a different career and why he would love to be a baker! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Tyler Clemens — https://www.linkedin.com/in/tylerclemens Jackpocket — https://jackpocket.com/ Elixir in Action — https://www.goodreads.com/book/show/38732242-elixir-in-action Elixir School — https://elixirschool.com/ Turing School — https://turing.edu/ Pragmatic Bookshelf — https://pragprog.com/ Code Flow Thinking Elixir — https://thinkingelixir.com/available-courses/code-flow/ Frantz Fanon — https://www.britannica.com/biography/Frantz-Fanon Peau Noire, Masques Blancs — https://www.amazon.com/Peau-Noire-Masques-Blancs-French/dp/2020006014 Elise Navarro — https://www.linkedin.com/in/elise-navarro Zingeroo — https://zingeroo.com/ Jeremy Neal — https://www.linkedin.com/in/jeremy-neal-59ba8b82 Clover Food Lab — https://www.cloverfoodlab.com/ Special Guests: Elise Navarro, Jeremy Neal, and Tyler Clemens.
38 min 35 sec
Joining us on the show today is Quinn Wilton, and we have a wonderful conversation with our guest about her journey with Elixir, unusual path into programming, and her wide appreciation for different languages! We start off looking at the time Quinn spent at Waterloo University and what separates the Canadian ethos around computer science. From there, we turn to Quinn's early work in programming, the first proper job that she stepped into, and the immediate affinity she felt for working in Elixir. We also talk a bit about the interesting research that Quinn has been conducting privately, tracking and plotting the path of Erlang over the decades, while also reflecting on the skill of academic reading. We spend some necessary time hearing from Quinn about the BEAM and what BEAM magic means to her, before hearing about her website, love of Twitter, other languages that currently have her excited, and the avenues she is most lit up about exploring in the future! Listen in to hear it all, as we continue this journey! Key Points From This Episode: Quinn's reflections on her education in Canada, and differences to the American approach to computer science. Reasons that Quinn wanted to pursue a career in programming The first jobs that Quinn landed as a programmer; creating a Roblox game and tracking malware. How Quinn was introduced to Elixir and the immediate love she felt for the language. The recent work that Quinn has been busy with researching and tracing the history of Erlang. Experiences of reading academic papers and what sets it apart from other formats. The inspiration behind Quinn's website and her affinity for Twitter's format. Quinn's favorite characteristics of the BEAM: the debugging possibilities. The project that Quinn worked on using Gleam on the BEAM and her enjoyment of its simplicity. Some possible areas, outlined by Joe Armstrong, that Quinn is excited to explore in the near future. Quinn's huge appreciation for different programming languages and her fascination with Strand. Encouragement from Quinn to dive into reading intimidating research papers. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/jobs Quinn Wilton — https://quinnwilton.com/ Quinn Wilton on Twitter — https://twitter.com/wiltonquinn Quinn Wilton on GitHub — https://github.com/QuinnWilton University of Waterloo — https://uwaterloo.ca/ Roblox — https://www.roblox.com/ Lookout — https://www.lookout.com/ Clint Gibler — https://clintgibler.com/ Gleam — https://gleam.run/ Joe Armstrong — https://www.theguardian.com/education/2019/may/08/joe-armstrong-obituary 'Getting Erlang to talk to the outside world' — https://www.researchgate.net/publication/2549678GettingErlangtotalktotheoutsideworld Universal Binary Format — https://github.com/ubf/ubf CLU — https://en.wikipedia.org/wiki/CLU(programminglanguage) Strand — https://en.wikipedia.org/wiki/Strand(programming_language) Special Guest: Quinn Wilton.
While NIFs provide a great way to interface with native code in the BEAM machine, the process can also be rather error-prone. Thankfully, since Isaac Yonemoto built Zigler, things have become a lot simpler, and he joins us today to talk about how. Isaac is an Elixir developer with a background in biotech and we kick off the discussion by hearing about his journey into programming and some of the ways that he has combined it with science. From there we hear more about the different languages Isaac has worked in and why he fell in love with Elixir, where he talks about its encouragement of test-driven development and how this has made him a better programmer. We dive right into the contributions Isaac is making to the Elixir community next, and he starts off by talking about Zigler. He explains how Zigler provides a bridge between Zig and Elixir that makes it far easier to build NIFs. We hear a bunch of the other cool possibilities that Zigler offers to Elixir as well, including its ability to make debugging easier by appending the Zig stack trace to the Elixir one. After hearing Isaac’s opinion of magic in Elixir, we close today's show off with a few of the other projects he is working on, contributions that are bound to make the world of Elixir even more exciting! Key Points From This Episode: Isaac’s early exposure to programming and how he got started in tech. The education Isaac had in the sciences and his experience in the biotech sphere. Difficulties with installing Ruby and how this led to Isaac learning Elixir. Support for asynchronous testing and the reasons why Isaac finds joy in Elixir. The emphasis on test-driven development in Elixir and how this has made Isaac a better programmer. Isaac’s experiences with Zig and the similarities between it and Elixir. How NIFs allow C code in Elixir and what it is like debugging them. Isaac’s Zigler project and how it provides integration between Elixir and Zig making it easy to build NIFs. Cross-compiling C using Zig and why Isaac built a disassembler. Aspects of the BEAM that make it harder to write NIFs in Elixir than in Julia. Isaac’s opinion of magic in programming and how it should always be comprehensible. Final plugs from Isaac: where to find Zigler, and some upcoming projects. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Isaac Yonemoto on Twitter — https://twitter.com/DNAutics Isaac Yonemoto on GitHub — https://github.com/ityonemo Isaac Yonemoto on YouTube — https://www.youtube.com/channel/UCarZZW7eavljSdGRQx9kkSA Selectrix — https://github.com/ityonemo/selectrix Mavis — https://github.com/ityonemo/mavis Chiaroscuro - https://github.com/ityonemo/chiaroscuro Zigler - https://hexdocs.pm/zigler/Zig.html Zigler on GitHub — https://github.com/ityonemo/zigler Julia — https://julialang.org/ Testing Elixir with Jeffrey Matthias and Andrea Leopardi — https://smartlogic.io/podcast/elixir-wizards/s6e6-matthias-leopardi/ Special Guest: Isaac Yonemoto.
46 min 38 sec
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.
50 min 20 sec
Some of you may recognize Chelsea Troy from her popular blog of the same name or as a keynote speaker for the March 2021 Code BEAM conference. Chelsea is an instructor in the Master's Program in Computer Science at the University of Chicago and currently works as a staff software engineer at Mozilla, where she specializes in machine learning and backend systems. In our conversation with Chelsea, we discuss some of the unique aspects of coding as a career. Chelsea outlines how programming can be more accessible than other careers because it doesn't have the same financial burden when it comes to education. She also emphasizes the importance of allowing a more diverse range of people access to the field and unpacks the type of person the internet was originally built for, explaining how it had favored privileged affluent individuals from the Bay Area. We hear from Chelsea about how she became a programmer out of a desire for job security rather than passion and why she believes it’s so important to have a broader representation of different narratives when it comes to careers in programming and coding. Later Chelsea shares the story of how she became an educator and why she is so passionate about teaching. For all this and much more, join us today! Key Points From This Episode: Introducing today’s guest Chelsea Troy Why Chelsea believes it’s important to privilege multiple narratives of why people choose to pursue programming as a career. There is less of a financial burden with becoming a programmer than other higher-paying professions. The benefits of a diverse group of people having access to programming as a career. What first prompted Chelsea to start her blog and how her goals for it have changed over time. Why Chelsea struggles to give advice on how to market a blog. How being able to draw parallels between different coding languages has strengthened Chelsea’s teaching and writing pursuits. Why Chelsea is so enthusiastic about teaching. How teaching allows Chelsea to have a more meaningful impact in the field of tech. How Chelsea prioritizes which jobs and clients to pursue as a consultant. How having two parents who taught for living influenced Chelsea’s passion for teaching. Chelsea shares how she earned her position at Chicago University, despite expecting not to. The challenges and benefits of teaching remotely. The pros and cons of functional languages versus object-oriented languages. How students tend to react to learning functional languages versus object-oriented languages. Mini-feature segment: hear from Rosemary about how she became a software engineer. How Rosemary built websites as a side hustle while studying English. Rosemary shares how she transitioned from working with Java and Blu-ray discs to doing back-end web development and writing in Elixir. How RentPath, the company Rosemary is currently working for, is transitioning from Ruby to Elixir. An outline of RentPath and what they do. Rosemary’s many hobbies and pursuits, including wildlife photography. Links Mentioned in Today’s Episode: Chelsea Troy on Twitter — https://twitter.com/HeyChelseaTroy Chelsea Troy on LinkedIn — https://www.linkedin.com/in/chelseatroy/ Chelsea Troy Blog — https://chelseatroy.com/ Upcoming Code BEAM Conferences — https://codesync.global/ Chelsea Troy on Youtube — https://www.youtube.com/channel/UCIwpdjmSUJmqJ8HwvIGNqig Ruby — https://www.ruby-lang.org/en/ Mozilla — mozilla.org/en-US/ Pocket — https://getpocket.com/ Rosemary Ledesma — https://www.linkedin.com/in/rosemary-ledesma-b6198717/ RentPath — https://www.rentpath.com/ RedFin — https://www.redfin.com/ Special Guest: Chelsea Troy.
48 min 8 sec
While we can think of many reasons why we love Elixir, the community could always benefit from a more lively conversation around testing. It was with this in mind that Jeffrey Matthias and Andrea Leopardi decided to write Testing Elixir, and today they join us on the show to share some of the insights to be found in their new book. Our guests start by sketching out the main reasons why they decided to write a book of this nature before speaking to the process of writing it collaboratively from their respective homes in Italy and the US. Andrea and Jeffrey speak about the challenges of finding a middle ground between their unique styles to come up with a unified testing method. The conversation then takes a deep dive into the weeds of testing in Elixir and we hear our guests' perspectives on the most appropriate situations to use async true, Mox, Ecto Sandbox, and other techniques. We wrap up our interview with a question about what Andrea and Jeffrey would most like people to take away from their book where they express the hope that it can act as a springboard for further conversation about best practices for testing in Elixir and more. As always, we close the show off with our mini-interview, this time talking to Tracey Onim from Podii. Key Points From This Episode: Why Jeffrey and Andrea wrote their book and how they pitched it to the publisher. How the feedback Andrea and Jeffrey got while writing the book shaped its content. What writing the book was like considering its authors live in different countries. How our guests came up with a unified testing method when each had their own style. Stories about testing mistakes and the funny situations they led to. Discussing the HBO integration test email and how it was responded to and dealt with. The issue of developers not using async true enough and how to get better at it. When to use async true, Ecto Sandbox, and Mox. Why our guests use Mox, when the best times to use it are, and how it shapes your thinking. Exploring the relationship between test driven development and using the program. What can go wrong if you rely purely on tests to test out your code. The main takeaways our guests hope can be found in their book. Final plugs from Jeffrey and Andrea and where to find them online. A quick interview where we learn more about Tracey Onim from Podii. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Jeffrey Matthias on Twitter — https://twitter.com/idlehands Andrea Leopardi — https://andrealeopardi.com/ Andrea Leopardi on Twitter — https://twitter.com/whatyouhide Andrea Leopardi on GitHub — https://github.com/whatyouhide/corsica Testing Elixir — http://testingelixir.com/ Testing Elixir — https://pragprog.com/titles/lmelixir/testing-elixir/ Testing Elixir — https://www.target.com/p/testing-elixir-by-andrea-leopardi-jeffrey-matthias-paperback/-/A-83072057#lnk=sametab Testing Elixir on Twitter — https://twitter.com/testingelixir Publish with The Pragmatic Bookshelf — https://pragprog.com/become-an-author/ Ecto.Adapters.SQL.Sandbox — https://hexdocs.pm/ecto_sql/Ecto.Adapters.SQL.Sandbox.html Mox — https://hexdocs.pm/mox/Mox.html Command Line Options — https://hexdocs.pm/mix/1.12/Mix.Tasks.Test.html#module-command-line-options Mocks and Explicit Contracts — http://blog.plataformatec.com.br/2015/10/mocks-and-explicit-contracts/ bypass — https://github.com/PSPDFKit-labs/bypass Test-Driven Development with Phoenix — https://www.tddphoenix.com/ Tracey Onim — https://www.linkedin.com/in/tracey-onim-420b3316a?originalSubdomain=ke Podii — https://www.apollo.io/companies/Podii/5c1df0e8f651257261ddc16a?chart=count Special Guests: Andrea Leopardi and Jeffrey Matthias.
56 min 18 sec
Joining us for this episode of Elixir Wizards is the vastly experienced and well-traveled Francesco Cesarini! Francesco is the founder of Erlang Solutions and we are so lucky to have him here on the show to talk about his personal and professional journey, and take this great season of shows on the magic of the BEAM even further. Francesco takes us through his early interactions with computers and coding and the events that led to his decision to study computer science, before diving into his move to Sweden, and subsequently the UK, and how this all resulted in the founding of his company. Our guest touches on some helpful lessons he learned around marketing and branding, particularly related to the name of the company and we also discuss how the company grew in stages over the years. From there, the conversation turns to Francesco's work on conferences, and his commitment to this important feature of the community. We talk about the benefits of virtual conferences, what to look forward to, and the team that Francesco works with when organizing. To finish off this segment, our guest gives a few recommended resources and comments on Erlang syntax too! For today's mini-feature we welcome Jeffery Utter who works as a Senior Software Developer at Bleacher Report, so make sure to tune in to catch it all! Key Points From This Episode: Francesco's route into coding from an early age and first forays into studying computer science. The first job that Francesco had out of college: an exciting internship at Ericsson. How Francesco founded Erlang Solutions after leaving Sweden and moving to London. The big growth steps that happened over the years as Erlang Solutions developed. Francesco's evolving mindset during this growth period and his attitude towards scaling the company. The current size of the company and the offices that are spread all over the world! Virtual conferences, more connectivity, and the benefits of getting involved in the community. The planning process for conferences and the size of the team that put them together. The growth curve for Erlang Solutions over the years and the main drivers in the process. Examples from the explanatory videos that Francesco produced to help people understand Erlang. Francesco's feelings about Erlang syntax and the misconceptions about its difficulty. Recommendations of helpful resources to aid the learning curve. Getting involved with Erlang Solutions and connecting with Francesco and his team! Jeffery Utter from Bleacher Report joins us to briefly talk about his journey with Elixir. The time that Jeffery spent working at Communication Service for the Deaf prior to Bleacher Report. Some updates on the growth and evolution of Bleacher Report and what they offer users. How Elixir is used at Bleacher Report and its succession of Ruby at the company. Jeffery's alternate career paths and qualifications in music and education! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Conference — http://smr.tl/conf-podcast Francesco Cesarini on Twitter — https://twitter.com/FrancescoC Joe Armstrong — https://codersatwork.com/joe-armstrong.html Erlang Solutions — https://www.erlang-solutions.com/ Erlang Programming Language - Computerphile — https://www.youtube.com/watch?v=SOqQVoVai6s Chalmers University of Technology — https://www.chalmers.se/en/Pages/default.aspx Erlang & Elixir Developers | Careers at Erlang Solutions — https://www.erlang-solutions.com/careers/ Code BEAM V SF 2021 — https://codesync.global/conferences/code-beam-sf-2021/. RabbitMQ Summit— https://rabbitmqsummit.com/ Languages, and about languages, on the BEAM — https://github.com/llaisdy/beam_languages Lambda Days 2021 — https://www.lambdadays.org/lambdadays2021 Code Mesh — https://codesync.global/conferences/code-mesh-ldn Erlang Master Classes University of Kent — https://www.cs.kent.ac.uk/ErlangMasterClasses/ Professor Simon Thompson — https://www.kent.ac.uk/computing/people/3164/thompson-simon Designing for Scalability with Erlang/OTP — https://www.oreilly.com/library/view/designing-for-scalability/9781449361556/ Erlang Programming — https://www.oreilly.com/library/view/erlang-programming/9780596803940/ Jeffery Utter — https://www.linkedin.com/in/jeffutter Bleacher Report — https://bleacherreport.com/ Communication Service for the Deaf — https://www.csd.org/ Gallaudet University — https://www.gallaudet.edu/
46 min 40 sec
Today we have some extra BEAM magic for all of you! Joining us on the show is Chris Miller, who currently works as an Associate Software Engineer at Corvus Insurance. We get into a great conversation with Chris about his history with programming, his long-held interest in mathematics, and how he is trying to bring these two worlds closer together through his work. Chris weighs in with some very important expert perspectives on a range of subjects, from monads and monoids to Vim and Emacs, before we get into the different avenues of Chris' work. Along with an old college friend, Chris runs the informative YouTube Channel, Coding Cave, helps other coders through mentorship and tutoring, and is also multilingual, speaking Mandarin, Spanish, German, and English! We get some illumination on interesting and important concepts such as Turing completeness, programming language theory, and more, all delivered with an accessibility that belies the high level of the material. So for all this, plus our bonus mini-segment with Semsee employee, Sidney Leatherwood, at the end, be sure to listen in today! Key Points From This Episode: The story behind Chris' Twitter handle and his admiration for Leonhard Euler! How Chris is bringing his love of math into his programming work. A crash course on monads and monoids! Chris' teaching and tutoring work and his aim of bringing fun examples into learning. The YouTube channel that Chris runs with an old friend, called Coding Cave. Chris' take on the Vim versus Emacs debate. How Chris learned to program from his father, and his return to it during college. Unpacking programming language theory and the idea of Turing completeness. Chris clears up the difference between computer science and mathematics. Reasons that Chris enjoys working in Elixir compared with other languages. Chris' goals for his YouTube channel and his hopes to spread advanced education. Magic and languages; a programming language theory perspective. Chris' day job as a software engineer at Corvus Insurance using Elixir and Elm. The array of languages that Chris can speak; Mandarin, German, and Spanish. The process of language acquisition and Chris' methods for learning. Why Chris believes starting with the function is the best way to learn a new programming language. The aspects of Elixir and the BEAM that have Chris the most excited at the moment! This week's mini-feature with Sidney Leatherwood and his use of Elixir in production. The comparative rating service that Semsee offers their customers. Hiring in Elixir currently; perks, challenges, and resources in the space. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Chris Miller on Twitter — https://twitter.com/blackeuler Elixir Wizard Conference — http://smr.tl/conf-podcast Leonhard Euler — https://en.wikipedia.org/wiki/LeonhardEuler Curry–Howard Correspondence — https://en.wikipedia.org/wiki/Curry%E2%80%93Howardcorrespondence Haskell — https://www.haskell.org/ Brooklyn Zelenka — https://medium.com/@expede Coding Cave — https://www.youtube.com/channel/UCwIO8jv71cbOyEwJdrYovg Conversations with the Creator: José Valim — https://www.youtube.com/watch?v=BXpoKKkqAX4 Functor — https://en.wikipedia.org/wiki/Functor Spacemacs: Emacs advanced Kit focused on Evil — https://www.spacemacs.org/ hlissner/doom-emacs — https://github.com/hlissner/doom-emacs Turing Completeness — https://en.wikipedia.org/wiki/Turingcompleteness Cal Newport — https://www.calnewport.com/ Boolean Algebra — https://en.wikipedia.org/wiki/Booleanalgebra Clojure — https://clojure.org/ Corvus Insurance — https://www.corvusinsurance.com/ APL — https://en.wikipedia.org/wiki/APL(programming_language) Gleam - https://gleam.run/ Sidney Leatherwood on LinkedIn — https://www.linkedin.com/in/leather-s Semsee — https://semsee.com/ Special Guest: Chris Miller.
54 min 19 sec
While there is magic to be found in many frameworks, having too much going on under the hood without you being able to control it is not for everybody. Today we invite Parker and Shannon Selbert to speak about their dynamic partnership and the ‘controlled magic’ of their tool Oban. Together Parker and Shannon founded Soren, where they help clients with established web apps stabilize, scale, and ‘add schmancy features’. Their tool Oban is a persistent background job processor written in Elixir whose differentiating feature revolves around keeping jobs after they're processed. We dive right in with Parker and Shannon hearing about how they got into programming before they talk about Oban and what sets it apart. Next up we get into how our guests navigate their personal relationship and professional partnership and they weigh in on homeschooling kids, writing new features, and the necessary life skills for handling Oban user support. Moving onto the topic of the BEAM, we explore the unique type of magic it offers and how this plays into some of the cooler features of Oban such as being able to cancel jobs. Our guests talk about some of the kinks they still need to work out of their tool and we wrap up our conversation on the pro version of Oban and how successful it has been. As always we close today’s show off with our mini-interview, this time with Joe Peck from Spreedly! Key Points From This Episode: The illicit stories behind how Parker and Shannon got into tech. Understanding Oban, a persistent background job processor written in Elixir. How Oban is different from other job processors like Sidekiq. The great partnership our guests have and the story behind Soren. How Parker and Shannon differentiate their personal and professional life. The approach Parker and Shannon take to handling Oban user support. Perspectives on the magic of homeschooling, relationships, and Oban! Different kinds of magic provided by different frameworks and why Elixir magic is the best. How Parker and Shannon got interested in Erlang, BEAM, and Elixir. The best part about maintaining an open-source project. The story behind getting a global concurrency lock on handling batches. Added features that come with upgrading to the pro version of Oban. Canceling a job on Oban and the role the BEAM plays in allowing this. Writing documentation for Oban and our guest’s plans to make video tutorials. The shift in digital learning more towards video tutorials. Perspectives on whether we have arrived at a golden age in computing yet. Challenges around implementing seamless horizontal scaling in Oban. Making a living and working on Oban; advantages of setting up a pro version. Our mini-interview with Joe Peck where we explore his journey with Elixir. Links Mentioned in Today’s Episode: Elixir Wizards |> Conference — https://smr.tl/conf-podcast SmartLogic — https://smartlogic.io/ Soren on Twitter — https://twitter.com/sorentwo?lang=en Soren — https://sorentwo.com/ Parker Selbert on GitHub — https://github.com/sorentwo Shannon Selbert on GitHub — https://github.com/sorenone Oban — https://github.com/sorentwo/oban Sidekiq — https://sidekiq.org/ Lawnmower Man — https://www.imdb.com/title/tt0104692/ Soren Kierkegaard — https://www.britannica.com/biography/Soren-Kierkegaard Ender's Game — https://www.amazon.com/Enders-Ender-Quintet-Orson-Scott/dp/0812550706 Joe Peck — https://peckyeah.com/ Spreedly — https://www.spreedly.com/ Special Guests: Parker Selbert and Shannon Selbert.
50 min 21 sec
Today we are joined by the Vice President of Engineering at Corvus Insurance, Erik Person! Erik continues our journey into the magic of the BEAM, our season-long theme for the Elixir Wizards Podcast, and we get to hear all about Erik's path in programming, his relationship with Elixir, and his utilization of the BEAM. Growing up in a family involved in computer science, and an early affinity for technology made the choice of what to study at college a straightforward one for Erik. He tells us about his life during and after those school years, touching on his first job and the important milestones leading up to his current position at Corvus. We talk about his early feelings for Elixir and why it appealed to him almost immediately before discussing different languages on the BEAM and his love of types! Our guest also shares some of the bigger challenges he has encountered working in Elixir and touches on the issue of scaling effectively. In this episode, we also air a mini-feature with SmartLogic's very own Stephanie Vizzi, talking about her work at the company, relationship with Elixir, and more! So for all this, plus a lot in between, be sure to tune in! Key Points From This Episode: Erik's family ties to computer science and his path leading into programming. The first job that Erik landed in programming and his current role at Corvus Insurance. The BEAM at Corvus and the general architecture of the company's technology. Erik's first encounters and learnings with Elixir and the questions it answered for him immediately. The learning curve for languages on The BEAM; Erik's own journey to understanding. Erik's preference for types and his wish for their inclusion on Elixir! Lisp on The BEAM; Erik unpacks his perspectives and the blog post he wrote on the subject. Getting to grips with abstract forms and how these terms operate in Erlang and Elixir. The challenges that Erik experienced parsing and manipulating the code in Elixir. Erik weighs in on BEAM magic; appreciating the magic that is possible with Elixir and Elm. Perspectives on scaling on Elm and Elixir as an application grows rapidly. How Erik and his team typically use contexts and service-oriented architecture. Challenges with compile times during the process of scaling of the application. Excitement about the progressive steps in the data science component of Corvus. How Erik applied his skills to his passion for playing blackjack by creating a card-counting application. The remote meeting hardware device that Erik built as a pandemic side-project! This week's community mini-feature! Looking at how Stephanie Vizzi got into and uses Elixir. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Erik Person on LinkedIn — https://www.linkedin.com/in/erik-person-a9368bb VirtualBox — https://www.virtualbox.org/ Tunnelblick — https://tunnelblick.net/ Corvus Insurance — https://www.corvusinsurance.com/ Corvus Job Openings — https://boards.greenhouse.io/corvusinsurance/ Clojure — https://clojure.org/ Saša Jurić — https://github.com/sasa1977 LFE — https://lfe.io/ Elm — https://elm-lang.org/ Robert Virding — https://codesync.global/speaker/robert-virding/ The Erlang Rationale — https://elixirforum.com/t/the-erlang-rationale-by-robert-virding-pdf/35313 Paul Graham — http://www.paulgraham.com/ Hackers and Painters — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554 Myers Briggs — https://www.myersbriggs.org/my-mbti-personality-type/mbti-basics/ Chris McCord — http://chrismccord.com/ Mix Xref — https://hexdocs.pm/mix/Mix.Tasks.Xref.html Gleam — https://gleam.run/ Leex — http://erlang.org/doc/man/leex.html GNU Bison - The Yacc-compatible Parser Generator — https://www.gnu.org/software/bison/manual/ YACC — https://www.geeksforgeeks.org/introduction-to-yacc/ Stephanie Vizzi on LinkedIn — https://www.linkedin.com/in/stephanie-vizzi-b1158996 Special Guests: Erik Person and Stephanie Vizzi.
Welcome to a brand-spanking-new season of Elixir Wizards! This time around we will be focussing on the magic of the BEAM, so get ready for an exciting journey into new territories filled with mystery and power! To kick things off in this inaugural episode we are joined by a true legend in the space of Erlang, Elixir, and the BEAM. Robert Virding is one of the three founding members of Erlang, and his unrivaled intimacy with the language and its related subjects is truly inspiring and informative. We feel like we could fill many more episodes just hearing Robert unpack the history he has been involved in, but we do manage to cover a lot in this show, touching on Robert's career arcs, the other founders of Erlang, the connection to Ericsson and the bridge to Elixir, as well as much more. Robert also shares some insight into the BEAM and the idea of a virtual machine, broaching these sometimes misunderstood concepts with simplicity and clarity. We talk about magic, hurdles, best practices, and the future of community, with Robert sharing his experiences working on Erlog, LFE, and much more. Make sure to join us for this episode and stay tuned for the rest of another great season! Key Points From This Episode: Robert's description of the Erlang Rationale document and why it was important to create it. Background information on the founding three members of Erlang and how they came together. Training and early career as a computer scientist; Robert's background before Ericsson. The roots of the Erlang name, and how Robert first came across and connected with it. The simplest definition of the BEAM, Bogdan’s Erlang Abstract Machine! Unpacking the application of a virtual machine and the connection between Erlang and BEAM. Information on Core Erlang and how it works within the compiler. LFE or Lisp-Flavored Erlang and the decisions that were made to keep it straightforward. Hurdles to learning Erlang and Robert's thoughts on getting over these. Weighing the usefulness of 'magic' and the caution with which Robert approaches it. Best practices for Erlang and Elixir according to Robert; the biggest shifts necessary for success. Robert's first feelings about the arrival of Elixir and the questions it raised for him. The motivation behind Robert's work on Erlog! Reflections on the Erlang movies that Ericsson produced and their evolution over time! The future of Erlang, its community, and the need for continued and increased collaboration. Why Robert wants to put more parentheses back in the mix! Links Mentioned in Today’s Episode: SmartLogic - https://smartlogic.io/ Robert Virding - https://codesync.global/speaker/robert-virding/ Robert Viriding on Twitter - https://twitter.com/rvirding?lang=en The Erlang Rationale - https://elixirforum.com/t/the-erlang-rationale-by-robert-virding-pdf/35313 Prolog - https://www.swi-prolog.org/ Ericsson - https://www.ericsson.com/ Joe Armstrong - https://www.theguardian.com/education/2019/may/08/joe-armstrong-obituary Mike Williams - https://codesync.global/speaker/mike-williams/ Fortran - https://fortran-lang.org/ Pascal - http://www.pascal-programming.info/index.php VAX - https://www.computerhope.com/jargon/v/vax.htm Franz Lisp - https://franz.com/products/allegro-common-lisp/acl_prolog.lhtml Agner Krarup Erlang - https://mathshistory.st-andrews.ac.uk/Biographies/Erlang/ Bogumil Hausman - https://peoplepill.com/people/bogumil-hausman LFE - https://lfe.io/ Erlang The Abstract Format - https://erlang.org/doc/apps/erts/absform.html Core Erlang - https://blog.erlang.org/core-erlang-by-example/ Erlog - https://github.com/rvirding/erlog Lua in Erlang - https://github.com/rvirding/luerl Erlang: The Movie - https://elixirforum.com/t/erlang-the-movie/440 Monty Python - http://www.montypython.com/ Erlang Ecosystem Foundation - https://erlef.org/ A first look at the JIT - https://blog.erlang.org/a-first-look-at-the-jit/ Lisp Cycles - https://xkcd.com/297/ Creative Assembly - https://www.creative-assembly.com/home Total War - https://www.totalwar.com/ World of Warcraft - https://worldofwarcraft.com/en-us/ Special Guest: Robert Virding.
49 min 45 sec
Season 5 ends with a bang as we welcome back Sean Lewis, Anna Neyzber, and René Föhring onto the show to share their journey on getting their companies and teams to adopt Elixir. We open our conversation with each guest sharing their first experiences with Elixir. After chatting about the changes that they’ve seen in the Elixir ecosystem, we explore Elixir’s benefits and how they’ve persuaded companies to make the Elixir leap. From zero downtime deployment to arguing for Elixir’s ability to solve immediate problems, we touch on the most convincing reasons for stakeholders to adopt Elixir. Following this, we unpack common Elixir criticisms before looking at the importance of hiring developers for their aptitude as well as for their skill set. Later, we discuss what we most appreciate about Elixir, with each guest sharing a story from producing an Elixir app. We round off an insightful episode by talking about Elixir accessibility and the top ways to train entry-level programmers. Join us as we wrap up this season for a last deep-dive on adopting Elixir. Key Points From This Episode: We introduce today’s panel, featuring Sean Lewis, Anna Neyzberg, and René Föhring. Hear how each guest discovered Elixir and what they’ve seen change in the ecosystem. Exploring our guests' first Elixir projects. The intersections between Elixir and cryptocurrency. How to persuade company stakeholders to adopt Elixir. Why choosing a language for scalability often isn’t as important as its immediate benefits. Unpacking common criticisms of Elixir adoption. How a culture of learning can push your company in the right direction. Anecdotes on getting companies to adopt Elixir. We touch on the benefits of using Elixir. Each guest reflects on their experiences producing and maintaining Elixir apps. How our guests are currently using Elixir. Using Credo to train new Elixir developers. Advice on making Elixir accessible to entry-level coders. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — email@example.com Elixir Wizards Conference — https://smartlogic.io/about/community/elixir-wizards-conference/ Anna Neyzberg on LinkedIn — https://www.linkedin.com/in/anna-neyzberg-93545316/ Anna Neyzberg on Twitter — https://twitter.com/ANeyzb Sean Lewis on LinkedIn— https://www.linkedin.com/in/sean-lewis-40375077/ René Föhring on Twitter — https://twitter.com/rrrene René Föhring — https://rrrene.org/ ElixirBridge — http://elixirbridge.org/ Carbon Five — https://www.carbonfive.com/ Genesis Block — https://genesisblock.com/ Genesis Block Jobs — https://genesisblock.com/jobs Credo on GitHub — https://github.com/rrrene/credo/ ElixirConf 2018 — https://elixirconf.com/2018 Ethereumex — https://hex.pm/packages/ethereumex Mana — https://github.com/mana-ethereum/mana Robinhood — https://robinhood.com/us/en/ Slack — https://slack.com/ PagerDuty — https://www.pagerduty.com/ Alexandra Episode — https://smartlogic.io/podcast/elixir-wizards/s5e10-chakeres/ Turing — https://turing.io/ Weedmaps — https://weedmaps.com/ Nav Inc. — https://www.nav.com/ ElixirStatus — https://elixirstatus.com/ Divvy — https://getdivvy.com/ Matt Mills — https://github.com/photomattmills Factorio — https://factorio.com/ Dyson Sphere Program — https://store.steampowered.com/app/1366540/DysonSphereProgram/ Special Guests: Anna Neyzberg, René Föhring, and Sean Lewis.
1 hr 1 min
The fields of data science and machine learning are moving ever faster. Jenn Gamble has her finger on the pulse and has become an industry expert with a wealth of experience to her name. As today’s guest, she dives into these rich and often complex topics, and she helps us boil them down into palatable nuggets of knowledge. We start off by asking Jenn about her current role at Very, and she tells us about the nature of her team and the things they’re able to achieve. She touches on what the language markups look like for a data science team, before moving onto her experiences in machine learning and data science. Delving deeper, Jenn tells us why it is not a necessity to have a master’s in data science, and why you can be well enough equipped in other senses to become proficient in the area. Later on, she reveals the differences between Elixir models and data science models. Following these detailed explanations, she furnishes listener’s minds with informative comments on relating the foundations of machine learning to IoT, using priori knowledge to add nuance to your machine learning, and how she envisions the future of data science. Join us today and be sure to get all this, and much more! Key Points From This Episode: Introducing today’s guest, Jenn Gamble. Jenn tells us about Very, an IoT engineering firm. Hear about the data science team at Very. We learn more on what the language markup looks like for a data science team. Jenn’s experience in learning machine learning and data science. Hear her five-year plan while doing her masters. We ask if it’s necessary to have a master’s degree to be well-equipped in data science. The difference between an Elixir model and a data science model. Jenn elaborates on weights and intuitive algorithms. Dealing with N-dimensional matrices. Relating the foundations of machine learning to IoT. Ways to start building up an intuition around what the most fundamental abstractions are. Using priori knowledge to add nuance to your machine learning. How Jenn envisions the future of data science. Hear about tensors and vectors. Jenn tells us about her keynote experience at ElixirConf 2020. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — firstname.lastname@example.org Jenn Gamble on Twitter – https://twitter.com/jennpgamble Jenn Gamble on LinkedIn – https://www.linkedin.com/in/jenn-gamble/ ElixirConf 2020 - Keynote - Jenn Gamble – https://www.youtube.com/watch?v=btIvtN9wsI&abchannel=ElixirConf IoT – https://www.verypossible.com/careers Very – https://jobs.lever.co/verypossible MathWorks – https://www.mathworks.com/products/matlab.html Cassie Kozykrov – https://kozyrkov.medium.com/ Linear regression – http://www.stat.yale.edu/Courses/1997-98/101/linreg.htm Pythagorean theorem – https://www.mathplanet.com/education/pre-algebra/right-triangles-and-algebra/the-pythagorean-theorem Quadratic equation – https://www.mathsisfun.com/algebra/quadratic-equation.html A priori and a posteriori – https://iep.utm.edu/apriori/ Tensor – https://mathworld.wolfram.com/Tensor.html Vector (mathematics and physics) – https://mathinsight.org/vector_introduction Coursera – https://www.coursera.org/learn/ai-for-everyone Special Guest: Jenn Gamble.
47 min 45 sec
Many organizations take an incremental approach when adopting Elixir, preferring to pick up its nuances by using it to work on non-essential projects. But not Change.org. Today we speak with Change.org Director of Engineering John Mertens about how his company adopted Elixir to create a business-critical app that handles over a billion emails per month. From building webpages on GeoCities to working as an IT intern at an Iowan prison, we open our conversation by exploring John’s coding background. After chatting about his first Elixir project, we dive into Change.org’s process in adopting Elixir. As John shares his insights into successfully integrating Elixir into your tech stack, he highlights the benefits provided by the language. Later, John discusses the advantages of event-driven architecture and how this structure makes it easier for teams to access and analyze data, while also making it easier to add product features. We wrap up this episode with John highlighting his user-centered approach to coding. Join us to hear John’s lessons on making the leap and adopting Elixir in large organizations. Key Points From This Episode: John shares details about his role at Change.org. The story behind John and Change’s Elixir adoption. Hear about John’s coding journey. How John made an Elixir app based on spotting San Francisco tram carriages. Insights into the massive project that Change built using Elixir. Why Elixir is taking over Change’s back-end tech stack. Using Elixir to build reliable event-based architecture. Exploring event-driven architecture from the perspective of Change’s system. John makes a compelling case for event-driven architecture. How Change hires for Elixir roles. Change’s process in training their staff to code in Elixir. John talks about his user-centred approach to design. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — email@example.com John Mertens — https://www.mertonium.com/about John Mertens on Twitter — https://twitter.com/mertonium John Mertens on GitHub — https://github.com/mertonium Change.org — https://www.change.org/ Change.org Careers — https://careers.change.org/ José Valim — https://twitter.com/josevalim GenStage and Flow - José Valim (Lambda Days 2017) — https://www.youtube.com/watch?v=XPlXNUXmcgE Dashbit — https://dashbit.co/ Hacker News — https://thehackernews.com/ Paul Graham — https://twitter.com/paulg/ Nim — https://nim-lang.org/ Pony — https://www.ponylang.io/ Grax.io — https://www.grax.com/ Logo — https://el.media.mit.edu/logo-foundation/whatislogo/logo_programming.html Nerves — https://www.nerves-project.org/ Flow — https://hexdocs.pm/flow/Flow.html ElixirConf EU — https://www.elixirconf.eu/ Martin Fowler — https://martinfowler.com/ ‘The Log: What every software engineer should know about real-time data's unifying abstraction’ — https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying Salesforce Marketing Cloud — https://www.salesforce.com/eu/products/marketing-cloud/overview/ ‘Delivering social change with Elixir at Change.org’ — https://elixir-lang.org/blog/2020/10/27/delivering-social-change-with-elixir-at-change.org/ Code for America — https://www.codeforamerica.org/ Special Guest: John Mertens.
43 min 33 sec
As users increasingly demand interactivity from their web experiences, Phoenix LiveView is becoming the dominant way of writing interactive Elixir applications without a loss to reliability. Today we welcome back an old friend of the show and GitHub engineer Sophie DeBenedetto to talk about her upcoming book, Programming Phoenix LiveView. We open our conversation with Sophie by hearing about her work at GitHub, as well as what we can expect from the Code BEAM V conference. As she doesn’t always get to use Elixir at her job, Sophie then discusses how coders can sharpen their Elixir skills when not at work. After exploring how companies can begin adopting Elixir through event-driven design, we dive into Sophie’s book. She unpacks the value of LiveView when building efficient web applications before touching on how her book can best help people to learn LiveView. We ask Sophie how intertwined the future of Elixir is to the success of LiveView and how this might impact Phoenix. Her answers highlight LiveView’s role in pushing Elixir adoption while also making Elixir easier to learn. We wrap up our discussion by chatting about the challenges of technical writing and Sophie’s experience working with the wonderful Pragmatic Programmers publishing house. Tune in to hear more insights into programming LiveView; if you believe the hype, it’s “one of the most important new frameworks of our generation.” Key Points From This Episode: We catch up with guest Sophie DeBenedetto and hear about the Code BEAM V conference. Sophie shares her feelings on coding in Go. How Sophie engages with Elixir when it’s not a key part of her day job. What Flatiron School did to work towards Elixir adoption. Exploring the concept of event-driven design. Insights into the eventing system used at GitHub. Sophie talks about her experience as an engineering manager. Why Sophie transitioned from being a manager to being an individual contributor. How work-from-home has impacted meeting expectations. Hear the elevator pitch for Sophie’s upcoming book. Thoughts on how beginner-friendly Elixir is as a language. Whether Phoenix LiveView is the future of Elixir. How the attention placed on LiveView limits access to Phoenix resources and tutorials. We ask Sophie if LiveView will make it easier or more difficult to learn Elixir. Advice on writing technical books and the writing support offered by Pragmatic Programmers. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Discord — https://smr.tl/wizards-discord Elixir Wizards Email — firstname.lastname@example.org Sophie DeBenedetto — http://sophiedebenedetto.nyc/ Sophie DeBenedetto on LinkedIn — https://www.linkedin.com/in/sophiedebenedetto/ Sophie DeBenedetto on Twitter — https://twitter.com/smdebenedetto Programming Phoenix LiveView — https://www.pragprog.com/titles/liveview/programming-phoenix-liveview/ Beam Radio — https://www.beamrad.io/ Code BEAM V — https://codesync.global/conferences/code-beam-sto/ Bruce Tate — https://twitter.com/redrapids José Valim — https://twitter.com/josevalim Nx — https://dashbit.co/blog/nx-numerical-elixir-is-now-publicly-available Alex Koutmos — https://twitter.com/akoutmos EMPEX — https://empex.co/nyc.html Flatiron School — https://flatironschool.com/ ‘What is the difference between Event Driven and Event Sourcing?’ — https://softwareengineering.stackexchange.com/questions/385375/what-is-the-difference-between-event-driven-and-event-sourcing Chris Keithley — https://twitter.com/chriskeathley GitHub — https://github.com/ Steven Nuñez — https://twitter.com/StevenNunez ‘Shipping Greenfield Elixir in a Legacy World’ — https://codesync.global/conferences/code-beam-v-america-2021/training/#145shipping-greenfield-elixir-in-a-legacy-world Ruby on Rails Tutorial: Learn Web Development with Rails — https://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional-ebook/dp/B01N779HKK Toran Billups — https://twitter.com/toranb The Pragmatic Programmers — https://pragprog.com/ Chris McCord — https://twitter.com/chris_mccord/ Dave Thomas — https://twitter.com/pragdave/ Andy Hunt — https://twitter.com/PragmaticAndy/ Zenni — https://www.zennioptical.com/ Warby Parker — https://www.warbyparker.com/ Special Guest: Sophie DeBenedetto.
48 min 20 sec
With the prevalence of at-home learning, teachers have to compete for student attention against numerous screen-based activities. Today we speak with engineering lead Shaun Robinson and Elixir developer Toran Billups about how Legends of Learning helps educators make their classrooms fun, engaging, and productive through their curriculum-based games. After chatting about Legends’ mission to empower teachers, we talk with Toran about how he landed a job there. He then shares his insights into securing Elixir jobs, touching on the importance of networking and building a portfolio of Elixir projects. We discuss why Elixir became Legends’ language of choice before exploring their process in adopting Elixir. Reflecting on their early server structure, Shaun explains their process of refactoring from their old code base into an Elixir monolith. Responding to a previous episode, where frustrations were shared about coding in LiveView, Toran talks about its advantages, despite its issues as a new technology. Later, Shaun and Toran dive into what you can do to help your company adopt Elixir. We wrap up another incredible conversation by asking our guests about their favorite Legend of Learning games. Tune in to hear more about Legend of Learning’s Elixir journey and how they’re using it to create dynamic learning environments. Key Points From This Episode: Exploring the mission and work of the Legends of Learning startup. Shaun and Toran share details about their backgrounds. Why building a van home is so similar to building software. Hear about Toran’s podcast on the human side of programming. Shaun talks about the time when he sold his Twitter and GitHub handle. What Toran did to land his first Elixir job. Why Legends of Learning decided to adopt Elixir. Insights into Legends of Learning’s early server architecture. Toran unpacks Legend’s hiring process. Why Shaun’s engineering team consists of remote workers. Toran shares the virtues of coding in LiveView. What Shaun did to refactor their old code base into an Elixir monolith. The process that Legends underwent when adopting Elixir. Advice on finding an Elixir role and adopting Elixir in your company. Hear about Shaun and Toran’s favorite Legend of Learning games. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Email — email@example.com Shaun Robinson on LinkedIn — https://www.linkedin.com/in/shaun1010/ Toran Billups on Twitter — https://twitter.com/toranb Toran Billups on LinkedIn — https://www.linkedin.com/in/toranb/ Legends of Learning — https://www.legendsoflearning.com/ Vadim Polikov — https://www.linkedin.com/in/vadim-polikov/ Developing Fatigue Podcast — https://developingfatigue.fm/ Kris Van Houghton — https://twitter.com/krivaten Dave Gardner — https://www.linkedin.com/in/davegardner01/ Legends of Learning Careers — https://www.legendsoflearning.com/interested-game-developer/ Legends of Learning API Docs — https://docs.legendsoflearning.com/ Lonestar Elixir — https://lonestarelixir.com/ Elixir Match —https://elixirmatch.com/ Elixir Match on GitHub — https://github.com/toranb/elixir-match Chris McCord — http://chrismccord.com/ Grox.io — https://grox.io/ Bruce Tate — https://www.linkedin.com/in/bruce-tate-a836b/ Postgraphile on GitHub — https://github.com/graphile/postgraphile Martin Fowler — https://martinfowler.com/ The Strangler Application — https://martinfowler.com/bliki/StranglerFigApplication.html Timescale — https://www.timescale.com/ ‘TimescaleDB 2.0 is now Generally Available’ — https://blog.timescale.com/blog/timescaledb-2-0-is-now-generally-available/ Sun, Moon & Stars: Patterns of Apparent Motion on Legends of Learning — https://www.legendsoflearning.com/learning-objectives/the-sun-moon-and-stars-patterns-of-apparent-motion/ Magic the Gathering — https://magic.wizards.com/en Legends of Learning Awakening — https://www.legendsoflearning.com/blog/homework-and-test-prep-math-and-science-game/ Hour of Code — https://hourofcode.com/ Owl Pro — https://owllabs.com/products/meeting-owl-pro Correction: In an earlier version of this episode, the host mis-spoke and mis-named the guests' company name in the outro; that error has been corrected as of 2021-02-25 3:52PM ET. Special Guests: Shaun Robinson and Toran Billups.
50 min 43 sec
ClusterTruck, a master of vertical integration, is rewriting the method of end-to-end food delivery and ghost kitchens. Today we speak with ClusterTruck Product VP Brian Howenstein to find out more about his journey in programming, ClusterTruck as an end-to-end food service, and how Elixir became mission-critical to the success of the business. We kick things off by hearing more on Brian’s childhood and how he became interested in programming. We then hear about his internship at Apple where he was part of the Core OS networking team. Brian touches on brushing shoulders with Steve Jobs, Jony Ivy, and Tim Cook, and shares how these personalities changed his view of the tech industry. Later in the show, we turn our attention to current times. Brian expands on his role at ClusterTruck and shares details on how Elixir has played a vital role in the company’s success. We hear his take on vertical integration, why they’d never consider third-party delivery companies, and much more. We then briefly digress to Brian’s hobby: the Scottish Games, before returning to ClusterTruck to find out what his favorite menu items are and what the future holds for food delivery and ghost kitchens. Be sure to stay tuned to enjoy our mini-feature where we speak with Michelle Morry, a software engineer at FuturePet. For all things Elixir, be sure to join us today! Bonus: If you’re in Indianapolis, IN, Columbus, OH, or Kansas City, MO, download the ClusterTruck app and use code “ELIXIRWIZARDS” at checkout for a one-time 25% discount on your ClusterTruck order. Good for a single use for both new and returning customers. Key Points From This Episode: A call to all talented engineering managers to join our team! Introducing today’s guest, Brian Howenstein. Brian tells us about his company, ClusterTruck. Hear about Brian’s background in technology and programming. What inspired Brian to do programming professionally. Brian tells us about his internship at Apple. Hear one of Brian’s fondest anecdotes about Jony Ive. Brian shares notes on his path to Elixir. Why Elixir has had such an impact on ClusterTruck’s success. ClusterTruck’s origin story. Brian talks about ClusterTruck’s vertical integration model. How Brian got the people around him to buy into Elixir and the hurdles that came with it. Brian talks about his journey to become a ClusterTruck VP. Brian tells us about his hobby and we digress to World’s Strongest Man controversy. How COVID has affected Brian’s business. Nerves projects at ClusterTruck and how it’s being used. What the future looks like for ClusterTruck. Brian’s advice for people who are trying to get their company to code in Elixir. How ClusterTruck is using LiveView. Brian’s favorite and least favorite menu items. Stay tuned for our quick mini-feature. Links Mentioned in Today’s Episode: ClusterTruck — https://www.clustertruck.com/ ClusterTruck Hiring — https://www.notion.so/clustertruck/Engineering-Openings-at-ClusterTruck-ef2372d2c2ab43b3b82f56a097c86eeb Cabermetrics — https://www.cabermetrics.com/ Brain Howenstein on LinkedIn — https://www.linkedin.com/in/brianhowenstein/ Brain Howenstein on Twitter — https://twitter.com/hwrd Indianapolis Scottish Games Festival — https://indyscotgamesandfest.com/ Purdue University — https://www.purdue.edu/ SimCity — https://www.ea.com/en-gb/games/simcity Apple — https://www.apple.com/ Jony Ive — https://www.britannica.com/biography/Jonathan-Ive Tim Cook — https://twitter.com/timcook Steve Jobs — https://www.biography.com/business-figure/steve-jobs Uber Eats — https://www.ubereats.com/za ExactTarget — https://www.linkedin.com/company/exacttarget/ Salesforce — https://www.salesforce.com/ DoorDash — https://www.doordash.com/en-US GrubHub — https://www.grubhub.com/ The World’s Strongest Man — http://theworldsstrongestman.com/ Raspberry Pi — https://www.raspberrypi.org/ Indy Elixir - Using Elixir at ClusterTruck: Milliseconds Matter When Your Users are Hangry — https://www.youtube.com/watch?v=9LMzYTK6dsE&abchannel=IndyElixir Indy Elixir - /hungry until food arrives: How ClusterTruck uses Elixir to make ordering for a Team Simple — https://www.youtube.com/watch?v=ZY2XeIENMRw&abchannel=IndyElixir ClusterTruck: Liberate Your Appetite — https://www.youtube.com/watch?v=xNC3vrrxNWM&abchannel=ClusterTruck Sean in the City: ClusterTruck Indy — https://www.youtube.com/watch?v=-nusA13LYJI&abchannel=B105.7Indy ClusterTruck + Slack — https://www.youtube.com/watch?v=C6t8aZQPB68&abchannel=ClusterTruck Special Guest: Brian Howenstein.
59 min 23 sec
Building a successful development company requires having a leader with technical know-how and excellent management skills. Today we speak with SmartLogic President and Founder Yair Flicker about his company’s origin story, evolution, and their Elixir adoption process. Early in the episode, we talk about Yair’s first jobs before diving into how he founded SmartLogic. An important transition point, we then chat about how he moved from writing code to running a business. Reflecting on his tech background, Yair opens up about how he learned to code before he shares insights into the languages that his company programs in, how they discovered Elixir, and how they integrated it into their practice. In a discussion that’s sure to resonate with startup managers, Yair unpacks what he does to grow as a manager, along with best practices for companies looking to adopt Elixir. We ask Yair about the benefits of coding in Elixir, how SmartLogic has retained its top employees, why he prioritizes employee happiness, and the role that company values play in strengthening SmartLogic. After hearing about Yair’s vision for the future, we jump into our mini-segment where we interview Jake Johnson, the Director of Software Engineering at TaxJar. For more on building strong companies and advice on adopting Elixir, be sure to tune in and benefit from our conversations with Yair and Jake. Key Points From This Episode: SmartLogic Founder Yair Flicker talks about his first job. Yair shares details about SmartLogic’s humble origins. Early challenges SmarLogic faced and Yair’s move from coding to running a business. We ask Yair about how he learned to code. SmartLogic’s coding evolution and how they discovered Elixir. The Maker vs. Manager distinction; what Yair did to grow as a manager. Exploring the benefits of adopting Elixir. Yair’s advice for companies wanting to adopt Elixir. Why Elixir allows for more scalability than many other languages. How SmartLogic has been able to retain some of its top employees. The link between having happy employees and happy clients. How Yair lives his company’s values. Yair shares his recipe for creating productive meetings. Hear about Yair’s vision for SmartLogic’s future. For our mini-feature segment, we chat with Jake Johnson from TaxJar. Why TaxJar adopted Elixir and details on Jake’s background. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Email — firstname.lastname@example.org Yair Flicker on LinkedIn — https://www.linkedin.com/in/yflicker/ Yair Flicker on Twitter — https://twitter.com/yflicker Jake Johnson on LinkedIn — https://www.linkedin.com/in/jakej/ TaxJar — https://www.taxjar.com/ Music and Arts — https://www.musicarts.com/ Johns Hopkins University — https://www.jhu.edu/ Hackers — https://www.imdb.com/title/tt0113243/ National Conference of Synagogue Youth — https://ncsy.org/ Stanley Black & Decker — https://www.stanleyblackanddecker.com/ Reddit — https://reddit.com/ Discord — https://discord.com/ Instagram — https://www.instagram.com Amazon Web Services — https://aws.amazon.com/ Sales Tax for Developers — https://salestax.dev Backstreet Boys — https://linktr.ee/backstreetboys Special Guest: Yair Flicker.
55 min 46 sec
Despite its welcoming character, the Elixir community struggles with diversity; as the 2020 ElixirConf community survey shows, only 2% of Elixirists are women. Today we speak with Blinker software engineer Alexandra Chakeres about her experience of the community, as well as what we can do to make it more inclusive. We open by exploring Alexandra’s background and coding career. After expressing her enthusiasm for the Turing School, we talk about Alexandra’s learn-by-doing approach to picking up Elixir. She shares how she landed her first Elixir job before we chat about her current role at Blinker. We discuss why the small size of the community means that Alexandra doesn’t recommend Elixir to coding beginners. We then dive into the topic of Elixir diversity, touching on factors that limit inclusivity, including how few Elixir positions are available for juniors. Alexandra unpacks solutions, like how organizations can shift their hiring pipeline and the need to approach diversity organizations with openings. Later, listeners will enjoy our mini-feature segment where we interview Instinct Science engineer Bill Peregoy about how their team uses Elixir. Tune in for more on what we can do to create a more diverse community. Key Points From This Episode: Hear how co-host Sundi Myint first met Alexandra. Alexandra shares details about her coding background. Why Alexandra feels so passionately about Turing Boot Camp. Details about Alexandra’s first Elixir job. What Alexandra’s current team builds in Elixir and her experience using umbrella apps. Comparing Ruby with Elixir and insights into what Elixir is missing. Why Alexandra doesn’t recommend that junior engineers first learn Elixir. How restricted Elixir hirings lead to a lack of diversity in the community. Exploring ways to make the Elixir community more diverse. What Alexandra most enjoys about coding in Elixir. Alexandra’s top advice for minorities in the Elixir community. Why it’s up to all of us to create a more inclusive community. We talk to Bill Peregoy about how the team at Instinct Science uses Elixir. Bill’s challenges and benefits to writing in Elixir. How Bill would help new hires learn Elixir. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Wizards Email — email@example.com Alexandra Chakeres on LinkedIn — https://www.linkedin.com/in/alexandrachakeres/ Alexandra Chakeres on GitHub — https://github.com/chakeresa Blinker — https://www.blinker.com/ ElixirConf — https://elixirconf.com Brian Cardarella — https://twitter.com/bcardarella Turing School — https://turing.io/ Angelfire — https://www.angelfire.lycos.com/ Melvin Cedeno — https://twitter.com/thecraftedgem Weedmaps — https://weedmaps.com/ Denver Erlang and Elixir Meetup — https://www.meetup.com/Denver-Erlang-Elixir/ DC |> Elixir Meetup — https://www.meetup.com/DC-Elixir/ DispatchHealth — https://www.dispatchhealth.com/ Autotrader — https://www.autotrader.com/ José Valim - https://github.com/josevalim Diversified Tech — https://www.diversifytech.co/ Women Who Code D.C — https://www.womenwhocode.com/dc Bruce Tate — https://twitter.com/redrapids Bill Peregoy on LinkedIn — https://www.linkedin.com/in/billperegoy/ Instinct Science — https://www.instinct.vet/ AppSense — https://www.ivanti.com/company/history/appsense Special Guest: Alexandra Chakeres.
48 min 25 sec
In this episode we continue our conversation about adopting Elixir, this time with Matt Nowack and Jake Heinz from Discord, hearing them get into the features of Elixir that make it a great fit for building a real-time chat infrastructure system! We also invite Arthi Radhakrishnan from community.com for our mini-interview in the last chunk of the episode. Our chat begins with Jake and Matt telling Elixir developers exactly why they should not use Mnesia. They subsequently dive into their journeys in programming and the process of learning Elixir after joining Discord. They share a few aha-moments as well as challenging projects that asked them to get their heads around some of the more powerful features of Elixir, highlighting a way they used immutability for a project that asked them to efficiently calculate deltas for large member list updates. From there we get into the culture around onboarding new devs at Discord, the company’s popular open-source Elixir contributions, and some brags about the high performance of features of Discord built in Elixir. Wrapping up with Jake and Matt, we hear their suggestions for teams and devs hoping to adopt Elixir, where they strongly advise on learning OTP as well as Elixir’s standard library. After that, it’s time for our chat with Arthi, where we hear about her programming journey, how Elixir is being put to use at Community.com, how the company supports new devs learning Elixir, and more! Key Points From This Episode: Our guests’ thoughts on why Elixir developers shouldn’t use the database driver Mnesia. How Jake and Matt got into programming and learned Elixir after joining Discord. The history of the use of Elixir at Discord and some of the projects Jake helped build since. The nuts and bolts of OTP; Jake’s experiences learning it along with Elixir at Discord. Different projects Matt worked on after joining Discord and how they helped him learn Elixir. Aha moments of learning Elixir; features of the language that acted as force multipliers in the development of different Discord projects. Processes at Discord for helping new developers learn Elixir. Open-source contributions from Discord to the Elixir community and the culture around this at Discord. Issues around logging and memory allocation in Elixir and what our guests think could change. The sheer power Elixir brought to the Discord project allowing rapid scale with a small team. Jake weighs in on the strengths of Python, Rust and Elixir, as well as BEAM processes versus Goroutines. Discord as a native Electron app and whether we will see it written in Rust. Advice regarding adopting Elixir about the power of OTP and the standard library. Introducing Arthi Radhakrishnan for our mini-interview at the end of the show. Previous languages Arthi worked in and how she learned Elixir after joining community.com. The fan chat service offered at community.com and some famous users. Features of the community.com architecture built in Elixir. The size of the team, the culture of hiring Elixir devs, and Arthi’s onboarding process at Community.com. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Matt Nowack on GitHub — https://github.com/ihumanable Mat Nowack on Twitter — https://twitter.com/ihumanable?lang=en Jake Heinz on GitHub — https://github.com/jhgg Apply for a Position at Discord — https://discord.com/jobs Stanislav Vishnevskiy on LinkedIn — https://www.linkedin.com/in/svishnevskiy/ ZenMonitor — https://github.com/discord/zenmonitor SortedSet Nif — https://github.com/discord/sortedsetnif The BEAM Book — https://github.com/happi/theBeamBook Semaphore — https://github.com/discord/semaphore ExHashRing — https://github.com/discord/exhashring ertsalloc Documentation — https://erlang.org/doc/man/erts_alloc.html Arthi Radhakrishnan on LinkedIn — https://www.linkedin.com/in/arthiradhakrishnan/ Community.com (https://www.community.com/) Andrea Leopardi on LinkedIn — https://www.linkedin.com/in/anleopardi/?originalSubdomain=it Special Guests: Jake Heinz and Matt Nowack.
53 min 20 sec
34 min 2 sec
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/Passengerservicesystem Global Distribution System — https://en.wikipedia.org/wiki/Globaldistributionsystem 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.
38 min 36 sec
To beat out their competitors, startups need to code quickly, simply, and in a language that attracts top engineers. Enter Elixir. Today we speak with Shawn Vo, Axle Payments Co-Founder and CTO, about his journey with Elixir and how it has given his company a competitive advantage. We open our conversation by exploring how Shawn got into coding while automating his work as an investment banker. After touching on why he sees programming as a superpower for adding value, he shares his growth hacks for learning a language — these range from reading old books to attending coding meetups. We then dive into Axle Payments’ business model, with Shawn highlighting the business opportunity of creating tech for industries that “people don’t think about.” A key theme in this episode, Shawn talks about how building in Elixir has helped Axle Payments hire the best engineers. We also discuss how Elixir allows them to quickly and efficiently write code that doesn’t break. Near the end of the episode, we explore Shawn’s browser extension projects and why he has a readme file to help guide people who want to work with him. Be sure to tune in to hear more insight from Shawn on the benefits of using Elixir in the startup space. Key Points From This Episode: Introducing Axle Payments CTO Shawn Vo. From investment banking to coding, hear how Shawn got into our industry. Why coding and creating content are top ways of creating value. Reading books and getting into the fundamentals; tips on how Shawn learns a language. Shawn shares details about his professional career. How Shawn grew his skills by attending coding meetups. Hear about Axle Payments’ model providing a factoring service. How Shawn discovered and fell in love with Elixir. Why Elixir has given Axle Payments their competitive advantage. Shawn reflects on his first Elixir project. The benefits of using event sourcing to build your app. Why Shawn created a readme to guide people who want to work with him. Shawn summarizes why Elixir is the perfect language for his company. Links Mentioned in Today’s Episode: Shawn Vo on LinkedIn — https://www.linkedin.com/in/shawnvo/ Shawn Vo on Twitter — https://twitter.com/shawnvo Shawn Vo on GitHub — https://github.com/voshawn Shawn Vo Email — firstname.lastname@example.org Axle Payments — https://www.axlepayments.com/ The Technical Cofounder Newsletter — https://technicalcofounder.substack.com/ Meryl Dakin — https://twitter.com/meryldakin WALL-E — https://www.imdb.com/title/tt0910970/ Barclays Investment Bank — https://www.investmentbank.barclays.com/ The Climate Corporation — https://www.climate.com/ The Monsanto Company — https://www.cropscience.bayer.com/ Federal Deposit Insurance Corporation — https://www.fdic.gov/ Deep Learning NYC — https://www.meetup.com/Deep-Learning-NYC/ Baltimore AI Meetup — https://www.meetup.com/Baltimore-AI/ Fast.ai — https://www.fast.ai/ Megabus — https://www.megabus.com/ Greyhound — https://www.greyhound.com/ Techstars — https://www.techstars.com/ Peter Thiel — https://www.forbes.com/profile/peter-thiel/ WeWork — https://www.wework.com/ Paul Graham — http://www.paulgraham.com/ Y Combinator — https://www.ycombinator.com/ ‘The Python Paradox’ — http://www.paulgraham.com/pypar.html Heroku — https://www.heroku.com/ Sessionizer — https://sessionize-me.herokuapp.com/ Hamilton — https://hamiltonmusical.com/new-york/home/ Slack — https://slack.com/ Phoenix — https://hexdocs.pm/phoenix/overview.html Commanded — https://hexdocs.pm/commanded/Commanded.html The Social Dilemma — https://www.imdb.com/title/tt11464826/ Special Guest: Shawn Vo.
38 min 57 sec
Today we sit down with Erlanger Viktória Fördős, who talks with us about Erlang and how it is used at Cisco. We open the show by finding out about Viki’s background in coding and her unorthodox entry into the field. After hearing about her experiences in her school choir and her transition into the informatics faculty, Viki talks to us about her first experiences in coding and the thrills she found in it. She then expands on the topic, revealing how she approached people to build their websites using her newfound skills in HTML and PHP. A flash-forward later, and Viki shares details about her role as an NSO Core Engineer for Cisco. After hearing how NSO serves as a network operating system, device automation platform, and orchestration engine, Viki explains why NSO is so special. She touches on fast map-based service and some of the ways she and her team implement network-wide transactions using — you guessed it — Erlang. Viki then explains Erlang, how you should approach it if you’re a newbie, and what to expect from its biggest challenges. She elaborates on tail-recursive functions and high-level vulnerabilities concerned with SSL crypto libraries, system integrity, and atom tables. Toward the end of the show, we ask Viki to tell us about her Code BEAM presentation and about her thoughts on why academia and industry should collaborate on a more regular basis. Join us today and be treated to an enriching conversation about Erlang, as well as our secret mini-feature segment! Key Points From This Episode: Introducing today’s guest, Viki Fördős from Cisco. A snapshot of Viki’s unorthodox background in coding. Viki shares details about early experiences learning Basic. Hear about Viki’s first programming job out of college. Viki’s position as a core engineer for the NSO team at Cisco. Find out what the NSO team at Cisco does. Insights into the patented algorithm, “fast map.” How Viki started to use Erlang on a day-to-day basis. Ways you can start thinking in Erlang from an Elixir background. The kinds of issues Viki runs into when spawning too many processes. What Erlang has to offer that other languages cannot. Viki’s biggest challenges when she first started learning Erlang. The elevator pitch Viki uses when she encourages friends and colleagues to use Erlang. Distribution protocols and what they mean to Erlang newbies. Hear about the high-level vulnerabilities you ought to pay attention to when coding in Erlang. Introducing Christian Koch, today’s mini-feature segment guest. How Chris first got into Elixir. How Elixir is being used by platform engineers at Cars.com. Why Elixir was chosen as the end-game language to be used at Cars.com The process behind onboarding coders onto Chris’s Elixir team. Viki’s best advice to those wanting to give a Code BEAM talk. Hear about refactoring and how it works. What Viki means by, “research being consumed by industry.” Links Mentioned in Today’s Episode: Viktória Fördős - https://github.com/viktoriafordos Cisco — https://www.cisco.com/ EW20 — https://github.com/viktoriafordos/ew20 Prototype implementation of the security analysis introduced in V. Fördős: Secure Design and Verification of Erlang Systems paper Christian Koch — https://www.linkedin.com/in/ckochx/ Cars.com — https://www.cars.com/ BASIC — https://en.wikipedia.org/wiki/BASIC Cisco NSO — https://www.cisco.com/c/en/us/products/cloud-systems-management/network-services-orchestrator/index.html Think in Erlang! - Viktória Fördős — https://www.youtube.com/watch?v=bYkOsQU2ywM Erlang general server — https://erlang.org/doc/man/genserver.html Erland Reference Manual — https://erlang.org/doc/referencemanual/distributed.html 4 Using TLS — https://erlang.org/doc/apps/ssl/ssldistribution.html Erland System Limits — http://erlang.org/doc/efficiencyguide/advanced.html#system-limits Hexdocs — https://hexdocs.pm/elixir/String.html#toexistingatom/1 RefactorErl — https://plc.inf.elte.hu/erlang/ Pipedream on GitHub — https://github.com/PipedreamHQ/pipedream/blob/master/components/github/readme.md Special Guest: Viktória Fördős.
47 min 20 sec
37 min 31 sec
53 min 13 sec
56 min 39 sec
To close off this season and conclude our deep dive into system and application architecture, today’s episode is a special panel discussion on a topic that has provoked a mix of answers that range from the controversial to the philosophical — “What does domain-driven design mean to you?” For the final word on this subject, we welcome back software developers Chris Keathley, Japa Swadia, Mark Windholtz, and Miki Rezentes. Our first hot take comes from Miki, who shares her thoughts about how domain-driven design developed because the tech industry undervalues communication. Following this, Mark and Japa discuss how domain-driven design gives developers a context for what they create while informing how you code using Elixir. We then touch on whether domain-driven design makes it easier or more difficult to change your code and how communication is valued within a business context. We explore key domain-driven design concepts, including the role of bounded contexts, and how this design ethos can help you appeal to stakeholders such as product managers. After Miki highlights the reasons why communication should be seen as a vital tech skill, each guest provides their final thoughts on domain-driven design. Tune in for this season’s insightful finale and find out which of today’s guests is the winner of “Whose Design Is It Anyway?” Key Points From This Episode: Introducing guests Chris Keathley, Japa Swadia, Mark Windholtz, and Miki Rezentes. Hear what domain-driven design means for each guest. Miki shares her hot take that domain-driven design is “nothing new under the sun.” Why the essence of domain-driven design is about listening. How domain-driven design can inform your Elixir architecture. Mapping your system and developing names for your bounded contexts. Domain-driven design trade-offs and how it can lead to a loss of productivity. The idea that domain-driven design has developed because the tech industry undervalues communication. Why communication should be valued — bad communication costs money. How tech companies are generally aligned with the goals of domain-driven design. Why Mark is so delighted to be working with Elixir and domain-driven design. The link between domain-driven design and developing better products. Exploring how bounded contexts allow teams to create solutions to unique problems. Seeing communication as a tech skill that should be learned early in your career. Our guests share their final thoughts on domain-driven design. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Chris Keathley on Twitter — @ChrisKeathley/ Chris Keathley — https://keathley.io/ Japa Swadia on Twitter — https://twitter.com/japa2292 Japa Swadia on LinkedIn — https://www.linkedin.com/in/japaswadia/ Mark Windholtz on Twitter — https://twitter.com/windholtz Mark Windholtz on LinkedIn — https://www.linkedin.com/in/mwindholtz/ Miki Rezentes on Twitter — https://twitter.com/mikirez Miki Rezentes on LinkedIn — https://www.linkedin.com/in/miki-rezentes-823ba02a/ Podium — https://www.podium.com/ Elixir Outlaws — https://elixiroutlaws.com/ Agile DNA — http://www.agiledna.com Frame.io — https://frame.io/ Bleacher Report — https://bleacherreport.com/ Domain-Driven Design: Tackling Complexity in the Heart of Software on Amazon— https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215 Domain Language — https://www.domainlanguage.com/ The Seven Laws of Learning: Why Great Leaders Are Also Great Teachers on Amazon — https://www.amazon.com/Seven-Laws-Learning-Leaders-Teachers/dp/1599559277 Patterns, Principles, and Practices of Domain-Driven Design on Amazon — https://www.amazon.com/Patterns-Principles-Practices-Domain-Driven-Design/dp/1118714709 ‘Ubiquitous Language’ — https://martinfowler.com/bliki/UbiquitousLanguage.html ‘Value Object’ — https://martinfowler.com/bliki/ValueObject.html Domain-Driven Design Europe — https://dddeurope.com/2021/ Domain-Driven Design Europe on YouTube — https://www.youtube.com/channel/UC3PGn-hQdbtRiqxZK9XBGqQ A Philosophy of Software Design on Amazon — https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201 Eric Evans Training Videos — https://elearn.domainlanguage.com/ Designing Elixir Systems with OTP — https://www.amazon.com/Designing-Elixir-Systems-OTP-Self-healing/dp/1680506617/ Whose Line Is It Anyway? — https://www.imdb.com/title/tt0163507/ Drew Carey — https://www.imdb.com/name/nm0004804/ Special Guests: Chris Keathley, Japa Swadia, and Miki Rezentes.
59 min 18 sec
Even with the most programming experience in the world, coding still involves a lot of trial and error. People getting started in the industry should not become bogged down by failure. Because in the end, it’s a feature and not a bug. That’s one of Zillion developer Anna Sherman’s key messages this episode. We open our discussion with Anna by talking about living in Chattanooga, AKA, Gig City. She talks about why the tech scene there is exploding before diving into her journey into programming. Having created her own personal coding boot camp, she opens up about what she did to land her first software job within only two months of looking. After discussing her early working experiences, we explore her work at Zillion, along with her side projects. We then touch on what Anna does to expand her skillset and develop herself as a professional, using a style guide and ‘lunch and learns’ to update her team, and we hear the elevator pitch for Anna’s Code BEAM San Francisco talk. Anna shares her take on architecture and design, as well as the importance of domain-driven design in keeping your team aligned with what they’re building. Near the end of the episode, we talk about Anna’s pre-coding process, the virtues of being a ‘physlistcler,’ and why failure is an important part of coding. Tune in to hear more of Anna’s insights on change, failure, and living in Gig City. Key Points From This Episode: Fast internet and the great outdoors; hear why Chattanooga has become a tech hub. Anna shares her love of math and how she got into programming. Creating your own boot camp and becoming a self-taught coder. How Anna landed her first gig, just two months after learning code. Exploring Anna’s first job at Sovee, a machine translation company. What side projects Anna is working on and how they help her Magic: The Gathering games. How Anna expands her skill set and develops herself as a professional. Hear Anna’s elevator pitch for the talk she gave at Code BEAM San Francisco. What architecture, design, and domain-driven design mean to Anna. Using a style guide and ‘lunch and learns’ to help your team understand patterns. Details on how Anna’s style guide keeps her team informed. The virtues of being a ‘physlistcler;’ anchoring your workflow to a physical list. Why failure is a key part of coding and the idea that anyone can learn to code. We close the episode by chatting about Anna’s favorite board games. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Anna Sherman on LinkedIn — https://www.linkedin.com/in/anna-sherman-54289372/ Anna Sherman on Twitter — https://twitter.com/cavewoman90 Anna Sherman on Instagram — https://www.instagram.com/annasherman100816/ Anna Sherman Email — email@example.com Craig Lyons Email — firstname.lastname@example.org Zillion — https://www.myzillion.com/ Bruce Tate — https://twitter.com/redrapids Brett Wise — https://twitter.com/brettwise Gig City Elixir — https://www.gigcityelixir.com/ NervesConf — https://www.nervesconf.com/ Chili’s — https://www.chilis.com/ GodTube — https://www.godtube.com/ Magic: The Gathering — https://magic.wizards.com/en Scryfall — https://scryfall.com/ Code BEAM SF Talk — https://www.youtube.com/watch?v=XgOJQAK6iHI Evernote — https://evernote.com/ Nerves — https://www.nerves-project.org/ ‘Repository and Services Pattern in a Multilayered architecture’ — https://www.vodovnik.com/2015/08/26/repository-and-services-pattern-in-a-multilayered-architecture/ A Handful of Stars — https://boardgamegeek.com/boardgame/197320/handful-stars A Few Acres Of Snow — https://boardgamegeek.com/boardgame/79828/few-acres-snow Special Guest: Anna Sherman.
35 min 19 sec
There is no difference between architecture and design. It's all engineering and creating a distinction between the two is a way for someone to get paid more and have a different title. That hot take comes from Devon Estes, today’s guest, who provides a novel way of seeing design and architecture. We open the episode by diving straight into the topic of design, with Devon exploring how good design might be less important than developing the right toolset. We then talk about how language servers can help you effortlessly define functions, meaning that in some cases, it doesn’t matter where you put your code — even if it’s all in one file. After touching on game-changing innovations in the world of design, such as GTP-3, Devon shares how our design options are limited by our editors. Considering the impact of human error on software, we discuss the value of convention and rulesets. As Elixir apps or apps that use Phoenix are open-ended, Devon talks about his middle-ground solution to help teams overcome this challenge. Near the end of the episode, Devon chats about why design and architecture, as elements of engineering, are different levels of abstraction and not separate entities. Following this, he highlights how domain-driven design can be used to avoid confusion and bugs by ensuring that people across departments all use the same language. Tune in to hear more of Devon’s unique and well-pondered insights. Key Points From This Episode: Devon’s take on design; “Where things go doesn’t matter if you have a language server.” Defining what a language server is and its incredible usefulness. How ‘go to definition’ functions could render much of design as unnecessary. Game-changing innovations that will change the world of design. Functional versus object-orientated languages and the challenge of finding files. Why Devon uses Vim and what makes it attractive to other programmers. How Elixir apps can be a challenge due to their open-ended nature. Creating primary and secondary contexts to give Phoenix more structure. The human factor; why people are often the cause of many coding issues. Hear how Devon has been structuring his Absinthe projects. Devon shares details about his Absinthe testing library, Assertions. Devon’s hot take that there is no difference between architecture and design. The importance of domain-driven design in avoiding confusion and bugs. Why engineers need to push to ensure the same language is used across departments. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Devon Estes — http://www.devonestes.com/ Devon Estes on GitHub — https://github.com/devonestes Devon Estes on Twitter — https://twitter.com/devoncestes Jake Becker on GitHub — https://github.com/JakeBecker GPT-3 — https://www.independent.co.uk/life-style/gadgets-and-tech/news/gpt3-ai-tool-designs-websites-medicine-a9627966 Elixir Is — https://github.com/elixir-lsp/elixir-ls Ale — https://github.com/dense-analysis/ale MOO — https://lisdude.com/moo/ Erlang code — https://erlang.org/doc/man/code.html ‘A Proposal for Some New Rules for Phoenix Contexts’ — http://www.devonestes.com/a-proposal-for-context-rules ‘A proposal for an Absinthe application structure’ — http://www.devonestes.com/a-proposal-for-absinthe-project-structure Elixir Radar — https://elixir-radar.com/ Assertions.Absinthe — https://hexdocs.pm/assertions/Assertions.Absinthe.html#document_for/4 ElixirConf EU — https://www.elixirconf.eu/ ‘Elixir testing from beginner to expert’ — https://www.elixirconf.eu/trainings/elixir-testing-from-beginner-to-expert/ Special Guest: Devon Estes.
48 min 40 sec
Imagine being hired into a rocketship startup using Elixir as its primary language. And all this, straight out of college. Today, we speak with systems software engineer, Lizzie Paquette who works at Brex, the aforementioned rocketship. We start our conversation by talking about how Lizzie got into coding relatively late in her life, partly due to an ill-fated run-in with Java. She shares details about her role at Brex and how the company has evolved. With a love of compilers, Lizzie dives into what beginners can do to get into compiling before chatting about her top underrated Elixir resources. Following this topic, Lizzie discusses her experience liberally implementing macros at Brex — something that ended up being detrimental when onboarding new hires. After sharing how she develops herself as a professional and coder, Lizzie talks about her involvement in Code 2040, a career accelerator and mentorship program. Reflecting this season’s theme, we ask for Lizzie’s take on what architecture, design, and domain-driven design means to her. She then reveals her coding process and emphasizes the value of creating thorough design docs to avoid bugs. We explore Brex’s architecture, how it makes use of microliths, and applying ‘chaos engineering’ — a monkey-wrench approach to testing your system. We touch on umbrella apps and lessons that Lizzie’s learned from working with Brex’s architecture. After closing our discussion with Lizzie, we open with another edition Pattern Matching with Todd Resudek and special guest Sophie DeBenedetto from GitHub. Todd asks Sophie about her favorite movies, music, and what Elixir projects excite her. Tune in to hear Sophie’s insights, along with more on microliths and macros from Lizzie Paquette. Key Points From This Episode: Lizzie shares how she got into coding and her start in the industry. Hear about Lizzie’s role at Brex, a rocketship startup and key member of the Elixir community. How novices should approach learning how to code compilers. Underrated Elixir resources that Lizzie makes the most out of. The double-edged sword; why macros are an incredible yet dangerous tool. How Lizzie develops herself as a professional and a coder. Boosting inclusivity in the software industry through programs like Code 2040. Lizzie’s take on what architecture, design, and domain-driven design mean. The value of design docs in catching bugs and laying out a clear process. Microliths, microservices, and the nitty-gritty of Brex’s architecture. Exploring ‘chaos engineering’; testing your system by purposefully creating problems. Lizzie’s pain points when either using or not using umbrella apps. What Lizzie would do if she could rewrite Brex’s architecture from scratch. Using Brex.result to streamline code and handle common return values. For this edition of Pattern Matching, Todd Resudek interviews Sophie DeBenedetto. Sophie’s journey from liberal arts to learning software at a code boot camp. Todd asks Sophie about her favorite movies, music, and what Elixir projects excite her. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Lizzie Paquette on LinkedIn — https://www.linkedin.com/in/lizzie-paquette/ Lizzie Paquette on GitHub — https://github.com/lizziepaquette Brex — https://www.brex.com/ Eric Meadows Jonssön — https://twitter.com/emjii Haskell — https://www.haskell.org/ Columbia University — https://www.columbia.edu/ Clash — https://clash-lang.org/ Framer — https://www.framer.com/ Elixir Protobuf on GitHub — https://github.com/brexhq/protobuf-elixir Tony612 on GitHub — https://github.com/tony612 Elixir Syntax Reference — https://hexdocs.pm/elixir/syntax-reference.html Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!) — https://www.amazon.com/Metaprogramming-Elixir-Write-Less-Code/dp/1680500414 Macros in Elixir: Responsible Code Generation — https://www.youtube.com/watch?v=55-X7rSw8M0 Code 2040 — http://www.code2040.org/ Erlpack — https://github.com/discord/erlpack Principles of Chaos Engineering — https://principlesofchaos.org/?lang=ENcontent REST Fest 2019 | Lorinda Brandon — https://vimeo.com/364373007 ‘Building a rewards platform from scratch’ — https://medium.com/brexeng/building-a-rewards-platform-from-scratch-ff4e22124658 Brex.result on GitHub— https://github.com/brexhq/result RabbitMQ — https://www.rabbitmq.com/ Netflix Chaos Monkey on GitHub — https://github.com/Netflix/chaosmonkey Mark Erickson — https://brainlid.org/ Johanna Larsson — https://blog.jola.dev/ Todd Resudek — https://twitter.com/sprsmpl Sophie DeBenedetto — http://sophiedebenedetto.nyc/ Elixir School — https://elixirschool.com/en/ GitHub — https://github.com/ Flatiron School — https://flatironschool.com/ Barnard College — https://barnard.edu/ Law and Order — https://www.imdb.com/title/tt0098844/ Spotify — https://www.spotify.com/ Celine Dion — https://www.celinedion.com/ Hill Street Blues — https://www.imdb.com/title/tt0081873/ Perry Mason — https://en.wikipedia.org/wiki/PerryMason Matlock — https://www.imdb.com/title/tt0090481/ Telemetry on GitHub — https://github.com/beam-telemetry/telemetry Phoenix LiveView on GitHub — https://github.com/phoenixframework/phoenixlive_view Special Guest: Lizzie Paquette.
48 min 28 sec
Building a sophisticated AI that can evolve to fit our vast and diverse needs is a Herculean challenge. Today we speak with senior engineer Eric Steen about Automata, his experimental Elixir project that uses neuroevolution and cutting edge theory to create a multi-agent behavior tree — or really good AI in the common tongue. But before we tap into that rich topic, we talk with Eric about tech burnout, his background, and why Elixir is an excellent language for writing modern software. He then unpacks AI concepts like the need to develop backpropagation in your system, and the value of “neural diversity,” and Markov decision processes. After Eric gives his take on architecture versus design and the place of domain-driven design, we discuss Automata. A key breakthrough, Eric shares his enthusiasm for ‘novelty search,’ where machines learn from a variety of new behaviors and searches, as opposed to completing one task at a time. We touch on Automata’s progress, Eric’s long-term approach, and what his project might be used for. Near the end of our interview, we chat about CryptoWise, a collaborative analysis platform for cryptocurrency. Todd Resudek then opens with another edition of Pattern Matching, where he interviews Whatsapp engineer Michał Muskała. They talk about Michał’s career, the movies and music that he enjoys, and the projects that excite him. Tune in to hear more about both Michał and neuroevolution in AI. Key Points From This Episode: Experiencing tech burnout and challenges around algorithms rendering you redundant. Hear about Eric’s programming background and shifts in the industry. Backpropagation and using Elixir to build a neural evolutionary system. How Markov decision processes help systems choose between possible actions. Eric’s take on architecture versus design and the place of domain-driven design. Exploring Automata — Eric’s ambitious multi-agent behavior tree. The importance of neurodiversity when building AIs; they need to adapt to many needs. Novelty search; why learn through one task when you can learn through a variety of tasks at the same time? Automata’s practical applications and why Eric sees it as a long-term project. Eric shares a progress report on his work and using design processes like Sprint. What Eric would like people to use Automata for. A sense that Elixir is gaining in popularity within Silicon Valley. Eric gives an elevator-pitch for CryptoWise, a collaborative analysis platform for cryptocurrency. Todd Resudek interviews Michał Muskała on another edition of Pattern Matching. Michał shares his background and his move from Poland to London. Movies and music that Michał enjoys, and details on projects that excite him. Differences between Erlang and Elixir and why both communities would benefit from working together. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Eric Steen on LinkedIn — https://www.linkedin.com/in/ericsteen1/ Eric Steen — https://twitter.com/thesteener Webflow — https://webflow.com/ Automata GitHub — https://github.com/upstarter/automata Automata on Slack — https://join.slack.com/t/automata-project/sharedinvite/zt-e4fqrmo4-7ujuZwzXHNCGVrZb1aVmA CryptoWise — https://www.cryptowise.ai/ Hippo Insurance — https://www.hippo.com/ Carl Hewitt — https://en.wikipedia.org/wiki/CarlHewitt Stanford University — https://www.stanford.edu/ MIT — https://web.mit.edu/ Actor Model — https://en.wikipedia.org/wiki/Actormodel Marvin Minsky — http://web.media.mit.edu/~minsky/ Tensorflex on GitHub— https://github.com/anshuman23/tensorflex Matrex on GitHub — https://github.com/versilov/matrex Handbook of Neuroevolution Through Erlang — https://www.springer.com/gp/book/9781461444626 Markov Decision Process — https://en.wikipedia.org/wiki/Markovdecisionprocess Amazon Web Services — https://aws.amazon.com/ The Little Elixir & OTP Guidebook — https://www.amazon.com/Little-Elixir-OTP-Guidebook/dp/1633430111 Elon Musk — https://www.forbes.com/profile/elon-musk/ Welcome to the Era of Deep Neuroevolution — https://eng.uber.com/deep-neuroevolution/ Kenneth O. Stanley — https://www.cs.ucf.edu/~kstanley/ Why Greatness Cannot Be Planned: The Myth of the Objective — https://www.amazon.com/Why-Greatness-Cannot-Planned-Objective/dp/3319155237/ University of Florida — https://www.ufl.edu/ Uber Air — https://www.uber.com/us/es/elevate/ Jeff Bezos — https://www.forbes.com/profile/jeff-bezos/ Sprint — https://www.thesprintbook.com/ Adobe — https://www.adobe.com/ Horde — https://www.horde.org/development/ Libcluster on GitHub — https://github.com/dsteinberg/libcluster Swift for Tensorflow — https://www.tensorflow.org/swift Triplebyte Blog — https://triplebyte.com/blog EquiTrader — https://coinmarketcap.com/currencies/equitrader/ BloXroute Labs — https://bloxroute.com/ Holochain — https://holochain.org/ Michał Muskała on GitHub — https://github.com/michalmuskala Jason on GitHub — https://github.com/michalmuskala/jason Todd Resudek on LinkedIn — https://www.linkedin.com/in/toddresudek/ Whatsapp — https://www.whatsapp.com/ CERN — https://home.cern/ Ralph Kaminski — https://ralphkaminski.com/ Jayme Edwards — https://jaymeedwards.com/ Special Guest: Eric Steen.
49 min 13 sec
According to an ancient myth, the world rests on the back of a turtle. And what does that turtle stand on? Another turtle. It turns out that it’s turtles all the way down. Miki Rezentes, today’s guest, believes that all software rests on the back of APIs. Similar to the myth, it’s APIs all the way down. We open our conversation by discussing how homeschooling her children did more to prepare Miki for a software career than anything else she’s encountered. Miki shares highlights from her talk, ‘APIs All the Way Down’. This set up this episode’s key theme, that the tech industry is too concerned with how its software interacts to focus on how the people in its organizations communicate — their ‘human APIs.’ Following this, we ask Miki how she learns people’s APIs and we talk about the benefits of observation and mirroring. Tracking her career, we touch on how Miki transitioned from a homemaker to a developer before diving into her recent work at the data science platform Mode. She provides unique insights into how she views architecture and design and why the concept of domain-driven design doesn’t go far enough. We chat about how you can see your team as customers to promote domain-driven design and then drill into what she does to create a ‘shared pool of knowledge’ with her team. As Miki explains, ‘people problems’ are more difficult than technical ones and developers often make mistakes by not first developing common understanding. Especially when this relates to expectations within a company. Near the end of the episode, we explore what leaders can do to maintain productivity when growing their teams. Tune in to hear what you can do to deepen your team’s pool of understanding and improve the quality of your communication. Note: this episode was recorded in late July when Miki was working at Mode; she is now a Senior Software Engineer at Frame.io (https://frame.io). Key Points From This Episode: Why homeschooling her kids better prepared Miki for software development than anything else. How people within an organization express themselves through individual APIs. Understanding that people come from different backgrounds which influence their API. The ‘shared pool of knowledge’ and figuring out how to communicate with people. Miki’s journey from homemaker to becoming a software engineer. How nobody really knows what they’re doing. Security as a trade-off, privacy, and the power of two-factor authentication. Hear about Miki’s work at the data science platform Mode. What Miki enjoys most about working in Elixir and what she uses it for. How Miki sees architecture and the differences between architecture and design. Domain-driven design and the differences between data models and software. Treating your team ‘Agilely’ and seeing them as your customers. Miki’s process of developing a shared pool of understanding before hammering out the end-to-end components. Why ‘people problems’ are much more difficult than development problems. How tech companies misdiagnose ‘people problems’ as bad design. Conway’s Law and how code production reflects an organization’s structure. The importance of setting expectations to maintain productivity as a team grows in size. The danger of the Peter principle; when people are promoted to their level of incompetency. Links Mentioned in Today’s Episode: Miki Rezentes LinkedIn —https://www.linkedin.com/in/miki-rezentes-823ba02a/ Miki Rezentes GitHub — https://github.com/mrezentes Miki Rezentes Twitter — https://twitter.com/mikirez Mode — https://mode.com/ SmartLogic — https://smartlogic.io/ Elixir Wizards Survey — smr.tl/podcastsurvey Manning Publications — https://www.manning.com/ ‘APIs All the Way Down’ — https://www.youtube.com/watch?v=hBpbEsAG4es Turtles all the way down — https://en.wikipedia.org/wiki/Turtlesallthewaydown Crucial Conversations — https://www.amazon.com/Crucial-Conversations-Talking-Stakes-Second/dp/1469266822 Thomas Edison State University — https://www.tesu.edu/academics/online-degrees Xkcd — https://xkcd.com/ Toshiba Global Commerce Systems — https://commerce.toshiba.com/ Kroger — https://www.kroger.com/ CA Technologies — https://www.ca.com/ Jira — https://www.atlassian.com/software/jira ICFP 2020 — https://icfp20.sigplan.org/ James Edward Gray II — https://github.com/JEG2 Helix Data Engine - Mode — https://mode.com/helix/ Practical Object-Oriented Design in Ruby — https://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330 Tanium — https://www.tanium.com/ Poodr — https://www.poodr.com/ Gödel, Escher, Bach — https://en.wikipedia.org/wiki/G%C3%B6del,Escher,Bach D'Aulaires' Book of Greek Myths — https://www.amazon.com/DAulaires-Greek-Myths-Ingri-dAulaire/dp/0440406943 The Mythical Man-Month — https://en.wikipedia.org/wiki/TheMythicalMan-Month Applying Conway's Law to improve your software development — https://www.thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development Peter Principle — https://en.wikipedia.org/wiki/Peter_principle Special Guest: Miki Rezentes.
42 min 33 sec
With ElixirConf 2020 just around the corner, today’s episode is a sneak peek where we talk with six of this year’s speakers. Each speaker gives listeners an elevator pitch of their talk while throwing in extra details about who their talk is aimed at, what they learned through the process, and which talks they’re excited about attending. Our first guest is Quinn Wilton, a developer at Tinfoil Security, whose talk is titled ‘Type-Safe LiveView with Gleam’. Quinn explains how she’s created a symbiosis between Elixir and Gleam that helps her create more consistent code while offsetting the disadvantages of dynamic typing. We then chat with Dan Lindeman whose talk, ‘Short Circuit IoT Development Time with Nerves,’ is an overview of building custom hardware using Nerves and Elixir. After Dan’s plug on how you can start programming Nerves on your laptop, we welcome Jeffrey Utter to the show. His talk is a deep dive into ‘Debugging Live Systems on the Beam.’ Teasing out the topic, we discuss inefficiencies in the debugging process and how many developers adopt a ‘whack-a-mole’ approach to dealing with bugs. From debugging to UintSet, Luciano Ramalho, our next speaker, gives us a taste of his presentation, ‘UIntSet: enumerable, streamable, understandable.’ Luciano shares how the Go language inspired him to experiment with leveraging protocols and streams to build new idiomatic Elixir data structures from scratch. He also touches on the importance of being humble when learning new languages and gearing Elixir to a non-engineer user base. After Luciano, we’re joined by Melvin Cedeno, a fellow Elixir Wizard from the SmartLogic family. Melvin brings his teaching experience to bear on the topic of ‘Teaching Functional Programming with Elixir.’ This is a key talk in growing our community, especially when considering the point that being an Elixir genius doesn’t necessarily mean that you’re well-suited to teach it. Last but certainly not least, we speak with Japa Swadia from Podium about her talk, ‘Domain-Driven Design with Elixir’ — a subject that’s been a huge focus on the podcast. We chat about what domain-driven design means and why it’s an important foundational concept for beginners to learn. Tune in for this tip-of-the-iceberg preview. It’s just a glimpse into the varied and wonderfully informative talks you can expect at ElixirConf 2020. Key Points From This Episode: Introducing Quinn Wilton who is using Gleam to interact with Elixir. How being acquired by Synopsys has given Tinfoil Security access to greater resources. Balancing the advantages of Elixir with its drawbacks when it comes to dynamic analysis. What Gleam is and how it makes static typing more approachable. Teasing Quinn’s ElixirConf talk — ‘Talk Type-Safe LiveView with Gleam’ What Quinn has learned from the process of creating his presentation. Building a dissembler and the talk that Quinn is most looking forward to attending. Dan Lindeman’s work at Very making solar micro-grids. The benefits of Elixir and Nerves when building custom hardware. Who Dan’s talk is aimed at and why it’s appropriate for any experience level. Working with smart minds and laboring through hardware docs that often lie. How scary it can be to work with hardware and the value of having your talk appeal to entry-level Elixir users. Jeffrey Utter unpacks his talk — ‘Debugging Live Systems on the Beam.’ How most people play ‘whack-a-mole’ when dealing with live system bugs. Using match specs to hone in on your debugging process. Why most Elixir coders should learn about Jeffrey’s debugging system. Why is Recon Library is such an excellent tool and its potential uses in distributed systems. Hear which talks Jeffrey is looking forward to attending. How Go inspired Luciano Ramalho to explore applying different data structures to Elixir. What skill-level Luciano’s talk is aimed at and why. Developing a sense of how Elixir is idiomatic, despite being such a new language. Being humble when learning new languages and the importance of protocols in understanding idiomatic data structures. How Elixir is geared towards engineers which can create barriers of entry. Mark Cedeno gives an elevator pitch for his talk — ‘Teaching Functional Programming with Elixir.’ Why knowing Elixir very well doesn’t mean that you can teach it. The benefits of remote learning; it can make your teaching more organized and to-the-point. Hear about the talks that Mark is excited about attending. Japa gives us a crash-course on domain-driven design. Creating a solid foundation for your app by considering the contexts in which it’s used. Why beginners or those wanting to switch to domain-orientated coding should attend Japa’s talk. Using schema to point to the same table in different contexts. Which talks Japa is attending and how she got selected for ElixirConf 2020. Links Mentioned in Today’s Episode: Elixir Wizards Listener Survey — https://smr.tl/podcastsurvey SmartLogic — https://smartlogic.io/ ElixirConf 2020 — https://2020.elixirconf.com/ Quinn Wilton — https://github.com/QuinnWilton/gleam-chip8 Quinn Wilton Twitter — https://twitter.com/wiltonquinn ‘Type-Safe LiveView with Gleam’ — https://2020.elixirconf.com/speakers/128/talk Tinfoil Security — https://www.tinfoilsecurity.com/ Synopsys — https://www.synopsys.com/ Gleam — https://gleam.run/ Louis Pilfold GitHub — https://github.com/lpil Phoenix LiveView — https://github.com/phoenixframework/phoenixliveview CHIP-8 — https://en.wikipedia.org/wiki/CHIP-8 Stephen Bussey — https://github.com/sb8244 ‘The Joy of an Elixir Monolith’ — https://2020.elixirconf.com/speakers/121/talk Code BEAM / Code Sync — https://codesync.global/ Dan Lindeman — https://github.com/DanLindeman Dan Lindeman Twitter — https://twitter.com/lindemda ‘Short Circuit IoT Development Time with Nerves’ — https://2020.elixirconf.com/speakers/117/talk Nerves Platform — https://www.nerves-project.org/ Very — https://www.verypossible.com/ Justin Schneck — https://www.linkedin.com/in/justinschneck/ Daniel Stoppard — https://www.linkedin.com/in/daniel-spofford-2307a655/ Jenn Gamble — https://2020.elixirconf.com/speakers/115/bio Juliana Helena — https://2020.elixirconf.com/speakers/129/bio ‘How Elixir made me a better Java programmer’ — https://2020.elixirconf.com/speakers/129/talk Nerves Hub — https://www.nerves-hub.org/ Jeffrey Utter — https://github.com/jeffutter Bleacher Report — https://bleacherreport.com/ ‘Debugging Live Systems on the Beam’ — https://2020.elixirconf.com/speakers/114/talk Datadog — https://www.datadoghq.com/ Erlang Sys Trace 2 — https://erlang.org/doc/man/sys.html#trace-2 Recon Library — https://ferd.github.io/recon/ Erlang Debugger — http://erlang.org/doc/apps/debugger/debuggerchapter.html Catalina Astengo — https://github.com/castengo gRPC + Elixir Microservices = A Love Story? — https://2020.elixirconf.com/speakers/116/talk KC Elixir — https://www.kcelixir.com/ Luciano Ramalho — https://github.com/ramalho/ Luciano Ramalho Twitter — https://twitter.com/ramalhoorg ‘UintSet: enumerable, streamable, understandable’ — https://2020.elixirconf.com/speakers/125/talk ThoughtWorks — https://www.thoughtworks.com/ Go — https://golang.org/ The Go Programming Language — https://www.gopl.io/ Brian W. Kernighan — https://www.cs.princeton.edu/people/profile/bwk Fluent Python — https://www.oreilly.com/library/view/fluent-python/9781491946237/ Simon de Haan — https://github.com/smn ‘Using Elixir and WhatsApp to launch WHO’s global COVID-19 response’ — https://2020.elixirconf.com/speakers/124/talk Yutaka Kikuchi — https://github.com/kikuyuta ‘Applying Elixir for driving small hydropower plants with Nerves’ — https://2020.elixirconf.com/speakers/123/talk Processing — https://processing.org/ Melvin Cedeno — https://github.com/thecraftedgem ‘Teaching Functional Programming With Elixir’ — https://2020.elixirconf.com/speakers/99/talk Turing — https://turing.io/ Nicholas Henry — https://github.com/nicholasjhenry ‘The Upside Dimension of Elixir - An Introduction to Metaprogramming’ — https://2020.elixirconf.com/speakers/120/talk Brian Marick — https://github.com/marick/ ‘Tricks and tools for writing Elixir tests’ — https://2020.elixirconf.com/speakers/109/talk German Velasco — http://www.germanvelasco.com/ ‘Testing LiveView’ — https://2020.elixirconf.com/speakers/119/talk Lonestar Elixir — https://lonestarelixir.com/ Japa Swadia — https://github.com/japa-swadia Podium — https://www.podium.com ‘Domain-Driven Design with Elixir’ — https://2020.elixirconf.com/speakers/105/talk Design Patterns — https://en.wikipedia.org/wiki/Design_Patterns Justus Eapen Social Handle — @JustusEapen Eric Oestrich Social Handle — @EricOestrich Sundi Myint Social Handle — @SundiKhin Special Guests: Dan Lindeman, Japa Swadia, Jeffrey Utter, Luciano Ramalho, Melvin Cedeno, and Quinn Wilton.
1 hr 17 min
Domain-driven design and extreme programming can help bridge the gap between development and business, and today we invite Mark Windholtz from Agile DNA to talk about how! Mark starts out by telling us about his early work in extreme programming before agile was a term and how he switched from Rails to Elixir after realizing its power for implementing domain-driven design. We take a deep dive with him into what these concepts mean, hearing him weigh in on how DDD can help architecture accommodate both development and business oriented complexities. For Mark, development and business teams must get a better understanding of each other’s jargon, and DDD is a way to accomplish this. The goal is to find a way of building a solid software core and to move away from features to systems thinking, whereby flexible software can make it more possible to do agile on the business side. We chat about some of the practices and principles that come into play when implementing DDD for Mark, and he details concepts like ubiquitous language, bounded contexts, and how to focus on the core domain by exploring models using tactical and strategic patterns. Along with this, Mark discusses users not being a domain concept, the challenges of getting new terms to stick in teams’ minds, and the task of refactoring code to reflect updated glossaries. Near the end of our conversation, Mark drills down on how DDD can optimize team efficiency. In closing, we get to know Chris Bell from ElixirTalk a little better in this week’s edition of Pattern Matching with Todd! Key Points From This Episode: Thoughts on SpaceEx and their approach to engineering: system versus feature optimization. Mark’s background in extreme programming, how he got started with AgileDNA, and the work they do there. A definition of extreme programming that adds engineering practices to Scrum. Elixir’s superior ability to do DDD compared to Rails and how Mark got started using it. A brief introduction to domain-driven design, an approach to simplifying complex software. How architecture needs to accommodate essential as well as accidental complexity. Elixir’s ability to accommodate the building of domain models with well-separated code chunks. Principles of ubiquitous language and bounded contexts that make up DDD for Mark. Ubiquitous language helps devs and businesspeople understand each other. Bounded contexts: ‘Within this space, this world means this thing.’ Shifting focus from trying to make not all software, but core software, good. What patterns are applied to use principles of ubiquitous language and bounded contexts. Finding and focusing on the core domain by exploring models and how to do this using tactical and strategic patterns. The consequences of users not being a domain concept which demands having a clearer language. Challenges of getting language and concepts to stick in business people’s minds. Refactoring code to reflect updated glossaries: Technical challenges teams doing DDD face. Switching paradigms from feature-based optimizations to building an amazing code core. Approaches to modeling: the value of exploring multiple models. How teams can become more efficient using DDD and extreme programming. Final plugs from Mark and how Agile DNA can help use Elixir to implement DDD. Pattern matching: Todd gets to know more about Chris Bell from ElixirTalk. How Chris got into programming, what he’d do if not be a programmer, and more! Why Chris loves history, dream pop, and what movie he’ll watch over and over. What project Chris is most excited about next: Building Settlers of Catan using LiveView. Links Mentioned in Today’s Episode: Elixir Wizards Listener Survey — https://smr.tl/podcastsurvey SmartLogic — https://smartlogic.io/ Mark Windholtz on LinkedIn — https://www.linkedin.com/in/mwindholtz/ Mark Windholtz on Twitter — https://twitter.com/windholtz Agile DNA — http://www.agiledna.com Chris Bell on Twitter — https://twitter.com/cjbell?lang=en ElixirTalk — http://elixirtalk.com/ Chris Keathley — https://keathley.io/ Elon Musk — https://www.forbes.com/profile/elon-musk/#5bbe73cc7999 The Everyday Astronaut — https://www.youtube.com/channel/UC6uKrUWqJ1R2HMTY3LIx5Q Rob Martin — https://www.linkedin.com/in/version2beta/ Perhap — https://github.com/Perhap/perhap Andrew Hao — https://github.com/andrewhao Fred Brooks — http://www.cs.unc.edu/~brooks/ The Mythical Man-Month — https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959 Zach Thomas — https://github.com/zdcthomas?language=elixir&tab=stars 1917 — https://www.imdb.com/title/tt8579674/ Real Estate — https://www.realestatetheband.com/ Galaxie 500 — https://pitchfork.com/artists/1673-galaxie-500/ Star Trek: First Contact — https://www.imdb.com/title/tt0117731/ Star Trek: The Wrath of Khan — https://www.imdb.com/title/tt0084726/ LiveView — https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html Lonestar Elixir — https://lonestarelixir.com/ Special Guest: Mark Windholtz.
58 min 56 sec
Welcome to the second part of our special Elixir Wizards Dojo. A mashup made in partnership with ElixirConf Japan. In today’s episode, we talk to Nerves core team members Todd Resudek and Connor Rigby about all things Nerves. But first, Todd leads us into a delightful digression about his enjoyment of heavy metal music. From metal back to Nerves, Todd chats about how he uses Nerves to monitor his internet connection and to automatically restart his router when certain conditions are met. After talking about using Flutter and Dart to build GUIs, we ask Todd to share another of his Nerves projects; the future of sprinklers — the Drizzle 2000! We then explore Connor’s self-defined role in the Nerves team as the development head of networking libraries before discussing how easy it is to use Nerves if you are an Elixir user. Todd and Connor dive into their utopian visions for the future of Nerves and why no other IoT solutions can compete with the tooling that Nerves provides. We talk about FarmBot and the many features that its models have, including how they can pulverize weeds. This springboards the conversion into the increasing importance of IoT tech in the agriculture sector and how it’s likely to be the next billion-dollar industry. We round off the episode by giving our guests the space to plug themselves and they close with a request for listeners to Iron Maiden and Metallica’s first albums. A perfect compliment to the first installment of the Elixir Wizards Dojo, tune in to learn more about the Nerves Project. Key Points From This Episode: Introducing our guests and this episode’s connection to ElixirConf Japan. Connor and Todd lead a chat on the history and subgenres of heavy metal music. Todd talks about using Nerves to monitor his internet connection and restart his router. Building a user interface for Nerves’s projects using Flutter; Google’s UI toolkit. Best practices for developing apps with a specific focus on GUI apps. Hear about the Drizzle 2000! Todd’s sprinkler controller system that runs on Nerves. Todd and Connor’s respective roles as a part of the Nerves core team. The benefit of using Nerves; once it’s booted it’s a regular Elixir app. What a kiosk terminal is and how you would go about internationalizing one. Exploring the future of Nerves and hardware development. Comparing Nerves to other IoT solutions; in conclusion, nothing can compete. Different FarmBot system models that all use Nerves to grow food for you. Using Nerves to encode and record video or to create a live stream. Why integrating IoT into the agricultural sector will be the next billion-dollar industry. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ ElixirConf — https://elixirconf.com/2020 Connor Rigby GitHub — https://github.com/ConnorRigby Todd Resudek Twitter — https://twitter.com/sprsmpl Todd Resudek GitHub — https://github.com/supersimple Simplebet — https://simplebet.io/ Flutter — https://flutter.dev/ Binary Noggin — https://binarynoggin.com/ Nerves Project — https://www.nerves-project.org/ Nerves Project GitHub — https://github.com/nerves-project/nervespack#erlang-distribution Nerves Vintage Net GitHub — https://github.com/nerves-networking/vintagenet Nerves Web Kiosk GitHub — https://github.com/nerves-web-kiosk/kiosksystemrpi3 Rhapsody of Fire — https://www.rhapsodyoffire.com/ Ronnie James Dio — https://www.ronniejamesdio.com/ DragonForce — https://dragonforce.com/ Black Sabbath — https://www.blacksabbath.com/ Deep Purple — https://deeppurple.com/ Iron Maiden — https://ironmaiden.com Judas Priest — http://www.judaspriest.com/home/ Sam Dunn — https://www.imdb.com/name/nm0242757/ Ryan Holiday — https://ryanholiday.net/ Arjen Lucassen — https://www.arjenlucassen.com Metallica — https://www.metallica.com/ San Francisco Symphony — https://www.sfsymphony.org/ Fping — https://fping.org/ Dart — https://dart.dev/ React Native — https://reactnative.dev/ Scenic — https://kry10.com/ Phoenix Framework — https://www.phoenixframework.org/ Drizzler 2000 GitHub — https://github.com/supersimple/drizzle Ditch Witch — https://www.ditchwitch.com/ Jon Carstens — https://twitter.com/joncarstens?lang=en Le Tote — https://letote.com/ Electron — https://www.electronjs.org/ Matthew Ludwigs — https://www.linkedin.com/in/mattludwigs/ SmartRent — https://smartrent.com/ Sophie Debenedetto — http://sophiedebenedetto.nyc/ FarmBot — https://farm.bot/ Membrane Framework — https://www.membraneframework.org/ Greg Mefford — https://www.linkedin.com/in/ferggo/ Omni-eye GitHub — https://github.com/GregMefford/omni_eye Bowery Farming — https://boweryfarming.com/ John Deere — https://www.deere.com Show Notes - Japanese Elixir Wizards Dojo 第2部 Connor Rigby と Todd Resudek Episode S4E13b: 概要 Elixir Wizards Dojo スペシャル番組の第二部にようこそ。ElixirConf JPとのパートナーシップによるマッシュアップです。今日のエピソードでは、NervesコアチームのメンバーであるTodd Resudek と Connor Rigby とNervesの全てについて話します。でも最初に、Toddは私たちをヘビーメタル音楽の彼の楽しみについての楽しい余談に導きます。メタルからNervesに戻って、ToddはNervesをインターネット接続のモニタリングと、特定の条件が満たされた時にルーターの自動で再起動する方法について話します。FlutterとDartを使ってGUIを構築する方法について話したあと、Toddに彼の作ったもう一つのNervesプロジェクト、スプリンクラーの未来，Drizzle 2000！についてシェアしてもらいます。そしてConnorがNervesチームにおける自ら定義した役割である、ネットワーキングライブラリの開発について探求し、もしElixirユーザーである場合にNervesを使うことがいかに簡単かについて議論します。ToddとConnorはNervesの未来の理想郷についての話題と、Nervesが提供するツールに敵うIoTソリューションが他に存在しない理由について飛び込みます。ファームボットについて話をして、雑草をやっつける機能を含む、ファームボットのモデルが持つたくさんの機能について話します。これは、農業分野でのIoT技術の重要性の高まりへの転換と、どのように次の10億ドル規模の産業になる可能性が高まってくるかについてを示しています。エピソードの締めくくりは、ゲストに自分自身とつながる方法について紹介してもらいながら、アイアンメイデン(Iron Maiden)とメタリカ(Metallica)のファーストアルバムをリスナーに紹介します。Elixir Wizards Dojoの初回への謝辞から、Nervesプロジェクトの詳細を学んでください。 このエピソードのみどころ ゲストの紹介と、このエピソードとElixirConf JPとのコネクションについて Connor と Todd によるヘビーメタル音楽の歴史とサブジャンルへの案内 ToddのNervesを使ったインターネット接続のモニタリングとルーターの再起動の Fultter というGoogleのUIツールキットを使ったNervesプロジェクトのユーザインタフェース構築 GUIアプリに焦点を当てたときのアプリ開発のベストプラクティス Drizzle 2000について聴ける！ Nervesで動くToddのスプリンクラーコントローラシステム ToddとConnorのNervesコアチームにおけるそれぞれの役割 Nervesを使う利点: 一度起動すると通常のElixirアプリになる キオスク端末とは何か，どのようにキオスク端末を国際化するか Nervesとハードウェア開発の将来の探求 Nervesと他のIoTソリューションの比較: 結論としては，Nervesに敵うものはない ファームボットシステムのモデルの違いについて: 全てにNervesが使われていて、食糧を育てる Nervesを使ってビデオをエンコードしたり録画したり，ライブストリーミングしたりする方法 IoTを農業分野に統合することが次の10億ドル産業になる理由 Special Guests: Connor Rigby and Todd Resudek.
42 min 45 sec
Welcome to the first part of our extra special Elixir Wizards Dojo. A mashup made in partnership with ElixirConf Japan, in today’s episode, we pose questions asked by the Japanese Nerves community to Nerves core team members, Frank Hunleth and Justin Schneck. After introducing our guests, we talk about which companies make use of Nerve and explore its use cases by looking at FarmBot, an open source robotic farming tool. Justin and Frank take turns explaining the differences between soft and hard real-time — a springboard to show how Nerve excels within its ‘middle-ground of complexity’, production-orientated niche. From Halloween pranks to growing Sichuan chili peppers in the office, Justin and Frank share the projects that they’ve built using Nerves and emphasize its wide applicability. We discuss how Nerves has been both officially and unofficially ported to different devices, why people send Frank random pieces of hardware in the mail, and the differences between open-source and making your work publicly available. Justin and Frank commiserate over the challenge of working with Bluetooth and the beauty of the Nerves community in pushing innovation. We chat more about Nerves, including how you can extend the functionality of file systems, before Justin and Frank unpack their roadmap for Nerves’s future. Tune in to learn more about the Nerves Project, a system that can add a great deal of agility to any development cycle. Key Points From This Episode: Introducing our guests and this episode’s focus on the Japanese Elixir community. The double-edge of broadcasting your excitement about Elixir projects. Looking at FarmBot as a practical use-case to show off what Nerve can do. Differences between soft and hard real-time using FarmBot as an example. What Nerves excels at; acting as a gateway for other processors. Justin and Frank share the projects that they’ve built using Nerves. A brief digression where Justin shares his love of Chinese Sichuan cooking. What other markets are making use of Nerves in their product cycle. The unique ‘middle-ground’ of complexity that Nerves is best suited to address. Porting Nerves to different devices and what devices need to run Nerves. Open-source versus making work public and how Justin took some of his Bluetooth work public. The challenges of working with Bluetooth. Hear how a group in the community is making a Nerves keyboard. How you can extend the functionality of a file system on Nerves. Nerves’s features that make it such an excellent tool within a production environment. When deploying with Nerves Hub, learn how to configure Wi-Fi modules with different devices. Starting with a facelift, Frank and Justin share their roadmap for Nerves’s future. How companies Vary and SmartRent have contributed to the longevity of Nerves. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ ElixirConf — https://elixirconf.com/2020 Frank Hunleth — https://www.linkedin.com/in/fhunleth/ Justin Schneck — https://www.linkedin.com/in/justinschneck Susumu Yamazaki — https://twitter.com/zacky1972 Nerves Project — https://www.nerves-project.org/ Nerves Project Open Collective — https://opencollective.com/nerves-project Nerves Project GitHub — https://github.com/nerves-project/nervespack#erlang-distribution Nerves Kiosk System GitHub — https://github.com/nerves-web-kiosk/kiosksystemrpi3 FarmBot — https://farm.bot/ Rose Point — https://www.rosepoint.com/ The Food of Sichuan — https://www.amazon.com/Food-Sichuan-Fuchsia-Dunlop/dp/1324004835 Lance Halvorsen — https://www.linkedin.com/in/lance-halvorsen-07a102/ Atom VM GitHub — https://github.com/bettio/AtomVM Lichee Pi Zero — https://licheepizero.us/ Pavlok — https://pavlok.com/ Harald GitHub — https://github.com/verypossible-labs/harald Bluetooth with Nerves Notes GitHub — https://gist.github.com/fhunleth/fae46998609814ae4a8abd44f6f08188 Fwup GitHub — https://github.com/fhunleth/fwup ‘Building a keyboard with Elixir’ — https://medium.com/swlh/building-a-keyboard-with-elixir-fc7bd3f60ec3 Vintage Net Wizard GitHub — https://github.com/nerves-networking/vintagenet_wizard Grizzly GitHub — https://github.com/smartrent/grizzly SmartRent Careers — https://smartrent.com/careers/ Very Possible Careers — https://www.verypossible.com/careers Show Notes - Japanese Elixir Wizards Dojo 第一部 Frank Hunleth と Justin Shneck Episode S4E13a: 概要 Elixir Wizards Dojo スペシャル番組の第一部にようこそ。ElixirConf JPとのパートナーシップによるマッシュアップです。今日のエピソードでは、日本のNervesコミュニティからの質問をNervesコアチームのメンバーであるFrank Hunleth と Justin Schneck に尋ねます。ゲストの2人を紹介した後、Nervesを使用する会社のことや、ファームボット(オープンソースのロボティック農業ツール)に見る使用事例を探ります。JustinとFrankが交互にソフトリアルタイムとハードリアルタイムの違いを説明し、Nervesが「複雑さの中立的立場」、生産指向のニッチという点で優れていることを示します。ハロウィンのいたずらから、オフィスで育つ四川の唐辛子栽培まで、JustinとFrankはNervesを使用して構築したプロジェクトを紹介し、その幅広い応用性を強調します。Nervesが公式・非公式にさまざまなデバイスに移植された方法についてや、なぜみんながFrankにランダムなハードウェアを郵送するのか、オープンソースと単に作品を公開することの違いについて話し合います。JustinとFrankはBluetoothの機能開発の課題に同情し、イノベーションを推進する上でのNervesコミュニティの美点について語ります。さらにNervesについて話が進み、どのようにファイルシステムの機能性を拡張するのかや、JustinとFrankがNervesの将来のロードマップについて披露します。どのような開発サイクルにも「アジャイルに」できるシステムである、Nerves プロジェクトについてより詳しく知りたいという人は、是非聴いてください。 このエピソードのみどころ ゲストの紹介と、日本のElixirコミュニティに対するこのエピソードの焦点 Elixirプロジェクトについての興奮を広める上での「両刃」 ファームボットに見るNervesが実現できる実事例 ファームボットを例にした、ソフトリアルタイムとハードリアルタイムの違い Nervesの何が優れているのか: 他のプロセッサへのゲートウェイの役割 JustinとFrankが共有する、Nervesで今まで構築してきたプロジェクトの数々 Justinが愛する四川料理についての軽い脱線 Nervesを製品サイクルに応用する他のマーケットや事例 Nervesが扱うのに手ごろな複雑さの独特の「中間基盤」 Nervesの異なるデバイスへの移植とNervesを実行させるのにどんなデバイスが必要 オープンソースと作品を公開することの違いと、どのようにJustinがBluetoothでの仕事の一部を公開したか Bluetoothの開発作業のチャレンジ コミュニティのグループがどのようにNervesキーボードを作っているか どのようにNervesのファイルシステムの機能性を拡張するか 本番環境で優れたツールとなる上でのNervesの機能 Special Guests: Frank Hunleth and Justin Schneck.
54 min 21 sec
In today’s episode, we chat about system architecture, Ruby, Elixir, and everything in between with Greg Mefford, the senior back-end engineer for the Bleacher Report. We open the conversation by asking Greg about his start in coding, leading to a story about how Greg was that bored kid pressuring a math teacher to teach him QBasic. He shares how he fell in love with Ruby before discovering Elixir and Nerves. Having faced some challenges when learning Nerves, Greg talks about how he began documenting his pain points and writing documents to help onboard newcomers. We discuss Greg’s work with Nerves, his project aspirations, and his recommended resources for anyone looking to get into Nerves or Elixir. After providing his hot take on the latest Code BEAM V conference, we ask Greg what system architecture means to him. From there we get super meta about the meaning of architecture and what it means to translate design into practice. We touch on the struggle of understanding domain-driven design and Greg’s approach to pre-code planning before delving into how the Bleacher Report is set up. As Greg goes into details, you’ll hear why their servers now run on Elixir and not Ruby. Near the end of the episode, we talk about Poncho versus Umbrella apps, and Greg shares his passion for multi-user dungeons (MUDs). Tune in to learn more about Greg and his role in the Elixir and Nerves landscape. Key Points From This Episode: Greg’s start in coding and his transition from electronics design into IT. Why Greg loves Ruby and how he discovered the magic of Elixir. Greg’s contribution to the Elixir and Nerves community by helping onboard newcomers. What Greg’s job as a senior engineer for Bleacher Report looks like. Greg recommends resources for beginners getting into Nerves and Elixir. Creating a kid’s game using Nerves and Greg’s Blinkchain library. Greg’s take on the Code BEAM V conference and hating on the Whova app. What architecture means to Greg. This one gets deep. How translating designs into software has changed over the years. Why Greg struggles with the idea of domain-driven design. The state of Extreme Programming practices and how they synergize together. How Greg views pre-code planning; something that’s become his specialty within his latest job. The many elements that contribute to how the Bleacher Report’s IT is set up. Ruby servers versus Elixir servers and why the Bleacher Report uses Elixir. Why the Poncho system was designed to fix Nerves issues not covered by Umbrella apps. Greg’s history creating multi-user dungeons (MUDs) and playing DragonRealm. Links Mentioned in Today’s Episode: Greg Mefford LinkedIn — https://www.linkedin.com/in/ferggo/ SmartLogic — https://smartlogic.io/ SmartLogic Jobs — https://apply.workable.com/smartlogic/ ElixirConf — https://elixirconf.com/2020 Blinkchain GitHub — https://github.com/GregMefford/blinkchain Justin Schneck GitHub — https://github.com/mobileoverlord Le Tote — https://www.letote.com/ James Smith — https://twitter.com/st23am Garth Hitchens, ElixirCof 2015 — https://www.youtube.com/watch?v=kpzQrFC55q4 Nerves Project — https://www.nerves-project.org/documentation Bleacher Report — https://bleacherreport.com/ Programming Elixir — https://www.amazon.com/Programming-Elixir-1-6-Functional-Concurrent/dp/1680502999 Elixir in Action — https://www.amazon.com/Elixir-Action-Sa%C5%A1a-Juri-cacute/dp/1617295027 Chris Keathley — https://codesync.global/speaker/chris-keathley/ Code BEAM V Conference — https://codesync.global/conferences/code-beam-sto/ Whova App — https://whova.com/ Amos King — https://twitter.com/adkron?lang=en Christopher Keele — https://github.com/christhekeele Steve Bussey Episode — https://smartlogic.io/podcast/elixir-wizards/s4e3-bussey/ Mark Windholtz — https://github.com/mwindholtz Extreme Programming — http://www.extremeprogramming.org/ Adopting Elixir: From Concept to Production — https://www.amazon.com/Adopting-Elixir-Production-Ben-Marx/dp/1680502522 Live Elixir Wizards - Betweenisode — https://www.youtube.com/watch?v=kEwxhGYEGts Twirp GitHub — https://github.com/twitchtv/twirp Frank Hunleth — https://github.com/fhunleth Elixir Supervisor Behavior — https://hexdocs.pm/elixir/Supervisor.html Elixir Poncho Projects — https://embedded-elixir.com/post/2017-05-19-poncho-projects/ Titans of Text — https://www.titansoftext.com/ Miriani — https://www.toastsoft.net/ DragonRealms — https://www.play.net/dr/ Justus Eapen Twitter — https://twitter.com/justuseapen Eric Oestrich — https://twitter.com/EricOestrich Special Guest: Greg Mefford.
41 min 47 sec
Johanna Larsson is a community-minded software engineer whose project, Hex Diff, generates highlighted git diffs, right in your browser. In this episode, we talk to Johanna about how Hex Diff can benefit Elixir users, the differences between code architecture and code design, and the debatably under-appreciated role of Elixir umbrella apps. We start the conversation by chatting with Johanna about her recent move to London and her work for Duffel; a startup helping travel agencies book trips. After talking about how she got into software development, we dive into Hex Diff versus GitHub, with Joanna detailing how Hex Diff offers greater security for your code. We ask Johanna about the origins of the Hex Diff project and she explores its aims and her experiences working on the project. In line with this month’s theme, we discuss what architecture means to Joanna and the need for domain-driven design. We quiz Joanna on her approaches to problem-solving and she explains how her coding process emphasizes building an early prototype and constantly iterating on it. Despite hearing that umbrella apps are bad news, Joanna makes a case for their value while acknowledging how that they need greater tooling. We round off our conversation by asking Joanna how she tries to grow her skillset and what her favorite Elixir resource is. Following our discussion with Johanna, we open with another edition of Pattern Matching with Todd. This week, friend of the podcast Todd Resudek asks five questions of Elixir community member Bruce Williams. They talk about Bruce’s work as an Arabic cryptologic linguist for the US Airforce, his software career, and the therapeutic uses of playing Animal Crossing during a pandemic. Key Points From This Episode: We introduce Johanna Larsson and she shares how she is doing in London. How Johanna developed a love for software and how Elixir brought her to London. Details about Johanna’s job at Duffel; a startup that helps travel companies book trips. How Hex Diff is solving problems that arise when using code from GitHub. Johanna’s experience working on Hex Diff and the problems that they aim to solve. Hex Diff’s caching system and what Hex Diff does to counter malicious software uploads. The disconnect between system architecture and implementation. Johanna’s view on the differences between code design and code architecture. Why domain-driven design increases usefulness to the end-user. How Johanna approaches a problem and her steps when building code. Hear what key lesson Johanna learned from her latest big project. Johanna’s experience with umbrella apps and why they need tooling functions. How working in a strong team can motivate you and help grow your skill set. Why the Elixir Slack group is Johanna’s favorite tool. Why you should check out Hex Diff; it’s a great introduction to Elixir. This edition of Pattern Matching with Todd; Todd Resudek interviews Bruce Williams. Links Mentioned in Today’s Episode: Johanna Larsson — https://blog.jola.dev/ Johanna Larsson LinkedIn — https://www.linkedin.com/in/joladev/ Johanna Larsson Twitter — https://twitter.com/joladev SmartLogic — https://smartlogic.io/ ElixirConf — https://elixirconf.com/2020 SharePoint — https://www.microsoft.com/en-us/microsoft-365/sharepoint/collaboration Duffel — https://duffel.com/ Stripe — https://stripe.com/ Hex Diff — https://diff.hex.pm/ Hex Diff GitHub — https://github.com/hexpm/diff Maciej Mensfeld — https://mensfeld.pl/ Diffend — https://my.diffend.io/ Wojtek Mach — https://twitter.com/wojtekmach Eric Meadows-Jönsson — https://twitter.com/emjii Todd Resudek — https://twitter.com/sprsmpl Announcing Hex Diff — https://hex.pm/blog/announcing-hex-diff Hex Core GitHub — https://github.com/hexpm/hexcore Hex Diff Phoenix — https://diff.hex.pm/diff/phoenix/1.5.2..1.5.3 The Design of Everyday Things — https://www.amazon.com/Design-Everyday-Things-Revised-Expanded/dp/0465050654 Brooklyn Zelenka LinkedIn— https://www.linkedin.com/in/brooklynzelenka/ Unified Modeling Language — https://en.wikipedia.org/wiki/UnifiedModeling_Language Elixir v. 1.10.4 Mix CMD — https://hexdocs.pm/mix/Mix.Tasks.Cmd.html Elixir v1.11 Forum Post — https://elixirforum.com/t/elixir-v1-11-will-be-released-in-october-2020/31535 Rustler GitHub — https://github.com/rusterlium/rustler Live View —https://blog.codepen.io/documentation/live-view/ Bruce Williams — https://www.linkedin.com/in/wbruce/ Absinthe — https://absinthe-graphql.org/ Untitled Goose Game — https://goose.game/ Stardew Valley — https://www.stardewvalley.net/ Myst — https://cyan.com/games/myst/ Blanco White — https://www.blancowhite.info/ Groundhog Day — https://www.imdb.com/title/tt0107048/ Animal Crossing — https://www.animal-crossing.com/ Special Guest: Johanna Larsson.
48 min 51 sec
Handling date and time is a challenge in any language, but Lau Taarnskov is determined to solve that problem in Elixir. Lau is today’s guest on Elixir Wizards, and this episode is all about his contributions to Elixir. Lau has been involved with web development and e-commerce for decades. He started contributing to Elixir open source in 2014 and created the Calendar and tzdata libraries. Calendar is a datetime library for Elixir, that provides explicit types for datetimes, dates, and times, and full time zone support is provided via its sister package, tzdata. When it comes to the subject of date, time, and time zones, besides talking about it and writing software for it, Lau also writes about it on his blog, Creative Deletion. This episode explores how Lau got started in programming, and what led him to creating Calendar and tzdata. Lau shares the resources that he found helpful when he started using Elixir, and why he was drawn to Elixir in the first place. We hear Lau’s opinions on time zones and daylight savings and whether or not they’re necessary, and he shares some advice for anyone working with time in Elixir. Then it’s time for another edition of Pattern Matching with Todd, in which Todd Resudek asks Brooklyn Zekanka five questions to help us get to know her better. Brooklyn talks about everything from she has lived, what jobs she did before becoming a programmer, and her education in classical music, to her favorite bands, movies, and TV shows, as well as some of the projects she is working on. For all this, and more, don’t miss today’s episode! Key Points From This Episode: Lau explains what TLAs are and why they aren’t always helpful for explicit communication. Lau introduces himself and shares how he got into programming and computer science. The resources Lau found most useful when he started using Elixir, including books he read. What it means that Elixir’s source code is written in Elixir, and why that was helpful for Lau. Lu talks about Calendar, a datetime library that Lau created for Elixir, and Tzdata, a parser and library he created for the tz database, and why he created them. How Lau deconstructed the time zone problems and how his ideas have changed over time. Lau’s opinions on time zones and daylight savings and whether or not they’re necessary. Advice from Lau for anyone working with time in Elixir. Another edition of Pattern Matching with Todd – today’s guest is Brooklyn Zelenka. Where Brooklyn was born, where she has lived, and the jobs she did before programming. Brooklyn talks about her musical background and how it’s similar to programming. Brooklyn shares a pro tip about slides and reflects on her highlights as a speaker. What Brooklyn would be doing if she weren’t a programmer and the genre of music she likes. Brooklyn’s favorite TV shows and movies, including Amadeus and Mad Men. Brooklyn shares what she’s working on currently and the next project she’s excited about. Links Mentioned in Today’s Episode: Lau Taarnskov on Twitter – https://twitter.com/laut Creative Deletion Blog – http://www.creativedeletion.com/ Lau Taarnskov on GitHub – https://github.com/lau Calendar on GitHub – https://github.com/lau/calendar Tzdata on GitHub – https://github.com/lau/tzdata Elixir in Action – https://www.amazon.com/Elixir-Action Programming Elixir – https://www.amazon.com/Programming-Elixir-1-6-Functional-Concurrent/ Brooklyn Zelenka on LinkedIn – https://www.linkedin.com/in/brooklynzelenka/ Brooklyn Zelenka on Twitter – https://twitter.com/expede Brooklyn Zelenka on GitHub – https://github.com/expede FISSIONcodes Website – https://fission.codes/ SmartLogic — https://smartlogic.io/ Amadeus — https://www.rottentomatoes.com/m/amadeus Mad Men — https://www.rottentomatoes.com/tv/mad-men Special Guest: Lau Taarnskov.
37 min 35 sec
For part 2 of our Council of Wizards panel discussion, we are joined by Chris Bell, Desmond Bowe, Emily Maxie, Dan Lindeman, and Alan Voss! Chris and Desmond run the ElixirTalk Podcast and we get in-depth on the intersection of the language and talking about it. They share the lessons they have learned in the podcasting space, making some pit stops to chat about aliens, Elixir beef, and marble flooring! We discuss the community during the pandemic and what the Elixir world might look like for the next year or two. Emily and Dan then step in to give us all the information about Very and their very functional remote work model. They talk us through the full departure that the company made from a physical hub and both share what they love and hate about working from home, before and during the COVID crisis. Dan and Emily talk about onboarding and team spirit in remote teams and the strategies that have best served Very in this regard. Lastly, we have a bonus section with Alan Voss, to discuss his game night competitions and more. He unpacks the games he has already hosted and some of the candidates for future events before we hear about his experiences in the pandemic, specifically as an extrovert and a father. For all of this make sure to join us on the show! Key Points From This Episode: The exciting possibility of starting beef in the Elixir community! Books and podcasts we have been reading and listening to. Marble flooring, glass blowing, aliens, conspiracy theories, and impersonations! Tips, tricks, and lessons for the podcast space from Chris and Desmond. Thoughts on the future of the Elixir community during and after the pandemic. The array of projects that keep Chris and Desmond busy; startups, meetups, conferences! Very's fully remote-work setup and the decision to move away from a physical office. Challenges and lessons in the work-from-home model; making do with less in-person interaction. Positive sides to a home workspace; making a mess and closing the door. Employee socialization and familiarization at a remote company. The applicability of Elixir across different projects and libraries. The infinite amount of puns that are available when talking about Very! Programming Connect Four and the future of bot competitions according to Alan. Strategy snobs and taking this to its logical conclusion with chess and Go. The effect that the pandemic has had on extroverts and the adjustments that Alan has made. The possibility of ElixirConf this year and the forms it could take. Work that has gone into Alan's game-night side project over the last months. The growth of Postmates and their current need for new employees! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Ecosystem Survey — https://elixirsurvey.typeform.com/to/yYmJv1 ElixirConf — https://elixirconf.com/2020 Github Repo for Transcript Corrections — https://github.com/smartlogic/smartlogic.io/tree/master/podcast/elixir-wizards/transcripts Chris Bell — https://cjbell.co/ Chris Bell on Twitter — https://twitter.com/cjbell Desmond Bowe on Twitter — https://twitter.com/desmondmonster ElixirTalk — http://elixirtalk.com/ Emily Maxie on Twitter — https://twitter.com/emilymaxie Dan Lindeman on Twitter— https://twitter.com/lindemda Very — http://verypossible.com/ Chris McCord — http://chrismccord.com/ Alan Voss — http://www.alanvoss.org/ Alan Voss on Twitter — https://twitter.com/alanvoss Lonestar Elixir— https://lonestarelixir.com/ MPex — https://mpex.com/ Payitoff — https://www.payitoff.io/ Meetup — https://www.meetup.com/ OpenAI — https://openai.com/ Risk — https://www.amazon.com/Hasbro-B7404-Risk-Game/dp/B01ALHAIWG Strange Loop — https://www.thestrangeloop.com/ Postmates — https://postmates.com/ Special Guests: Alan Voss, Chris Bell, Dan Lindeman, Desmond Bowe, and Emily Maxie.
55 min 14 sec
The Elixir community continues to flourish and evolve in these uncertain times and in honor of this we have put together a live show with a number of special guests! In part one today, we are joined by Andrea Leopardi and René Föhring, who we are so happy to welcome back. We get the lowdown from each of them in turn, discussing personal preferences, tips and tricks, and recommendations for Elixir and beyond. Andrea gets into some of his pet peeves and comments on the trend of slow interfaces. We then look at future possibilities for Elixir including the outside chance of it being run on mobile and for crypto-mining! Andrea also updates us on the book he is currently working on so keep an eye out for that in the future! René then steps in to talk about his work on Credo, his hopes for it in the future, and some suggestions for listeners using it. We do some comparisons between Elixir and Ruby before René offers some thoughts on Electron and functional programming concepts. So for all this and a whole lot more, make sure to tune in today and stay tuned for part 2! Key Points From This Episode: A reintroduction to Andrea and his current work in the Elixir space. Andrea's tool recommendations and what he uses most at the moment. Updates, the short term future of the world of Elixir and Andrea's current focus. RSpec versus xUnit: Andrea's personal preferences. Andrea's limited experience of LiveView and early reactions. Feelings about computers and phones with slow interfaces! The very slim chances of seeing Elixir run on mobile. Cryptocurrency and Andrea's lack of experience and ambition in the space. Some exciting information about Andrea's upcoming book to keep an eye out for. René's current projects; Credo, Elixir weekly newsletter, and more! The future of Elixir — will it be the next Ruby? Elixir on a phone; René's thoughts on this possibility and its validity. Updates for Credo — all the exciting news since our last conversation with René. Improving work that you are proud of and René's own feelings about Credo. The objectives and vision for Credo and improving upon certain pain points. Writing and running in Electron and how to have fun while doing it! The application of functional programming concepts in René's work in Electron. René's suggestion for Credo — using the Credo master after it being reworked. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Elixir Ecosystem Survey — https://elixirsurvey.typeform.com/to/yYmJv1 ElixirConf — https://elixirconf.com/2020 Github Repo for Transcripts Corrections - https://github.com/smartlogic/smartlogic.io/tree/master/podcast/elixir-wizards/transcripts Andrea Leopardi — https://andrealeopardi.com/ Andrew Leopardi on Twitter — https://twitter.com/whatyouhide Rene Föhring — http://rrrene.org/ Rene Föhring on Twitter — https://twitter.com/rrrene Alfred — https://www.alfredapp.com/ Tesla — https://www.tesla.com/ TempleOS — https://templeos.org/ Elon Musk — https://www.forbes.com/profile/elon-musk/ Mint — https://www.mint.com/ Finch — https://finch.io/ Ruby — https://www.ruby-lang.org/en/ Electron — https://www.electronjs.org/ Special Guests: Andrea Leopardi and René Föhring.
39 min 31 sec
Although it’s taken him four seasons to make an appearance, we are so glad to finally welcome Chris McCord, creator of the Phoenix framework, onto the show. While this season’s focus is on system and application architecture, today’s discussion deviates to focus on Phoenix. We get started by hearing more about Chris’s programming journey, all the way from TI-Basic to where he is now. After this, we dive into LiveView, the project Chris is currently focusing most of his energy on. We get into some of the incredible changes that have been made including live navigation, deep change tracking optimizations, and static asset tracking. Chris shares which of the changes he is most excited about, along with why he enjoys seeing LiveView being misused. We then look at some of the critiques of LiveView and Phoenix generally. Chris offers counter-arguments to the most common criticisms of the framework. He shares how the title of 'framework' can be a double-edged sword, as well as why he is hesitant to extract channels prematurely. We wrap the show up with a look into the future, hearing more about what’s on the horizon for Phoenix and where Chris hopes the Elixir community is headed. This conversation was well worth the four season-long wait, so be sure to tune in today! Key Points From This Episode: Why it took Chris four whole seasons to finally make an appearance on the show. Chris’s programming journey from T-Basic all the way to Java, HTML, and PHP. How a broken back landed Chris his first paid programming job. Learn more about Chris’s current project, LiveView, and some of the recent additions. Why the optimizations were the most interesting changes for Chris to make on LiveView. Some of the most interesting use cases Chris has seen of LiveView. How Chris plans to navigate laying LiveView out on a larger codebase. Chris’s take on stateful applications and why the platform is so important. The origins of the hilariously termed ‘dead view.’ Some of the most pertinent critiques of LiveView and Phoenix generally. Chris busts some of the invalid critiques of Phoenix. Why the community feedback on LiveWire has been so surprising to Chris. Phoenix 1.6 changes and when we can expect its release. Chris’s take on whether Elixir is likely to overthrow Rails in terms of popularity. The systemic blockers that create adoption friction of Elixir and Phoenix. Looking into the future — Chris’s goals for Phoenix and his hopes for the Elixir community. Links Mentioned in Today’s Episode: Chris McCord — http://chrismccord.com/ Chris McCord on Twitter — https://twitter.com/chrismccord DockYard — https://dockyard.com/ Dave’s Site — https://www.davesite.com/ Hacking with PHP — http://www.hackingwithphp.com/ Phoenix LiveView — https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html Phoenix Phrenzy — https://groundstation.gigalixirapp.com/ Dashbit: An Upcoming Authentication Solution for Phoenix — https://dashbit.co/blog/a-new-authentication-solution-for-phoenix Aaron Renner on GitHub — https://github.com/aaronrenner/phxgenauth Phoenix Issues on GitHub — https://github.com/phoenixframework/phoenix/issuesq=is%3Aopen+is%3Aissue+milestone%3Av2.0 Phoenix Fire Nest — https://github.com/phoenixframework/firenest Phoenix Pub/Sub — https://github.com/phoenixframework/phoenixpubsub ElixirConf 2020— https://2020.elixirconf.com/ ElixirConf 2020 Speaker Proposals — https://2020.elixirconf.com/#cfp TI-83 Calculator — https://www.amazon.com/Texas-Instruments-TI-83-Graphing-Calculator/dp/B00001N2QU Teach Yourself C in 21 Days — https://www.amazon.com/Teach-Yourself-21-Days-Sams/dp/0672310694 Rest Fest — https://www.restfest.org/ José Valim on Twitter — https://twitter.com/josevalim Jason Goldberger on LinkedIn — https://www.linkedin.com/in/jason-goldberger-84237392/ SmartLogic — https://smartlogic.io/ SmartLogic Jobs — https://smartlogic.workable.com/ Special Guest: Chris McCord.
43 min 46 sec
Today’s guest is Amos King, Principal CEO at Binary Noggin, and host on the Elixir Outlaws and This Agile Life podcasts. This episode is centered around a casual conversation about everything from programming, the military, sarcasm, and puns to systems and application architecture, domain-driven design, and bitmasks. Amos shares with us how he got into programming, after wanting to be a doctor or an engineer first, and tells us how he met Famous Amos. We talk about spectrum analyzers, Elixir resources, and MUDs, as well as type-first design and Haskell. Amos gives us his takes on domain-driven design, API, booleans, and enums, and even roasts his co-host Chris Keithley a little. Don’t miss this episode for everything you’ve ever wanted to know about the legendary Amos King (and a whole lot more)! Key Points From This Episode: * Amos explains what Adkron means, which is his gaming and social media handle. * Where the name Elixir Outlaws for the podcast came from. * How Amos got into programming as a career, after wanting to be a surgeon and an engineer. * What Amos’s first opportunity as a programmer was, and how he met Wally Amos. * Amos explains what a spectrum analyzer is, based on his experience in the military. * Amos shares why Steve Bussey’s book, Real-Time Phoenix, is his favorite Elixir resource. * Eric and Amos talk about the MUD engine that they worked on together. * What systems and application architecture means to Amos and how it differs from design. * What type-first design (TFD) is and Amos’s opinion on it as a thought exercise. * Amos talks about Haskell programming and domain-driven design. * Relating domain-driven design to a car dealership to describe types and terminology. * Amos talks a bit about his company and what they do. * Justus, Eric, and Amos debate the term “architect” and what it actually means. * Amos shares his take on API architecture, booleans, enums, and bitmasks. * Amos gives his hot take on his co-host Chris Keithley. Links Mentioned in Today’s Episode: Amos King on Twitter — https://twitter.com/adkron Elixir Outlaws Podcast — https://elixiroutlaws.com/ Wally Amos — https://en.wikipedia.org/wiki/WallyAmos Windows 3.0 — https://en.wikipedia.org/wiki/Windows3.0 Real-Time Phoenix on Pragmatic Bookshelf — https://pragprog.com/book/sbsockets/real-time-phoenix Elixir School — https://elixirschool.com/en/ Elixir Inaction — https://twitter.com/gausby/status/986550202248187904 This Agile Life Podcast — https://www.thisagilelife.com/ Screen — https://screen.so/#/home Haskell Book — https://haskellbook.com/ Binary Noggin Website — https://binarynoggin.com/ Binary Noggin on Twitter — https://twitter.com/BinaryNoggin SmartLogic — https://smartlogic.io/ Justus Eapen on Twitter — https://twitter.com/justuseapen Eric Oestrich — https://oestrich.org/ Kalevala — https://github.com/oestrich/kalevala Eric Oestrich on Twitter — https://twitter.com/ericoestrich Eric Oestrich on GitHub — https://github.com/oestrich Special Guest: Amos King.
55 min 28 sec