Shopping Cart – let the bundling begin!

at March 13th, 2014

Groupon recently spent a year building a shopping cart feature for the website. This feature was first a/b tested on Groupon’s web platform to determine whether users would benefit from its functionality. After starting at 1% and scaling the a/b test to 100%, it was clear in the first month of full functionality that the… Read More


Removing the Ping Sting From Rails DB Connections

at August 8th, 2013

Database-driven web applications often maintain a pool of database connections that can be reused for future requests. Re-establishing a new database connection for every web request can be costly for both the web application and the database server. Yet, an existing database connection in a pool can sometimes be dropped for various reasons. For example,… Read More


Contributing to Rails Issues

at May 15th, 2012

Rails Has Issues. No, seriously. As of May 7th, 2012, there are 572 open issues on Rails. This is not a negative reflection on the core team, nor is is something that they can change, without stopping their ongoing work on Rails. They could drop all of the issues in what is called “Issue Bankruptcy.”… Read More


Lessons Learned From Teaching Rails

at February 6th, 2012

For the past six months, I’ve been teaching a four-day course for new Groupon Engineering hires that covers Ruby, Rails, RSpec, Cucumber, Git, and some Groupon-specific workflow, modeling, and scale issues. In general, new technical hires go through the course even if they aren’t immediately starting work on the web application, which means that the… Read More


The Rails Engine That Could – In Motion

at February 6th, 2012

I recently gave a talk at Groupon’s weekly GeekFest event titled “The Rails Engine That Could – In Motion”. It was an introduction to Rails Engines that highlighted a successful use of them while consulting for a client through Obtiva. I will include here a summary of my talk as well as the slide deck…. Read More