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
What is FP? (book intro)
Type systems and UX: an example
CSS is unnecessary

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.


The advantages of static typing, simply stated

This post summarizes the advantages (and drawbacks) to static typing, as simply as possible. None of these arguments are new or my own, but I wanted to consolidate them in one place.


Needlessly confusing names

Names and the little details of an API matter. I’m going to pick on one small example I came across recently. In unagi-chan, a very fast lock-free queue implementation, we have the following API:


What are you actually going to do about it?

There are lots of things that could be improved about the world, and many things to be unhappy about. You’ve probably got a long list of such things, like everyone else. Now, what are you going to do about them? No, really, what are you going to actually do?