Mount Rainier from Mailbox Peak, WA


Programming, tools and process are stuck in the past, held in place by hoards of OO-wielding proletariats collectively chanting “good enough”.

Let’s find a better way.

We are inundated with programming posts of varying quality. This is a curated list of only the best or most important I’ve come across.


  • Isaac Asimov Asks, “How Do People Get New Ideas?” — An insightful essay on the fragile process of creativity by the brilliant science fiction writer.

  • Complexity and Learning (2011) — The view on learning and applying knowledge described here is one I’ve long held and argued for. This post uses an intuitive anaology of runtime complexity to describe learning a concept and the cost of applying it over time.

Functional Programming

  • Learn You a Haskell for Great Good! by Miran Lipovača — Have you read a million monad tutorials and still don’t get it? This was the case for me and learning Haskell is what made it finally click. As a bonus, this book is also hilarious and brilliantly written and illustrated; one of my all time favorites.

  • Category Theory for Programmers — I’ll be working through this for quite a long time, but it’s mind blowing and very challenging so far.

  • Functional Programming in Scala by Paul Chiusano and Rúnar Bjarnason — Many of my topics and ideas came from this book.

  • Learning Scalaz — This series of blog posts loosely follows LYAH and introduces Scalaz’ equivalents to many of Haskell’s classes.

Distributed Systems

  • Raft: Understandable Distributed Consensus - amazing and inspiring data visualization of the Raft consensus algorithm. Even if you’re not interested in Raft itself, go through this because it demonstrates so well the power of visualization in understanding complex interactions. (How can we get this level of quality in our own systems’ documentation?)