About
I went to college for philosophy and linguistics, and once believed I would spend my adult life doing morphological analysis of Native American languages, writing papers about generative syntax and verb valencies and the like, and tussling with other academics . Needing a vacation from graduate school, however, I moved to Japan to teach English for three years and discovered that my real passion is teaching. So I was intrigued when a person I met on Twitter wanted to experiment on me: the Haskell programming language is said to be difficult to learn and difficult to teach, and he wanted to teach me Haskell with the aim of eventually writing a book that would introduce Haskell so well that even someone with no prior programming experience – that’s me! – could learn it. Over time, that book became Haskell Programming from First Principles, and I was one of the two co-authors. Rather than become a Haskell developer, though, I’ve continued writing, speaking, and teaching the Haskell language at meetups and workshops around the world. I’m a co-founder of the Haskell education site Type Classes and my most recent book is called Finding Success (and Failure) in Haskell. I live in Montana, where I homeschool my two children, grow a big garden, and keep far too many pets.
I am now writing The Joy of Haskell series of books as well. I founded Joy of Haskell and Type Classes with Chris Martin.
I’m interested in helping people learn to create technology. I care a lot about making math and (mostly functional) programming accessible and approachable to all. To that end, I create books, blog posts, and documentation. You can support my work by being friendly on Twitter or more concretely via:
Talks
GHCi Helps Those Who Help Themselves Invited workshop at LambdaWorld Seattle 2018. This workshop covers strategies for entering into friendly dialogue with GHCi to gain insight into your code. Sadly, this was not recorded.
The Unreasonable Effectiveness of Metaphor Invited keynote at Compose :: Melbourne 2018. This keynote is all about metaphor and how metaphor gave birth to mathematics.
At Monadic Party I gave a six-hour workshop entitled A Gentle Introduction to Profunctors over the course of three days. You can view the videos.
At ZuriHac 2018 I gave a six-hour workshop on beginner Haskell that was streamed live. You can view part one here and part two here.
A Parliament of Functors Invited talk at LambdaSquared 2018. This mostly focused on contravariance and was turned into an article for Type Classes.
A Monoid for All Seasons Keynote at Haskell eXchange 2017. This is a historical, beginner-friendly introduction to monoids and semirings.
Teaching Haskell for Understanding Invited keynote at ZuriHac 2017. As the title suggests, this is focused on how I teach Haskell and relates it to work on teaching mathematics.
Applicative Parsing Invited workshop at LambdaConf Winter Retreat 2017. Covers the differences between
Applicative
andMonad
and works through an example of applicative-style parsing usingoptparse-applicative
. The first portion of this talk was the origin of what eventually became my book Finding Success (and Failure) in Haskell.