Elixir Wizards cover image

Elixir Wizards

Latest episodes

undefined
Dec 22, 2020 • 47min

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/gen_server.html Erland Reference Manual — https://erlang.org/doc/reference_manual/distributed.html 4 Using TLS — https://erlang.org/doc/apps/ssl/ssl_distribution.html Erland System Limits — http://erlang.org/doc/efficiency_guide/advanced.html#system-limits Hexdocs — https://hexdocs.pm/elixir/String.html#to_existing_atom/1 RefactorErl — https://plc.inf.elte.hu/erlang/ Pipedream on GitHub — https://github.com/PipedreamHQ/pipedream/blob/master/components/github/readme.mdSpecial Guest: Viktória Fördős.
undefined
Dec 17, 2020 • 37min

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/ericoestrichSpecial Guest: Simon Glenn-Gregg.
undefined
Dec 10, 2020 • 53min

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/ericoestrichSpecial Guest: Randall Thomas.
undefined
Dec 3, 2020 • 57min

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.
undefined
Oct 15, 2020 • 59min

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.
undefined
Oct 8, 2020 • 35min

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-snowSpecial Guest: Anna Sherman.
undefined
Oct 1, 2020 • 49min

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.
undefined
Sep 24, 2020 • 48min

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_viewSpecial Guest: Lizzie Paquette.
undefined
Sep 17, 2020 • 49min

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.
undefined
Sep 1, 2020 • 42min

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_principleSpecial Guest: Miki Rezentes.

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode