Simplifying The Inventory Management Systems at the World’s Largest Retailer Using Functional Programming Principles with Scott Havens
Description
In this episode of The Idealcast, Gene Kim speaks with Scott Havens, who is the Director of Engineering at Wayfair, where he leads Engineering for the Wayfair Fulfillment Network. Havens is a leading proponent of applying functional programming principles to technical and organizational design. Previously, Havens was the architect for Walmart's global omnichannel inventory system, unifying availability and replenishment for the largest company in the world by revenue.
Havens shares his views on what makes great architecture great. He details what happened when an API call required 23 other synchronous procedures calls to return a correct answer. He discusses the challenges of managing inventory at Wal-Mart, how one implements event sourcing patterns on that scale, and the functional programming principles that it depends upon. Lastly, he talks about how much category theory you need to know to do functional programming and considerations when creating code in complex systems.
Before listening to this interview, please listen to Episode 22, which provides Scott Havens's 2019 DevOps Enterprise Summit talk with commentary from Gene Kim.
ABOUT THE GUEST(S)
Scott Havens is a Director of Engineering at Wayfair, where he leads Engineering for the Wayfair Fulfillment Network. Scott cares deeply about scalable data-intensive software systems; he is a leading proponent of applying functional programming principles to technical and organizational design. Previously, Havens was a Director of Engineering at Jet.com and was the architect for Walmart's global omnichannel inventory system, unifying availability and replenishment for the largest company in the world by revenue.
In his home life, Havens enjoys good food, good wine, bad movies, and asking his daughter to stop "redecorating" his Minecraft castles, pretty please.
LinkedIn: https://www.linkedin.com/in/scott-havens/
Twitter: @ScottHavens
Email: scott@sphavens.com
YOU’LL LEARN ABOUT
- His views on what makes great architectures great
- The details on what happened when an API call requires 23 other synchronous procedures calls to return a correct answer
- How one implements event sourcing patterns on a large scale, using Wal-Mart as an example, and the functional programming principles it depends upon
- The challenges of managing inventory at Wal-Mart
- How much category theory to know to do functional programming
RESOURCES
- Currying
- Function composition (computer science)
- Idempotence
- Love Letter To Clojure: And A Datomic Experience Report - Gene Kim
- Side effect (computer science)
- Functional Geekery Episode 129 – Eric Normand
- Theory of Functional Programming skill
- Ruby Conf 12 - Boundaries by Gary Bernhardt
- Functional Design in Clojure Podcast - Ep 021: Mutate the Internet
- Lean Summit 2013 - Art Byrne - What does it take to Lead a Lean Turnaround?
- Thoughts On Functional Programming Podcast - 3 Examples Of Algebraic Thinking
- CORECURSIVE #050 - Portal Abstractions with Sam Ritchie: How abstract algebra solves data engineering
- Adam Grant’s tweet about coding
TIMESTAMPS
[00:24 ] Intro
[02:23 ] Meet Scott Havens
[03:48 ] How architecture fits in functional programming
[04:48 ] Event source systems at Wal-Mart
[19:45 ] The effects and behaviors
[22:36 ] Duality of code and data
[26:13 ] Currying
[32:34 ] How the 23 service teams’s world change
[40:56 ] Hallmarks of great architecture
[51:10 ] How he replaced the dominant architecture at Wal-Mart
[56:46 ] Configurations and speculations with couplings
[1:03:51 ] How can simple systems suffer from problems like this
[1:09:11 ] Idempotence, Clojure and side effect
[1:17:01 ] Issues with switching to event-driven asynchronous architectures
[1:25:15 ] Vast scale in which these organizations operate in
[1:29:54 ] A moment that showed Scott the effects of what he helped create
[1:33:51 ] Onboarding new engineers to the new system
[1:45:11 ] Working in the Windows 3.1 multicast networking group
[1:47:32 ] Reflection on Moda Operandi experience
[1:52:11 ] Advice to someone who wants to replicate Scott’s journey
[1:56:17 ] What to understand about category theory and algebraic thinking
[2:01:11 ] How to contact Scott
[2:02:48 ] Outro