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

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0110-Geoff-Dalgas-and-Jarrod-Dixon-on-StackExchange.mp3]

Herding Code 109: Harmony Hackathon

This episode of Herding Code the guys talk to the organizers of the Harmony Hackathon: twelve developers coding madly for 48 hours, trying to build an application for the non-profit Harmony Hill cancer retreat center.

  • Eric talks about the Harmony Hackathon came together and what they were trying to accomplis.
  • Jon asks about how things were coordinated. The guys talk about how they managed the "organized chaos" of throwing a lot of developers in a room for 48 hours.
  • Scott K asks how a group of alpha geeks got past selecting an IoC container in a weekend, let alone write some code.
  • Jon asks for a rundown on the dependencies (Fluent NHibernate, Fluent Migrator, ASP.NET MVC 3, and some testing tools).
  • Hooray for build servers!
  • Discussion of machine.specifications and NUnit in order to test both high and low level code.
  • Scott K asks how much actually got done.
  • We talk to Vic to get the real scoop – sure the tech was cool, but did they build anything? How was it like to be the project owner with this kind of project?
  • Discussion of extremely short sprints – down to 30 minutes at the end! How do you handle Pomodoro length sprints?
  • We talk about Chewie, which adds some Bundler features to NuGet.
  • Scott K gets the rundown on psake (build automation in PowerShell) from Eric.
  • Scott K asks about what kind of interaction patterns they saw emerging.
  • Scott K asks about the future plans for this project.
  • Scott K asks why ALT.NET people would want to do something nice, and Jon mentions his mild surprise at the happy, friendly vibe he’d seen at the ALT.NET Seattle events he’s attended. There’s a discussion of the general spirit of the ALT.NET Seattle group.
  • Jon asks for lessons learned and recommendations for other people who want to put on a similar event.
  • Scott K asks about friction points with the tools the team selected.
  • Razor was one of the new things that none of the developers had used before. Jon remarks that learning Razor was kind of a non-event for him, and the guys agree.
  • Kevin asks about how the project lifecycle looks like when compressed to a 48 hour period.
  • Eric explains what Harmony Hill does, explaining why everyone was so motivated to help out. The guys talk about how it’s nice to go beyond talking about beautiful code and actually doing something.
  • Scott K asks if there were technological things the team would do differently in the future.
  • The Open Source Track at ALT.NET Seattle (May 5-8) is mentioned.
  • Coding alone? You must wear the Coding Solo Cowboy Hat of Shame.
  • Pimp your stuff time: Harmony Hill, ALT.NET 2011, Giles, Simple.Data
  • The guys ask Scott K when we’ll see the MVC generator thing he’s been working on.
  • Everyone loves Simple.Data.
  • Developers, developers, developers!
  • Woof, woof, woof!
  • Does anyone read these notes? I don’t think you do.

Show Links:

Download / Listen:

Herding Code 109: Harmony Hackathon

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0109-Harmony-Hackathon.mp3]