Functional Geekery Episode 128 – Gene Kim

In this episode I talk with Gene Kim. We talk his introduction to Clojure and functional programming, The Phoenix Project and The Unicorn Project, Functional Architecture, lessons learned, his Love Letter to Clojure, and much, much, more.

Our Guest, Gene Kim

@realgenekim on Twitter
realgenekim on LinkedIn

Conference Announcements

Lambda Days 2020 will be on the 13th and 14th of February in Kraków, Poland. Visit to find out more and to register.

Code BEAM SF is taking place on March 6th and 6th. For more information visit:

Elm in the Spring will be taking place May 1st. Check in at to keep updated as more information gets announced.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.


Some of you have asked how you can support Functional Geekery, in that vein, Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can find out more at

Topics [@2:51]

About Gene
State of DevOps Report
The Phoenix Project
The DevOps Handbook
The Unicorn Project
Love Letter to Clojure (Part 1)
Ops being where the saves were made
Gene Spafford
Morris worm
90% of his errors go away when using Clojure
What put Clojure on his list to pick up
Ruby Reference Manual
How Ruby strings aren’t immutable
Reading a Clojure book and bolting upright in bed finding out that Ruby’s << operator modifies the right hand side array
Java Concurrency in Practice
Object Oriented Software Construction
Immutability and Value Object in Object Oriented style
Working in the REPL in Clojure
Writing a vacation notifier for Gmail
Rewrites note taking and tweeting app a number of times
Objective C
TypeScript and React
Clojure and re-frame
Data is immutable, but the program is very mutable
Flow by Mihaly Csikszentmihalyi
Flow, the secret to happiness Ted Talk
Peak by Anders Ericsson
Deliberate Practice
Grit by Angela Duckworth
Have a coach; Do practice
David Koontz on Functional Geekery
Functional Design in Clojure podcast
JavaScript tooling environment
Cats library
How has Clojure refreshed Gene’s thinking when going back to older programs
Maxine in The Unicorn Project
Micheal Nygard
How did the scenes resonate to Proctor
Brian Lonsdorf on Functional Geekery
David Chambers covering Ramda on Functional Geekery
Seeing the shape of the data
Some form of a combination of map, filter, reduce
“Is it good to think with”
Sapir-Whorf hypothesis: Language affects worldview of the speakers
Eric Normand on thinking in types based off experience in Haskell
Grokking Simplicity
Actions, Calculation, Data
Simon Peyton Jones on Functional Geekery
Dr. John Launchbury
Creating Word-Cloud from bibliography and replacing “Ibid.” problem
“What are the types of input and output?”
“What is the correct answer when you have just one element ‘Ibid.’?”
How much did Functional Programming and data-focus opting to write The Unicorn Project
Studying Rich Hickey videos
Rich Hickey’s 2015 JavaOne presentation
Lunch Factor: How many people do we need to take out to lunch to get something done?
“How do you get data where it resides […] to where developers can use it in their daily work”
Event Sourcing
Self Identifying as a Developer after 25 years
Gene’s current view on Functional Architecture
Scott Havens (of and presentation on turning 23 API calls to 2 API calls
Scott Havens’ talk about rebuilding Kafka servers
The 5 Ideals:

  • Locality and Simplicity
  • Focus, Flow, and Joy
  • Improvement of daily work
  • Psychological Safety
  • Customer Focus

Project Oxygen at Google
Core vs Context
Excepts of the first 60% of The Unicorn Project
First 8 chapters as Audiobook format
Fernando Cornago – Adidas talk on data availability across the organization
Clojure Conj
Gene’s presentation at Clojure Conj

As always, a giant Thank You goes to David Belcher for the logo design.