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 https://2020.elm-conf.com.
If you have a conference related to functional programming, contact me, and I will be happy to announce it.
Announcements
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 https://www.patreon.com/fngeekery.
Topics [@1:40]
Welcome Martin
Erlware
Martin on Episode 13
Erlang Camp
Lambda Jam 2014 – Design and architecture for actors
[Designing for Actor Based Systems blog post)[http://blog.erlware.org/designing-for-actor-based-systems/]
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.