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)
Johanna Larsson on Hex Diff, Domain Driven Design, Umbrella apps, and more
Johanna Larsson is a community-minded software engineer whose project, Hex Diff, generates highlighted git diffs, right in your browser. In this episode, we talk to Johanna about how Hex Diff can benefit Elixir users, the differences between code architecture and code design, and the debatably under-appreciated role of Elixir umbrella apps. We start the conversation by chatting with Johanna about her recent move to London and her work for Duffel; a startup helping travel agencies book trips. After talking about how she got into software development, we dive into Hex Diff versus GitHub, with Joanna detailing how Hex Diff offers greater security for your code. We ask Johanna about the origins of the Hex Diff project and she explores its aims and her experiences working on the project. In line with this month’s theme, we discuss what architecture means to Joanna and the need for domain-driven design. We quiz Joanna on her approaches to problem-solving and she explains how her coding process emphasizes building an early prototype and constantly iterating on it. Despite hearing that umbrella apps are bad news, Joanna makes a case for their value while acknowledging how that they need greater tooling. We round off our conversation by asking Joanna how she tries to grow her skillset and what her favorite Elixir resource is. Following our discussion with Johanna, we open with another edition of Pattern Matching with Todd. This week, friend of the podcast Todd Resudek asks five questions of Elixir community member Bruce Williams. They talk about Bruce’s work as an Arabic cryptologic linguist for the US Airforce, his software career, and the therapeutic uses of playing Animal Crossing during a pandemic.
Key Points From This Episode:
- We introduce Johanna Larsson and she shares how she is doing in London.
- How Johanna developed a love for software and how Elixir brought her to London.
- Details about Johanna’s job at Duffel; a startup that helps travel companies book trips.
- How Hex Diff is solving problems that arise when using code from GitHub.
- Johanna’s experience working on Hex Diff and the problems that they aim to solve.
- Hex Diff’s caching system and what Hex Diff does to counter malicious software uploads.
- The disconnect between system architecture and implementation.
- Johanna’s view on the differences between code design and code architecture.
- Why domain-driven design increases usefulness to the end-user.
- How Johanna approaches a problem and her steps when building code.
- Hear what key lesson Johanna learned from her latest big project.
- Johanna’s experience with umbrella apps and why they need tooling functions.
- How working in a strong team can motivate you and help grow your skill set.
- Why the Elixir Slack group is Johanna’s favorite tool.
- Why you should check out Hex Diff; it’s a great introduction to Elixir.
- This edition of Pattern Matching with Todd; Todd Resudek interviews Bruce Williams.
Links Mentioned in Today’s Episode:
Johanna Larsson — https://blog.jola.dev/
Johanna Larsson LinkedIn — https://www.linkedin.com/in/joladev/
Johanna Larsson Twitter — https://twitter.com/joladev
SmartLogic — https://smartlogic.io/
ElixirConf — https://elixirconf.com/2020
SharePoint — https://www.microsoft.com/en-us/microsoft-365/sharepoint/collaboration
Duffel — https://duffel.com/
Stripe — https://stripe.com/
Hex Diff — https://diff.hex.pm/
Hex Diff GitHub — https://github.com/hexpm/diff
Maciej Mensfeld — https://mensfeld.pl/
Diffend — https://my.diffend.io/
Wojtek Mach — https://twitter.com/wojtekmach
Eric Meadows-Jönsson — https://twitter.com/emjii
Todd Resudek — https://twitter.com/sprsmpl
Announcing Hex Diff — https://hex.pm/blog/announcing-hex-diff
Hex Core GitHub — https://github.com/hexpm/hex_core
Hex Diff Phoenix — https://diff.hex.pm/diff/phoenix/1.5.2..1.5.3
The Design of Everyday Things — https://www.amazon.com/Design-Everyday-Things-Revised-Expanded/dp/0465050654
Brooklyn Zelenka LinkedIn— https://www.linkedin.com/in/brooklynzelenka/
Unified Modeling Language — https://en.wikipedia.org/wiki/Unified_Modeling_Language
Elixir v. 1.10.4 Mix CMD — https://hexdocs.pm/mix/Mix.Tasks.Cmd.html
Elixir v1.11 Forum Post — https://elixirforum.com/t/elixir-v1-11-will-be-released-in-october-2020/31535
Rustler GitHub — https://github.com/rusterlium/rustler
Live View —https://blog.codepen.io/documentation/live-view/
Bruce Williams — https://www.linkedin.com/in/wbruce/
Absinthe — https://absinthe-graphql.org/
Untitled Goose Game — https://goose.game/
Stardew Valley — https://www.stardewvalley.net/
Myst — https://cyan.com/games/myst/
Blanco White — https://www.blancowhite.info/
Groundhog Day — https://www.imdb.com/title/tt0107048/
Animal Crossing — https://www.animal-crossing.com/
Special Guest: Johanna Larsson.