I wonder if they face the challenge of who has to deal with the less popular things that need to get done. And at what point resentment might kick in. The whole thing seems like it can work until there's one bad apple or one miscommunication.
I think this depends on what you mean by "the less popular things that need to get done." In my experience, things that were less popular at other places I've worked, are often tackled with enthusiasm at GitHub. When the company culture leads you to feel passionately about building something lasting, going back to clean up old rotting code or fix tests that were not written well or debug obscure issues become things to be proud of.
Also, I believe that often the less popular work corresponds to things that are subtly judged to be less valuable work. At GitHub, I see people praised for tackling the types of things that have been less popular at my other jobs, and everyone here, even the most prominent GitHubbers, participate in most every aspect of maintaining the product. Internally, the message is pretty clear - doing the things that "need to get done" is a huge part of what makes everyone else here proud of you and is valued highly.
This is not to say that people don't tire of working on particular areas, but that's a somewhat different issue and probably a large enough topic for a writeup of its own.
That's a question I hear often, or another form of it: "How do you get people to do things that nobody wants to do?" I usually answer this with two questions:
1. If everyone deeply cares about the culture and longevity of the company (which is a prerequisite), and nobody wants to do it, does it really need to get done? The answer is often no. But if the answer is yes…
2. How do you turn that into a celebrated task where everyone wants to do it?
One example of this at GitHub is support. Developers hate doing support. But we have decided that it is absolutely vital to our company to both provide good support and to have developers involved in it so we are constantly getting feedback about what is working and what is not.
So we created the "King of Developers", which is a position that is held by a developer for one week at a time, in which that developer's primary responsibility is support. Along with that comes a pimped out desk at our HQ in San Francisco and tons of street cred. We even have a ridiculous internal website to go along with it (http://dribbble.com/shots/554836-GitHub-King-of-Developers). There are currently 9 developers signed up waiting to be the King.
Thanks for the detailed response. At my current work place everyone rotates through support as well (dev, sales, ops), and I agree with you: the only way to make these kinds of things work is with an exceptionally strong culture, and not compromising.