Jared Norman

A Blog Series on Software Design

August 14, 2019

I just finished reading John Ousterhout’s A Philosophy of Software Design. I found it to be a deeply engaging read that challenged many concepts that I’d previously accepted regarding good software design.

While the examples in the book are in Java and C++, the concepts are independent of language and paradigm. His design philosophy is just as applicable to object-oriented programming as it is to functional or even declarative languages.

Because the book challenges much of the “conventional wisdom” I’ve built up as a long-time Rubyist, I’ve decided to write a series of articles outlining what the Ruby community might stand to learn from Ousterhout’s design philosophy over on the Super Good website. Expect the first post next week!


Comma separated list of identities disguised as a human. founder of @SuperGoodSoft • software developer • rubyist • @SolidusIO core team • metalhead • bad at hockey • runner • dog lover • not actually grumpy • he/him