Herding Code 110: Geoff Dalgas and Jarrod Dixon take us behind the scenes at StackExchange

This episode of Herding Code Kevin and Jon sit down with Geoff and Jarrod at MIX to talk about their experiences from helping to build the first StackOverflow site up through today’s fast paced world of StackExchanges and gold plated Lamborghinis.

Note: We recorded in quietest spot we could find – there’s some background noise, but it’s worth it.

  • Geoff and Jarrod talk about their past job experiences, including building (gasp) 911 software with Visual Basic 6.
  • Jon asks how things worked at the beginning – did people work on separate areas? Was there a plan?
  • How do you share data when developing with a remote team? Geoff talks about how they started with the Database Project type, but moved to SQL scripts, ending with a migration tool. Jon gets to say “idempotent”.
  • Geoff and Jarrod talk about how they’ve moved form Subversion to Mercurial.
  • Jon asks how code moves from local development to a production server. Geoff talks about the build and deployment process.
  • Kevin asks how much the process has changed over the years.
  • Geoff talks about how features first hit Meta, then the “others” tier (everything but StackOverflow), then to StackOverflow.
  • We talk about how they’re using Redis, including the newly open sourced redis-sharp library, and some of the tricks that are used to keep the cache performant, including gzipping cached data.
  • We talk about how they do performance tuning, how costly queries are tracked, etc.
  • Geoff talks about how search was moved from SQL Server Full Text indexing to Lucene.NET in order to move the load off the database server.
  • Jon asks about how they’ve integrated the ASP.NET stack with open source front-end and utility software.
  • Jon asks how the the IT and collaboration works with the growing distributed team.
  • Jon asks how bugs are tracked, and the talk about how they use the Meta sites for tracking issues. Jon is sold on the concept and asks if he can install a local instance of Meta for his own bug tracking concepts, but the guys just laugh at him.
  • Jon asks for more specific on the performance monitoring systems the team uses, and Geoff gives him the rundown.
  • Jon asks how things have changed as the team has grown and buckets of funding money keep rolling in.
  • Geoff explains how they handle multi-tenancy, now that they’re hosting lots of sites. Jon is amazed to hear that it’s just one big application which switches data structures and display based on the url.
  • Geoff mentions that they’re using Less to keep the CSS sane.
  • Kevin asks how much work is involved in spinning up a new site. Geoff explains the tool they’ve got set up to generate the scripts to add a new StackExchange site.
  • Jon asks about MVC 3 is working for them. They like the Razor.
  • Jon asks what annoys them most about ASP.NET MVC. After some thought, they lament that the routes are defined separately from the actions, but mostly it’s just a lot of love for MVC.

Show Links:

Download / Listen:

Herding Code 110: Geoff Dalgas and Jarrod Dixon take us behind the scenes at StackExchange