• Engine Yard
  • LivingSocial
  • VMware
  • Heroku
  • Rackspace Hosting
  • Blue Box Group
  • JetBrains
  • New Relic
  • Percona
  • Pivotal Labs
  • Rails Dog
  • WyeWorks
  • Chargify

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at RailsConf, contact Yvonne Romaine at yromaine@oreilly.com.

Download the RailsConf Sponsor/Exhibitor Prospectus

Contact Us

View a complete list of RailsConf contacts.

Double-Shipping Software for Profit

Zach Holman (GitHub)
Location: Ballroom I
Average rating: ***..
(3.06, 16 ratings)

The idea behind Firewall Install (FI) is we can leverage the majority of our existing GitHub codebase, tailor it for the Enterprise market, and sell to customers who would otherwise never be able to put their code on github.com for legal or bureaucratic reasons. This same workflow would work well for other Rubyists, too, and all too often it’s a slice of the market that developers just don’t think about.

There’s a lot of high-level aspects to cover: how our FI developers work organizationally with everyone working on github.com, what are the approaches necessary to technically support off-site software, and how you keep up with the unique challenges of communicating with customers of shipped software.

The majority of the talk, however, will be from a technical perspective. How we really screwed up regarding branch-level organization in git, and our subsequent solution to address those problems. How you can structure internal libraries and refactor complicated classes to gracefully support both your SaaS product and your installable product at the same time. How Bundler saved our butts for dealing with multiple Ruby interpreters. FI also runs on multiple operating systems, too, which brings with it a slew of fun testing and
deployment challenges.

We’ll also dive into quite a bit of detail about the software stack itself: chances are you’ll need to deal with web servers, app servers, caching servers, and a slew of other processes to support your Ruby and Rails stacks. FI eventually moved its installer to Chef so we can configure our stack with Ruby, and there’s a lot of considerations to modify Chef to work as a customer-friendly installer.

We’re really happy with this setup, and we’re pretty excited to let others know that it’s a great way to do business, too, even if your main product is software-as-a-service.

Photo of Zach Holman

Zach Holman


Zach’s the lead developer for GitHub Firewall Install. He gained national attention for Facelette, an experiment that mashed up Chat Roulette and FaceTime, which lasted until the national media realized how stupid it was. Took them long enough. Zach also does serious blog posts and completely unserious screencasts.

Comments on this page are now closed.


Gavin Stark
05/20/2011 4:45pm EDT

It was great to hear how Github is handling “behind the firewall” installs from both a business and technical perspective. I hope Zach posts more about how they are solving some of their technical issues. I hope to blog how we are doing the same (but on a much smaller scale)

Picture of Olek Poplavsky
Olek Poplavsky
05/20/2011 9:47am EDT

Well executed session on challenges of shifting from ‘service’ model to ‘product’ model.