I've written a few books...
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.
A book about joy: The joy I found when I first discovered how elegantly and succinctly I could state problems in Ruby code. 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 how I came to recapture that joy, by employing small patterns and stylistic choices to make each method tell a coherent story.