Guitar Hero®: Behind the Music

Location: Pavilion 2 - 3 Level:
Average rating: ****.
(4.00, 10 ratings)

The Guitar Hero® community website ( is one of the largest production RoR sites on the Internet with 600,000+ registered users. We will cover the process, programming, and infrastructure for the Guitar Hero® community site. You’ll see how we’ve been able to integrate data from three largely different Guitar Hero® titles in a consumable fashion on the web.

  1. Process
  • Feature-driven development
o Breaking up Guitar Hero® into manageable units of work o Modified SCRUM process
  • Guitar Hero® maintenance
o Migration from Rails 1.2.6 to Rails 2.x o Removal of “skeletons” (aka appable plugins) o Being too DRY
  1. Programming
  • Overview of Guitar Hero® architecture
  • Rails initializers
o Supporting multiple Guitar Hero® title configurations
  • Dispatching data from game consoles to the web
o XBOX 360 and PS3 data movement and validation o Wii data movement and validation o Supporting components that allow the Wii to talk directly to our application servers
  • Guitar Hero® configurator
o Supporting multiple Guitar Hero® titles with a single application via meta-programming o Supporting multiple databases for separate Guitar Hero® titles
  • Testing framework
o Long running tests o Transactional fixtures across databases
  • Use of queuing/Sparrow to offload long-running processes
  • Caching
o Object caching o Fragment caching o Page caching
  1. Infrastructure
  2. Capistrano deployment
  • Management of SVN for production, soft launch, and future-title branches
  • Environments
o Development, Staging, QA, Production
  • Supporting components
o Thin vs. Mongrel o Monit o HAProxy o NGINX o Memcache
  1. Future
  • Splitting Guitar Hero® into separate applications for backend and frontend deployments
  • Supporting legacy Guitar Hero® titles
  • Supporting future Guitar Hero® titles
Photo of David Czarnecki

David Czarnecki

Agora Games

David Czarnecki is a software engineer at Agora Games, a company that specializes in building online gaming communities, in-game and on the web. He is the author of 2 books for O’Reilly and had previously developed exclusively in Java for nearly 15 years. He has been developing in Ruby and Rails since joining Agora Games in 2008. David loves video games, especially the Guitar Hero series and Left 4 Dead.

Ola Mork

Agora Games

Ola Mork is a senior software engineer at Agora Games, a company that
specializes in building online gaming communities, in-game and on the
web. He’s been developing Rails apps since Fall 2006. He fantasizes
about beautiful code, but knows how to navigate the dregs of
interoperability. He plays Nintendo DS games exclusively.

Eric Torrey


Eric Torrey is a software engineer at Agora Games, a company that specializes in building online gaming communities, in-game and on the web. He has been professionally developing Rails applications since August 2006. He is a firm believer in TDD and doing what it takes to reduce code complexity. Eric loves to play video games on his computer, especially MMORPGs.

Comments on this page are now closed.


Picture of Rob Biedenharn
Rob Biedenharn
05/05/2009 10:23am PDT

Great talk. Very nice to hear about real-world issues and the solutions that were forced into existence to cope with them.

News and Coverage
co-presented by Ruby Central, Inc. O'Reilly
  • Engine Yard
  • Heroku
  • Sun Microsystems
  • Blue Box Group
  • New Relic

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at RailsConf, contact Yvonne Romaine at

Download the RailsConf Sponsor/Exhibitor Prospectus

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for information on trade opportunities with O'Reilly conferences or contact mediapartners@

Program Ideas

Post your suggestions for speakers, topics, and activities on the RailsConf wiki or send an email to

Press and Media

For media-related inquiries, contact Maureen Jennings at

Contact Us

View a complete list of RailsConf 2009 contacts.