I've written a few books over the years.

Exceptional Ruby

A deep dive into Ruby error handling. Not just a technical manual, in this book I attempt to identify some broad architectural principles for robust error management.

Confident Ruby

A book about joy. It’s about the joy I found when I first discovered how elegantly and succinctly I could state problems in Ruby code. It’s about the joy I gradually lost as the “real world” snuck in and cluttered my code with distracting edge case scenarios, error handling, and checks for nil. And it’s about how I came to recapture that joy, by employing small patterns and stylistic choices to make each method tell a coherent story.


Objects on Rails

A (rather dated) exploration of how to embrace object-oriented principles for extensability, without departing entirely from the “Rails way”.