Refactoring Rails by Chris Oliver

Refactoring Rails

Ship like your Rails app is still brand new

If you've worked on a Rails app for a while, chances are you've seen your development speed slow down.

Some of this is inevitable—as the number of features goes up, adding more tends to get harder. However, smart programming decisions can delay this slowdown, and that's what this course is all about.

I've been writing and maintaining Rails apps for 8 years (including 6 at thoughtbot). This course contains the hard-won wisdom I wish I'd had when I got started.

About Me

I'm Ben Orenstein.

You might recognize me as the creator of Refactoring from Good to Great, or How to Talk to Developers.

I spent the last 6 years working at thoughtbot in Boston, where we obsessed about code quality and keeping shipping speed high. In a way, Refactoring Rails is the distillation of the best ideas I took from my time there.

What's included?

Video Icon 10 videos File Icon 1 file


Refactoring Rails
19 mins
14 mins
Form Objects
21 mins
Page Objects
18 mins
Slow Tests
24 mins
Tell, Don't Ask
18 mins
Testing Best Practices
19 mins
Grab Bag
19 mins
Bonus Content
Refactoring the Rubocop Linter GitHub Action script
22 mins
Refactoring Devise Masquerade
18 mins
Code and Notes
3.61 MB


I've seen some of what Ben is putting together and it's REALLY good. Rails Devs: You should check it out!
Josh Doody
I would highly recommend Ben Orenstein's Refactoring Rails course if you want to level up your Rails skills!
Arumoy Shome


Who is this for?

Developers who have seen their shipping speed slow down due to the technical complexity in their Rails app(s).

What are the videos like?

Tons of live coding. You'll learn from the core content of the videos, but also seeing how I tackle problems, perform TDD, use my editor and recover from errors.

How many videos are there?

The course consists of 8 videos. Total runtime is about 2.5 hours.

Is this course for beginners?

Not this time. The skill level varies from intermediate to advanced. Familiarity with Rails is assumed.