Functional Geekery Episode 131 – Martin J. Logan

In this episode I talk with Martin J. Logan. We talk his experience in CTO roles guiding organizations through functional programming transformations, from lessons learned, tips, tools, strategies, how the grassroots level can help, and much more.

Our Guest, Martin J. Logan

@martinjlogan on Twitter

Discount Code from Manning

Reminder that as part of last episode Manning has offered listeners of the podcast a permanent 40% discount code, good for any of their products, in all formats.

Use code podgeekery20 for your 40% discount.

Conference Announcements

Elm Conf is going virtual! Taking place July 15th-17th in your home. The Call for Talks is open and early bird registration has started. Find out more at

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 [@1:40]

Welcome Martin
Martin on Episode 13
Erlang Camp
Lambda Jam 2014 – Design and architecture for actors
[Designing for Actor Based Systems blog post)[]
Being a CTO and bringing functional programming into organizations
Guaranteed Rate
William Hill
A first attempt on .NET with F#
Next attempt using Clojure
“My bet was that there are more smart and talented individuals that want to learn functional programming then there are companies smart or brave enough to give it a try”
Opening up the organization to be more polyglot
Wanting at least one Anchor to teach and mentor the group
Why Clojure was good
Being on the JVM.
“We’re doing Java […] its basically Java, it runs with Java, it interoperates with Java”
Lessons learned from the F# going into Clojure
Commitment of investing through the slowdown to get faster
What helps at at the grassroots to help with a transformation
Participation, Mentoring, Someone willing to help work through exercises with people
Real projects to work on
How to think about limiting the talent pool on the bet for being a functional programming shop
How big of a community are you really looking to build
Being exciting enough to get people from Cognitect working who worked on Clojure
Training and seeding teams
Having the light bulb go off and not wanting to leave and have to go back to other languages
Small team (4-6 people) with single anchor for about 6 months to build a team
Allowing those team members to go out to seed new teams
The fear moves away and people want to learn Clojure
ClojureScript being pulled into the front-end browser flows
Clojure University
Importance of the Install Party to get a high quality development environment setup
Clojure Essentials
Functional Programming patterns similar to Object Oriented Patterns
Doing it again at William Hill with Scala
Avoiding the same bad habits in Java
Scala community being steeped in Category Theory
“Scala will expose you everything you get out of Haskell on the JVM”
Streams in Scala
Helping to make the ground more fertile for a functional transformation
Pointing at other successful organizations
Languages on the JVM help
Helping find an anchor
Working to make it really successful
Focus on the business value and minimize the risks
“Don’t make it just a learning project but a delivery project as well”

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


Functional Geekery Episode 13 – Martin J. Logan

In this episode I talk with Martin J. Logan. We cover his experience with Erlang, why OTP, his book Erlang and OTP in Action, designing processes in an actor based system, Erlang Camp and more.

Our Guest, Martin J. Logan
@martinjlogan on Twitter
@erlangcamp on Twitter
@erlware on Twitter


Martin’s Background
Why Threads are a Bad Idea by John Ousterhaut
How was the adjustment to learning Erlang
Why Object Oriented Programming never made sense as taught
Erlang as an Object Oriented language
Pattern matching, binary streams, and gen_fsm behavior
How Martin was able to stay in Erlang since 1999
Learning Erlang through the mailing list
How the Erlang community has evolved over time
Erlang and OTP in Action
Motivation of writing Erlang and OTP in Action
Why they took the approach to Erlang and OTP in Action they did
Martin and his co-authors as Mr. Miyagi teaching Erlang and OTP
Reticular activation
Practicality as the goal of the book
Ability to distribute systems
Location transparency in Erlang
Aptness of metaphor of Erlang processes as “micro-services”
How to determine right granularity of Erlang processes
Library applications and active applications
Designing for Actor Based Systems
Processes modeled as truly concurrent activities
Erlang Camp
Chicago Erlang user group
“At the end of this user group we are going to announce we are having a conference in the fall”
Teach basics of Erlang and dive into Erlang in two intense days
Repeat attendees help to coordinate the next Erlang Camps
Chicago Erlang Conference
Garrett Smith
LambdaJam from Alex Miller and Dave Thomas
Possibility of a second edition of Erlang and OTP in Action

A giant Thank You to David Belcher for the logo design.