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)
Miki Rezentes on how it's APIs All the Way Down
According to an ancient myth, the world rests on the back of a turtle. And what does that turtle stand on? Another turtle. It turns out that it’s turtles all the way down. Miki Rezentes, today’s guest, believes that all software rests on the back of APIs. Similar to the myth, it’s APIs all the way down. We open our conversation by discussing how homeschooling her children did more to prepare Miki for a software career than anything else she’s encountered. Miki shares highlights from her talk, ‘APIs All the Way Down’. This set up this episode’s key theme, that the tech industry is too concerned with how its software interacts to focus on how the people in its organizations communicate — their ‘human APIs.’ Following this, we ask Miki how she learns people’s APIs and we talk about the benefits of observation and mirroring. Tracking her career, we touch on how Miki transitioned from a homemaker to a developer before diving into her recent work at the data science platform Mode. She provides unique insights into how she views architecture and design and why the concept of domain-driven design doesn’t go far enough. We chat about how you can see your team as customers to promote domain-driven design and then drill into what she does to create a ‘shared pool of knowledge’ with her team. As Miki explains, ‘people problems’ are more difficult than technical ones and developers often make mistakes by not first developing common understanding. Especially when this relates to expectations within a company. Near the end of the episode, we explore what leaders can do to maintain productivity when growing their teams. Tune in to hear what you can do to deepen your team’s pool of understanding and improve the quality of your communication.
Note: this episode was recorded in late July when Miki was working at Mode; she is now a Senior Software Engineer at Frame.io.
Key Points From This Episode:
- Why homeschooling her kids better prepared Miki for software development than anything else.
- How people within an organization express themselves through individual APIs.
- Understanding that people come from different backgrounds which influence their API.
- The ‘shared pool of knowledge’ and figuring out how to communicate with people.
- Miki’s journey from homemaker to becoming a software engineer.
- How nobody really knows what they’re doing.
- Security as a trade-off, privacy, and the power of two-factor authentication.
- Hear about Miki’s work at the data science platform Mode.
- What Miki enjoys most about working in Elixir and what she uses it for.
- How Miki sees architecture and the differences between architecture and design.
- Domain-driven design and the differences between data models and software.
- Treating your team ‘Agilely’ and seeing them as your customers.
- Miki’s process of developing a shared pool of understanding before hammering out the end-to-end components.
- Why ‘people problems’ are much more difficult than development problems.
- How tech companies misdiagnose ‘people problems’ as bad design.
- Conway’s Law and how code production reflects an organization’s structure.
- The importance of setting expectations to maintain productivity as a team grows in size.
- The danger of the Peter principle; when people are promoted to their level of incompetency.
Links Mentioned in Today’s Episode:
Miki Rezentes LinkedIn —https://www.linkedin.com/in/miki-rezentes-823ba02a/
Miki Rezentes GitHub — https://github.com/mrezentes
Miki Rezentes Twitter — https://twitter.com/mikirez
Mode — https://mode.com/
SmartLogic — https://smartlogic.io/
Elixir Wizards Survey — smr.tl/podcastsurvey
Manning Publications — https://www.manning.com/
‘APIs All the Way Down’ — https://www.youtube.com/watch?v=hBpbEsAG4es
Turtles all the way down — https://en.wikipedia.org/wiki/Turtles_all_the_way_down
Crucial Conversations — https://www.amazon.com/Crucial-Conversations-Talking-Stakes-Second/dp/1469266822
Thomas Edison State University — https://www.tesu.edu/academics/online-degrees
Xkcd — https://xkcd.com/
Toshiba Global Commerce Systems — https://commerce.toshiba.com/
Kroger — https://www.kroger.com/
CA Technologies — https://www.ca.com/
Jira — https://www.atlassian.com/software/jira
ICFP 2020 — https://icfp20.sigplan.org/
James Edward Gray II — https://github.com/JEG2
Helix Data Engine - Mode — https://mode.com/helix/
Practical Object-Oriented Design in Ruby — https://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330
Tanium — https://www.tanium.com/
Poodr — https://www.poodr.com/
Gödel, Escher, Bach — https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach
D'Aulaires' Book of Greek Myths — https://www.amazon.com/DAulaires-Greek-Myths-Ingri-dAulaire/dp/0440406943
The Mythical Man-Month — https://en.wikipedia.org/wiki/The_Mythical_Man-Month
Applying Conway's Law to improve your software development — https://www.thoughtworks.com/insights/blog/applying-conways-law-improve-your-software-development
Peter Principle — https://en.wikipedia.org/wiki/Peter_principle
Special Guest: Miki Rezentes.