skip navigation

Here you will find ideas and code straight from the Software Development Team at SportsEngine. Our focus is on building great software products for the world of youth and amateur sports. We are fortunate to be able to combine our love of sports with our passion for writing code.

The SportsEngine application originated in 2006 as a single Ruby on Rails 1.2 application. Today the SportsEngine Platform is composed of more than 20 applications built on Rails and Node.js, forming a service oriented architecture that is poised to scale for the future.

About Us


Zero to Continuous Delivery in Three Steps

12/06/2017, 3:45pm CST
By Luke Ludwig

The key challenges to starting Continuous Delivery are not technical, but instead are about how people work together when developing software.

Read More

Chaos Day Twin Cities

12/01/2017, 10:45am CST
By Andy Fleener

Check out my talk from Chaos Days Twin Cities, Game Days: Failing for Fun and Profit

The AWS Auditor: Our Trick to Saving Money

03/28/2017, 10:30am CDT
By Emma Sax

How we save money through using AWS's Reserved Instances and our own AWS Auditor

How we save money through using AWS's Reserved Instances and our own AWS Auditor

A look at the evolution of the Sport Ngin development daily workflow from a 5 person team to a 60 person team.

Sport Ngin has a development workflow built on trust. It enables us to continuously deliver value to our customers by coding small. Our workflow empowers developers to do their jobs quickly and efficiently. We provide the right amount of structure to reduce risk without bogging developers down with too much process.

Hubstats: A New Way to Gather GitHub Statistics

08/21/2015, 2:47pm CDT
By Emma Sax

Why and how we made an open source RoR project to supplement and integrate with GitHub.

Data is useful; there’s no denying that. However, if there’s no way to measure it, is the data still valuable? Hubstats gives Sport Ngin’s Development team an easy way to measure, view, and record GitHub data.

Swap it Like it's Hot

11/12/2013, 2:30pm CST
By Andy Fleener

Perform fast zero downtime deploys with almost any app server you want using the hot-swap deployment algorithm.

At Sport Ngin we take downtime seriously. Ensuring that the platform is up and running at all times is imperative. Even seconds of downtime deploying an application is unacceptable. We've used a technique on our ruby apps for quite some time called a rolling deploy. The rolling deploy algorithm is great and we still use it for several of our applications. But as we've moved to a more Service Oriented Architecture rolling deploys left us wanting more.

Deploying Node.js apps without npm using pac

11/07/2013, 2:00pm CST
By Mike Frey

The importance of reducing deploy dependencies can never be overstated.

On November 4th, the npm registry was unavailable for several hours. Leaving many developers without a way to obtain the node modules they need for development. And in some cases, the npm downtime kept people from deploying their applications.


ElasticSearch on OpsWorks

09/19/2013, 2:15pm CDT
By Ian Ehlert

A quick guide with some open sourced chef recipes to get ElasticSearch up and running on AWS OpsWorks.

Follow the steps outlined in our cookbook README to get an ElasticSearch cluster running in your OpsWorks stack.

Scheduling EBS Snapshots on AWS for Windows EC2 Instances

09/19/2013, 2:00pm CDT
By Ian Ehlert

Get automatic EBS snapshots going on your Windows EC2 instances with minimal headaches.

We found we needed a Windows batch script that could create EBS snapshots for a specific volume and clean up the old ones. This is a gist of the script we ended up using to schedule our daily snapshots.


OK Computer: Application Health Monitoring with No Surprises

06/28/2013, 9:15am CDT
By Patrick Byrne

We built OK Computer for configurable application health checks. We've been using it in production for a while now and think you'll find it useful.

In the past, we've used fitter_happier for this purpose. Then, we added MongoDB to one of our applications. To check the connection to that database, we had to monkey-patch fitter_happier, which didn't sit well with us. We also wanted to check that our Resque queues weren't backed up, which necessitated further monkey-patching.