Fork me on GitHub

I'm a software developer building modern web applications.

When I'm not writing software, I enjoy traveling, playing tennis, and noodling around with jazz piano.


Nilify Blanks

Provides a framework for saving incoming blank values as nil in the database in instances where you'd rather use DB NULL than simply a blank string.

Ruby Scribe

An intelligent AST pretty-printer that generates nicely-formatted Ruby source code given Ruby S-expressions.

Message Block

A replacement for error_messages_for that combines model errors and flash messages and is much more powerful/flexible.

Has Draft

Allows for your ActiveRecord models to have "drafts", edited separately from the live version.

Has Meta Data

Allows for your ActiveRecord models to have associated meta data without a separate model.


Converts your Test::Unit (or minitest) tests with the help of ruby_parser, a series of AST transformations, and ruby_scribe.


A wrapper for the VexFlow staff engraving library to render staff notation from simple JSON.



Staying Productive on the Move

SD Ruby - February 5, 2015

Tips & tricks about how to stay productive as a programmer while traveling, gleaned from my one year experience as a digital nomad.

A Review of RSpec 3

SD Ruby - August 8, 2014

A brief introduction to RSpec, and a review of the various new features/changes in RSpec version 3.

What's New in Rails 4

SD Ruby - February 7, 2013

A run-down of new features in Rails 4 and tips for preparing your Rails 3 applications.


San Diego JS - October 2, 2012

Getting started with Ember.js.

Credit Card Hacks

BarCampRochester - April 14, 2012

A presentation at BarCampRochester Spring 2012 on credit card points and optimization.

Travel Hacking

BarCampRochester - October 19, 2011

Tips, tricks, and "hacks" for getting the most value for your money out of travel.

Transforming Ruby Code

Boston Ruby - October 11, 2011

Learn about automated refactoring, coding style/best practices enforcement, DSL translation, and more through AST transformations.

The Ruby Idiom

BarCamp Rochester - Spring 2011

An overview of some of the unique features of the Ruby language and why Rubyists are so passionate about their craft.

World Traveling on a Shoestring Budget

BarCamp San Diego - Winter 2011

Traveling doesn't have to be expensive - I cover tips and tricks for traveling internationally on a shoestring budget based on my recent experience traveling 54,000 miles around the world for two months.

Refactoring ActiveRecord Models

SD Ruby - February 3, 2011

It's always important to keep your ActiveRecord models in tip-top shape. I explore several techniques for refactoring models and preventing them from getting out of hand.

Testing with Cucumber

Rochester.rb - July 22, 2010

Overview of Cucumber for behavior testing and using Pickle.