Elixir Wizards

Elixir Wizards

By SmartLogic LLCTechnologyEducationHow To
Download on the App Store

Elixir Wizards episodes

  • Randall Thomas on Learning Elixir and Why Community Matters

    The culture of your programming community directly impacts your professional success. As Thunderbolt Labs Founder Randall Thomas explains in this episode, a community that practices openness and which warmly welcomes its newer members leads to greater career happiness.

    We open our chat with Randall by exploring his start in coding and how he discovered Elixir. He shares some of the teething problems that he had moving from Ruby to Elixir before we touch on how learning other languages expands your ability to both appreciate and code in languages that you’re already fluent in. Following this, Randall explodes the myth of the genius polyglot programmer by sharing his take on why all coders are polyglots. As the Thunderbolt CEO, we ask Randall how his company adopted Elixir. He provides listeners with insights into how they introduced Elixir into their practice without affecting existing projects.

    After highlighting the efficiency of Elixir and how community affects the feel of a language, we compare the culture and challenges of Ruby, JavaScript, and Elixir. Near the end of the episode, Randall reflects on why experts make for poor teachers. For Randall, Elixir gives his company a competitive advantage. Tune in to hear Randall’s perspective on why community matters and for his top advice on teaching your team Elixir.

    Key Points From This Episode:

    • Introducing Thunderbolt Labs Founder and CEO, Randall Thomas.
    • Randall shares how he discovered coding and engineering.
    • Hear how Randall first heard about Elixir and how he picked up the language.
    • Exploring common challenges moving from Ruby to Elixir.
    • How learning new languages can deepen your understanding of languages that you already know.
    • Why there’s no such thing as the ‘genius polyglot programmer.’
    • Details on why Randall’s company began gravitating towards Elixir.
    • How communities affect the ‘feel’ of a language.
    • Why no one actually writes in JavaScript anymore.
    • Randall gives his take on why Elixir is a god-send for certain programmers.
    • Insights into how Randall integrated Elixir into his company.
    • The challenge of learning Elixir versus the ease of learning JavaScript.
    • How Randall sold his clients on Elixir and the benefits of having clients that trust you.
    • Randall’s top tips on helping your developers learn Elixir.
    • Why Elixir gives Randall’s a strategic advantage.
    • The importance of having non-experts explain things to you.
    • How your coding community can impact your happiness and career success.
    • Links Mentioned in Today’s Episode:

      SmartLogic — https://smartlogic.io/

      Randall Thomas on LinkedIn — https://www.linkedin.com/in/randall-j-thomas/
      Randall Thomas on Twitter — https://twitter.com/daksis
      Thunderbolt Labs — https://www.thunderboltlabs.com/
      Episode with Miki Rezentes — https://smartlogic.io/podcast/elixir-wizards/s4e16-rezentes/
      Gödel, Escher, Bach on Amazon — https://www.amazon.com/B6del-Escher-Bach-Eternal-Golden/dp/0465026567
      Stephen Hawking — https://www.biography.com/scientist/stephen-hawking
      William James — https://plato.stanford.edu/entries/james/
      Bertrand Russell — https://plato.stanford.edu/entries/russell/
      Barcelona Ruby Conference — https://twitter.com/baruco
      José Valim — https://twitter.com/josevalim
      Programming Elixir on Amazon — https://www.amazon.com/Programming-Elixir-1-6-Functional-Concurrent/dp/1680502999
      Dave Thomas — https://pragdave.me/
      ElixirConf — https://2020.elixirconf.com/
      ‘(UN)Learning Elixir’ — https://www.youtube.com/watch?v=o54EurlzK8o
      Bruce Tate — https://www.linkedin.com/in/bruce-tate-a836b/
      Grox.io — https://grox.io/
      Eric S. Raymond — http://www.catb.org/~esr/
      Stack Overflow — https://stackoverflow.com/
      Medium — https://medium.com/
      Engine Yard — https://www.engineyard.com/
      Douglas Crockford — https://www.crockford.com/about.html
      Yehuda Katz — https://www.linkedin.com/in/yehudakatz/
      Blake Mizerany — https://www.linkedin.com/in/bmizerany/
      The Pragmatic Studio — https://pragmaticstudio.com/
      Stuff Goes Bad: Erlang in Anger on Amazon — https://www.erlang-in-anger.com/
      Frederic Trottier-Hebert — https://www.linkedin.com/in/fredth/
      Stu Holloway — https://www.linkedin.com/in/stu-holloway-linvio/
      Paul Graham — http://www.paulgraham.com/
      Hackers and Painters on Amazon — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554
      Lonestar Elixir — https://lonestarelixir.com/
      Turing.io — https://turing.io/
      Sundi Myint on Twitter — https://twitter.com/sundikhin
      Justus Eapen on Twitter— https://twitter.com/JustusEapen
      Eric Oestrich on Twitter — https://twitter.com/ericoestrich

      Special Guest: Randall Thomas.

      54 min
    • Launchisode and Outlaws Takeover with Chris Keathley, Amos King, and Anna Neyzberg

      Welcome back to Elixir Wizards, season five, episode one! The theme for this season is ‘Adopting Elixir’, and for today’s show the team at Elixir Outlaws play host! Chris Keathley, Amos King, and Anna Neyzberg give the Elixir Wizards a chance to talk about what they love about Elixir, how they learned it, and some of their experiences using it at SmartLogic!

      We kick off the conversation with some memories of college and the different degrees everybody did, how these experiences fit into programming and the different paths that Justus, Eric, and Sundi took into the world of Elixir. From there, we dive into some of the amazing features about Elixir, highlighting pattern matching, readability, and how easy it is to think about how to write solutions to problems using it. Our conversation moves onto the topic of serving clients with Elixir, and here we consider the risk of basing a consultancy on one technology, as well as how open clients are to their needs being met with this young but powerful language. We also talk about training staff and convincing teams to adopt Elixir, covering themes of barriers to entry, the job market, and using the Elixir community as a resource. For a fun conversation about Elixir where our hosts take the mic as guests, be sure to tune in today.

      Key Points From This Episode:

      • Introducing this season’s topic and today’s plan where the hosts become guests.
      • How Justus, Eric and Sundi got introduced to Elixir and their respective journeys using it.
      • Everybody discusses their forays into programming and compares their different degrees.
      • Hustles Justus did at college to get tuition cheaper for his friends and him.
      • ‘Staking a consultancy on a tech’; how SmartLogic adopted Elixir initially.
      • How the first few clients SmartLogic served with Elixir felt about the language being used.
      • Sundi’s onboarding experience at CAVA and how she got introduced to Elixir.
      • How Justus discovered the beauty of Elixir after he began to understand pattern matching.
      • Sundi’s thoughts about hidden functionality in JavaScript code versus Elixir which reads better.
      • Whether using Elixir to solve problems feels easy due to familiarity or its inherent characteristics.
      • Conventions SmartLogic is implementing regarding using Elixir to build projects.
      • The lack of introductory resources for learning Elixir and the team’s attempts at making some.
      • The value of getting involved in your community for learning a new technology.
      • Find out the value of investing in staff training for companies who want to switch to Elixir.
      • A new wall between Dev and Ops in the form of Kubernetes.
      • How to get your co-workers to learn Elixir if you are passionate about it.
      • Growth at SmartLogic, new hires, and what they specialize in.
      • The job landscape in 2020 and how this relates to having Elixir under your belt.
      • Links Mentioned in Today’s Episode:

        SmartLogic — https://smartlogic.io/

        Chris Keathley on Twitter — https://twitter.com/chriskeathley
        Amos King on Twitter — https://twitter.com/adkron
        Anna Neyzberg on Twitter — https://twitter.com/aneyzb
        Sundi Myint on Twitter — https://twitter.com/sundikhin
        Justus Eapen — https://twitter.com/JustusEapen
        Eric Oestrich on Twitter — https://twitter.com/ericoestrich
        CAVA — https://cava.com/
        Pavlok — https://pavlok.com/
        Johnny Boursiquot — https://www.jboursiquot.com/
        ElixirBridge — http://elixirbridge.org/
        Matt Mills on GitHub — https://github.com/photomattmills
        Brooklyn Zelenca on Functional Programming — https://smartlogic.io/podcast/elixir-wizards/s3e9-zelenka/
        Bleacher Report — https://bleacherreport.com/
        LiveView by Bruce Tate — https://pragprog.com/titles/passlive/programmer-passport-liveview/

        Special Guests: Amos King, Anna Neyzberg, and Chris Keathley.

        57 min
      • Season Four Wrap: Whose Design Is It Anyway? with Swadia, Windholtz, Rezentes, and Keathley

        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.

          1 hr
        • Anna Sherman on Change, Failure, and living in Gig City

          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 protected]
            Craig Lyons Email — [email protected]
            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.

            36 min
          • Devon Estes on how Architecture Is a Myth and One-file Design

            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.

              49 min
            • Lizzie Paquette on Compiling, Microliths, and Macros

              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/Perry_Mason
                Matlock — https://www.imdb.com/title/tt0090481/
                Telemetry on GitHub — https://github.com/beam-telemetry/telemetry
                Phoenix LiveView on GitHub — https://github.com/phoenixframework/phoenix_live_view

                Special Guest: Lizzie Paquette.

                49 min
              • Eric Steen on Neuroevolution in AI

                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/the_steener
                  Webflow — https://webflow.com/
                  Automata GitHub — https://github.com/upstarter/automata
                  Automata on Slack — https://join.slack.com/t/automata-project/shared_invite/zt-e4fqrmo4-7ujuZwzXHNCGVrZb1aVmA
                  CryptoWise — https://www.cryptowise.ai/
                  Hippo Insurance — https://www.hippo.com/
                  Carl Hewitt — https://en.wikipedia.org/wiki/Carl_Hewitt
                  Stanford University — https://www.stanford.edu/
                  MIT — https://web.mit.edu/
                  Actor Model — https://en.wikipedia.org/wiki/Actor_model
                  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/Markov_decision_process
                  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.

                  50 min
                • Johnny Winn on Kitchen Secrets and Beautiful Coding

                  No one cares about clever code. Instead, people want code that works. Code that they can read six months down the line. Today we speak with Johnny Winn, who avoids writing clever code by following a clear vision — “Make it work, then make it beautiful, then if you really, really have to, make it fast.”

                  A Renaissance man, Johnny’s career ranged from cheffing to design before he settled into software engineering. Reflecting his many interests, we spend the first section of the podcast chatting about cooking. Johnny shares his kitchen secrets before seamlessly transitioning into the topic of coding. After touching on why clever code is bad code, we explore the trend of ‘componentizing,’ when your views are taken over by an endless array of components and folders. Like Johanna Larsson, a previous guest, Johnny makes a case for umbrella projects and explains why many of us have been using them incorrectly this whole time.

                  An enemy of dogma, Johnny emphasizes that teams should use what works best for them, and not what conventional wisdom suggests. Following this, we dive into imposing patterns on our architecture bases, how design patterns serve as communication tools, and why tribal knowledge leads to communication issues. Johnny brings his experience to bear and shares how he structures projects while limiting component creation. Near the end of the episode, Johnny talks about how he learned the cardinal sins of coding before leaving us with his final hot take on living a balanced life. So, tune in for a dynamic conversation where Johnny is as likely to share his smoked pork recipe as he is to deliver key coding insights.

                  Key Points From This Episode:

                  • Introducing Johnny Winn and why he’s been called a ‘Renaissance man.’
                  • How to cook the perfect steak or burger — don’t share this with anyone.
                  • Hear about what Johnny would cook if he needed to impress you.
                  • A recipe for the perfect smoked pork shoulder brine.
                  • Food wars; we debate what the best meat and sandwiches are.
                  • The inter-industry virtue of keeping things simple and why clever code is bad code.
                  • Exploring the trend of ‘componentizing’ everything to extreme levels.
                  • The case for umbrella projects and why most people are doing it wrong.
                  • Ignoring conventional wisdom and favoring approaches that best work for a team.
                  • Winging it versus adding too many components and nested file structures.
                  • How design patterns function as a way to communicate.
                  • Why developing tribal knowledge can lead to communication issues.
                  • Johnny’s mission when coding; “Make it work, make it beautiful, make it fast.”
                  • The method that Johnny uses to structure a project.
                  • Johnny’s advice for avoiding the cardinal sins of coding; write bad code in your side projects.
                  • The importance of living a balanced life and spending time with loved ones.
                  • Links Mentioned in Today’s Episode:

                    SmartLogic — https://smartlogic.io/

                    Johnny Winn on Twitter — https://twitter.com/johnny_rugger
                    Johnny Winn on LinkedIn — https://www.linkedin.com/in/johnnywinn5/
                    Elixir Fountain — https://twitter.com/elixirfountain?lang=en
                    Code Sync — https://www.codesync.global/
                    Code BEAM San Francisco — https://codesync.global/conferences/code-beam-sf/
                    Kerrygold — https://www.kerrygoldusa.com/
                    Kraft Macaroni & Cheese Deluxe — https://www.kraftmacandcheese.com/products/100166000004/deluxe
                    Annie’s Mac and Cheese — https://www.annies.com/products/mac-and-cheese/
                    Velveeta — https://www.myfoodandfamily.com/brands/velveeta
                    Shake Shack — https://www.shakeshack.com/
                    Dave Thomas — https://www.thoughtworks.com/profiles/dave-thomas
                    Phoenix — https://www.phoenixframework.org/
                    Chris McCord — http://chrismccord.com/
                    Johanna Larsson — https://blog.jola.dev/
                    Johanna Larsson Episode — https://smartlogic.io/podcast/elixir-wizards/s4e11-larsson/
                    The Pragmatic Bookshelf — https://pragprog.com/
                    Ecto — https://hexdocs.pm/ecto/Ecto.html
                    Pirates of the Caribbean: The Curse of the Black Pearl — https://www.imdb.com/title/tt0325980/
                    Joe Armstrong — https://joearms.github.io/#Index

                    Johnny’s Smoked Pork Shoulder Brine Ingredients —

                    Hot Water
                    Coconut Sugar
                    Kosher Salt
                    Smoked Paprika
                    Chili Powder
                    Granulated Garlic
                    Peppercorns
                    Bay Leaves
                    Cinnamon

                    Special Guest: Johnny Winn.

                    51 min
                  • Miki Rezentes on how it's APIs All the Way Down

                    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.

                    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/Turtles_all_the_way_down
                      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/The_Mythical_Man-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.

                      43 min
                    • ElixirConf 2020 Preview

                      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/wilton_quinn
                        ‘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/phoenix_live_view
                        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/debugger_chapter.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 18 min

                      About Elixir Wizards

                      From the publisher's feed

                      Elixir Wizards is an interview-style podcast from SmartLogic featuring conversations with developers, engineers, and industry leaders about the Elixir programming language and the broader software…