Blog posts and books can make refactoring look easy. "Here's the synthetic example, now use X scripted transformation." Unfortunately, codebases in the wild do not come with the right refactoring patterns hyperlinked.

In this course you be introduced to techniques and tools to help you decide where to begin refactoring in a large, legacy codebase. You will practice moving those first shovel-fulls of code without triggering an avalanche of test failures.

We will practice identifying issues, explore strategies to attack them, and put them into practice. This is not a walk-through of every refactoring in the cannon; this is practical application of great techniques

What You’ll Learn

In this online course you will refactor real production code that is ripe with code smells, tight coupling, leaky encapsulation, and missing abstractions.

  • Getting Started: How to explore a large code base
  • Design: Practice identifying refactoring targets
  • Testing: How to ensure that your tests have your back
  • Refactoring: How to safely reshape your application using step-by-step transformations

What’s In a Class?

This is not “sit back and watch slides” — all Jumpstart Lab courses are hands-on. We work with real applications and you’ll implement these tools and techniques yourself. By the end of the class, you’ll have real experience, real skills, and real code to reference.

Who’s this for?

This course is built for experienced developers who feel comfortable with Ruby and Rails.

What equipment is needed?

For this session you'll need:

  • a computer with Mac, Linux or Windows
  • Ruby 2.0 and Rails 3.2 and 4.0 installed
  • The local client installed
  • a stable internet connection for video streaming
  • external headphones and microphone
  • a webcam

Detailed setup instructions will be sent out a week before the class takes place.

Who we are

We have the most experienced instructional team in the Ruby/JS world. Learn more about us.

  • Nick Gauthier
  • Jeff Casimir
  • Franklin Webber
  • Katrina Owen
  • Steve Klabnik

As always, this class is backed by our 110% money-back guarantee.

Learn a new skill

Jumpstart Lab offers training in fundamental, intermediate, and advanced levels of Ruby, Rails, JavaScript, jQuery, Backbone.js, ExtJS, HTML5/CSS3, and Git. Email for more information or checkout the courses page.



This online class runs across three days of two sessions each.

Day 1 Day 2 Day 3

Design & Refactoring fundamentals

  • Single Responsibility Principle
  • Code Smells
  • Characterization Tests
  • Refactoring Techniques

Extracting Domain Objects

  • Method Objects
  • Value Objects
  • Query Objects
  • Policy Objects
  • Processor/Service Objects

Controllers & Views

  • Reducing Shared State
  • View Models
  • Helpers
  • Partials

Private / On-Site Course

This course can be run as a dedicated course for your team, either online or on-site. Send an email to and tell us whether you're interested in online or in person, how many participants you expect, and a bit about what kind of work you're doing. We'll get right back to you with a quote and customized plan.


Katrina Owen is an experienced web developer focusing on Ruby, Rails, Testing, and PHP. When programming, her focus is on automation, workflow optimization, and refactoring. Katrina is a regular contributor to the Ruby Rogues podcast. At Jumpstart Lab she serves as the Refactoring mastermind, crafting both curricula and courses to help others write tests for foolproof code.

Contact Us

(202) 670-2852
(202) 280–1257
1510 Blake Street
Denver, CO 80202 U.S.A

Stay Connected

Get the scoop on upcoming classes.