Paul Chiusano

Functional programming, UX, tech, econ


Consulting services

I offer Scala and FP consulting services. If you're interested in working together, please contact me.

About my book

My book, Functional Programming in Scala, uses Scala as a vehicle for teaching FP. Read what people are saying about it.

Popular links

Unison: a next-gen programming platform the worldwide elastic computer (coming soon)
Type systems and UX: an example
CSS is unnecessary


First: a story. Alice and Bob are sent to an earth-like planet and given the task of finding its highest point. Unfortunately, they are initially given only stone-age era technology to work with. The planet is foggy and visibility is only 20 feet or so. Alice and Bob adopt different approaches:


Compositional machine learning

Some random notes I wrote for myself.


If Haskell is so great, why hasn't it taken over the world? And the curious case of Go.

Programming is all about managing complexity. Without good tools to manage it, the complexity of programs becomes mentally intractable for our limited brains and we’d lose control and understanding of our programs (imagine writing a big software system entirely in assembly language).


Help wanted: chat with me about your experience building in the cloud

I’d like to learn more about people’s experiences building larger backend software systems (say > 5 nodes), either atop some public cloud (like AWS, Google, or Azure) or atop private cloud infrastructure. Having done work myself in these areas, I know that it can sometimes be painful and/or complicated, and there are lots of different technologies aimed at making it easier.


The design failures of view-first

This post advocates a design philosophy I’m calling view-inspired, model-driven. We’ll look at a domain, task-tracking and project management, and examine the failure of an alternate philosophy, ‘view-first’, using Trello as the case study. I don’t mean to pick on Trello specifically, because once you are on the lookout for it, you can see the symptoms of view-first design in many applications.