Your Cart
3 reviews

Software Design Simplified - Ruby on Rails Edition

On Sale
Select license type
Added to cart

An introduction to designing software for curious, driven engineers.

Stop me if this sounds familiar.

As you're coding, you find yourself thinking:

I know this code isn't right but I don't know a better way.

Well, there is a better way. The problem is, software design is hard.

And what's worse, most technical books that try to explain this subject are boring, long, waffly, vague and use unrealistic toy examples.

This is the book I wish I'd had when I was a junior software engineer.

Plain English

Single sentence explanations your Mum could (nearly) understand. I ditch the jargon and complicated fancy words.

Quick Read

I've made every word earn it's keep. No stories about obscure historical figures, no filler fluff, no longwinded rants.


A technical book with just enough personality to keep you reading, but not so much that it obscures the point.

Example Led

I use one realistic example throughout the book to teach design principles. No weird UML diagrams. No useless abstract analogies.


Explanations of coupling, encapsulation, polymorphism and abstraction in the context of a real web application.


Written in a style designed for modern attention spans and modern languages. Examples are in Ruby.

Photo by Ricardo Gomez Angel on Unsplash

Customer Reviews

Write a Review


Verified Buyer

3 months ago

Great book, packed with wisdom

I LOVE the practice > theory aspect. It gets straight to the point without any fluff.

The code “tells a story”, and the git diff style makes the story progression easy to follow.

I especially like the recap section at the end; it gives the book tremendous reference value.

I'd definitely recommend this book to any junior or mid-level engineers!

Renato C.

Verified Buyer

3 months ago

Great for engineers that value their time

One of the highest compliments I can offer this book is its unwavering respect for the reader's time. Every paragraph is delivering value and indispensable context on design principles.

I breezed through its pages in just a weekend. Now, whenever I'm stumped by problematic code, I remember to envision my ideal "dream code." This provides clarity and a tangible goal, which I can make incremental progress towards.

This invaluable insight is but one of the many lessons in this book that made my day-to-day more enjoyable as a software engineer.

Clare ).

Verified Buyer

4 months ago

Great read

Explained so well, with no garbage added in to bulk it out.