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)
Similar Podcasts
Flutter 101 Podcast
Weekly podcast focusing on software development with Flutter and Dart. Hosted by Vince Varga.
Elixir Outlaws
Elixir Outlaws is an informal discussion about interesting things happening in Elixir. Our goal is to capture the spirit of a conference hallway discussion in a podcast.
Remote Ruby
Three Rubyists having conversations and interviewing others about Ruby and web development.
Viktória Fördős on Erlang
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.
Simon Glenn-Gregg on Building an Election Results Prototype in Elixir
Today’s guest is Simon Glenn-Gregg, News Engineer at The Washington Post. He joins us to talk about using Elixir to build a prototype for a platform the news house recently implemented to visualize the results of the November 2020 elections in real-time. While the job title of ‘News Engineer’ makes it seem like Simon invents news, this is not the case. He is focused on software related to publishing at The Washington Post, and in particular, has been working on building their election visualization platform for the past two years. Before the final iteration of the platform was built, the software engineering team at The Washington Post were given a period to test different technologies as an experiment to find the best fit, and Simon decided to try his hand at Elixir and Phoenix. He talks about what led him to this choice, and his experiences building out his prototype which he demonstrated on a dataset generated by the North Carolina 3rd Congressional District house race in September. Simon tells us about how the pitch went, what the team at The Washington Post was especially impressed by, and what led to the choice to use Node in the end. Simon talks about the culture of openness to new technologies at The Washington Post as well as some of the limitations to their adoption. We also hear about how the final version of the visualization platform held up during the elections proper, and Simon’s plans to include Elixir in future stacks due to its amazing abilities as far as concurrency and memory. Tune in today! Key Points From This Episode: What kinds of projects Simon works on at The Washington Post as a ‘news engineer’. The live updating election visualizer that Simon was working on at The Washington Post. What went into building the infrastructure for this platform and how Elixir was chosen as a candidate. A blog post about Elixir’s memory management; abilities Elixir has regarding concurrency. The first steps Simon took toward learning Elixir and Phoenix by building simple projects. Simon’s process of integrating his Elixir app into the current stack and people at The Washington Post. Testing the app on the 3rd Congressional District house race in North Carolina, and pitching to the team. Why it is hard to implement projects in new languages at The Washington Post. How the voting process went after the pitch and which project won. What the audience at the pitch loved about Elixir, and what the stumbling blocks were. The nature of working at a deadline-driven place like The Washington Post when it comes to adopting new technologies. Sources The Washington Post used to get their election data. What technologies and methods the team used to handle the size of data some election moments generated. Which parts about the election visualizer that ended up being built using Node would have been easier to do in Elixir. The other side of the coin – what made writing the app in Python and JavaScript easier. What future projects Elixir might be better suited to at The Washington Post. Simon’s background, education, and how he learned programming in previous jobs Why Simon stuck programming out and decided it was the right path for him. The need for software engineers at The Washington Post and why they are recruiting so often. A deep dive into the tech stack at The Washington Post and how they render their pages and maps. How Simon feels having reached the end of a successful project that millions of people engaged with. Future projects at The Washington Post and Simon’s hopes to incorporate more Elixir. A funny story about having to manually update the votes from rural New Hampshire into the app. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Simon Glenn-Gregg on LinkedIn — https://www.linkedin.com/in/simongle/ Simon Glenn-Gregg — http://simonglenngregg.com/ The Washington Post — https://www.washingtonpost.com/ Jason Holt on Twitter — https://twitter.com/offpol ‘Elixir RAM and the Template of Doom’ — https://www.evanmiller.org/elixir-ram-and-the-template-of-doom.html Erik Reyna on LinkedIn — https://www.linkedin.com/in/erikreyna/ Jeremy Bowers on LinkedIn — https://www.linkedin.com/in/jeremyjbowers/ Associated Press — https://apnews.com/ Edison — https://www.edisonresearch.com/ Whole Whale — https://www.wholewhale.com/ The Century Foundation — https://tcf.org/ Arc Publishing — https://www.arcpublishing.com/ Sundi Myint on Twitter — https://twitter.com/sundikhin Justus Eapen — https://twitter.com/JustusEapen Eric Oestrich on Twitter — https://twitter.com/ericoestrich Special Guest: Simon Glenn-Gregg.
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.
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.
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.
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 — anna@myzillion.com Craig Lyons Email — craig@myzillion.com 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.
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.
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/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.
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/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.
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 (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.
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/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.
Mark Windholtz on Domain-Driven Design (DDD)
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.
Elixir Wizards Dojo: Nerves Part 2 with Connor Rigby and Todd Resudek
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.
Elixir Wizards Dojo: Nerves Part 1 with Frank Hunleth and Justin Schneck
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.
Greg Mefford on Nerves, Poncho vs Umbrella Apps, and Pre-Code Planning
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.