Functional Geekery Episode 113 – Oskar Wickström

In this episode I talk with Oskar Wickström. We talk his introduction to software development, journey to functional programming, tooling, state machines and static typing, and more.

Our Guest, Oskar Wickström

@owickstrom on Twitter
owickstrom on Github

Conference Announcements

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit

Clojure SYNC will be taking place in New Orleans on February 15th & 16th of 2018. For more information and to register visit:

LambdaDays 2018 will be taking place February 22nd and 23rd in Kraków, Poland. For more information, and to register, visit

BOB 2018 is coming up in Berlin, Germany on February 23rd, 2018. For more informationa, and to register, visit

:clojureD will be following BOB 2018 in Berlin, Germany on February 24th, 2018. For more information, and to register, visit

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:35]

About Oskar
How Oskar moved from music to programming
PHP for a band website
What made software become more interesting to move into development
What made to move to looking into other languages
Object-Oriented Programming in PHP
C# and .NET
“Absorbing every advice from people that I respected”
How Oskar was exposed to Haskell
Learn You A Haskell
Programming Scala as Java, but with a better syntax
What were the “Ah-Ha” moments when starting to learn Haskell
Static-Dispatch in Haskell vs Dynamic-Dispatch in Java
Implementing an Event Store
Event Sourcing
Making the move from Haskell in side projects to working in Haskell
Functional JavaScript
Reactive Programming
Implementing functional ideas from Haskell to JavaScript
Giving mini-trainings on functional programming concepts
Dual Feedback loop between play projects and applying to work problems
First work project in Haskell
Go language
Using a language to deliver small tooling for yourself
Trying to use the best tooling
How Oskar thinks about picking tooling
The Unix Philosophy of “doing one thing and one thing well”
PureScript middleware like Express and Connect in Node.js
Representing middleware as a state-machine verified by a type system
Why run PureScript in a Node.js environment?
“That’s a question I always get asked when people ask me about Hyper”
Row Polymorphism
Migrating an existing Node.js app to PureScript
Hardy Jones mentioning purerl on Magic Read Along
Overview of upcoming talk “Finite State Machines – Your Compiler Wants In”
“This is a very nice hammer, but you don’t want to apply it everywhere”
Haskell eXchange 2018

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