I've been a developer at Canonical (working on Juju) for a little over 3 months, and I have to say, this is the best job I have ever had, bar none.
Let me tell you why.
1.) 100% work from home (minus ~2 one week trips per year)
2.) Get paid to write cool open source software.
3.) Work with smart people from all over the globe.
#1 can't be overstated. This isn't just "flex time" or "work from home when you want to". There is literally no office to go to for most people at Canonical. Working at home is the default. The difference is huge. My last company let us work from home as much as we wanted, but most of the company worked from San Francisco... which means when there were meetings, 90% of the people were in the room, and the rest of us were on a crappy speakerphone straining to hear and having our questions ignored. At Canonical, everyone is remote, so everyone works to make meetings and interactions work well online... and these days it's easy with stuff like Google Hangouts and IRC and email and online bug tracking etc.
Canonical's benefits don't match Google's or Facebook's (you get the standard stuff, health insurance, 401k etc, just not the crazy stuff like caviar at lunch... unless of course you have caviar in the fridge at home). However, I'm pretty sure the salaries are pretty comparable... and Google and Facebook don't let you work 100% from home. I'm pretty sure they barely let you work from home at all. And that is a huge quality of life issue for me. I don't have to slog through traffic and public transportation to get to work. I just roll out of bed, make some coffee, and sit down at my desk. I get to see my family more, and I save money on transportation.
#2 makes a bigger difference than I expected. Working on open source is like entering a whole different world. I'd only worked on closed source before, and the difference is awesome. There's purposeful openness and inclusion of the community in our development. Bug lists are public, and anyone can file one. Mailing lists are public (for the most part) and anyone can get on them. IRC channels are public, and anyone can ask questions directly to the developers. It's a really great feeling, and puts us so much closer to the community - the people that have perhaps an even bigger stake in the products we make than we do. Not only that, but we write software for people like us. Developers. I am the target market, in most cases. And that makes it easy to get excited about the work and easy to be proud of and show off what I do.
#3 The people. I have people on my team from Germany, the UK, Malta, the UAE, Australia, and New Zealand. It's amazing working with people of such different backgrounds. And when you don't have to tie yourself down to hiring people within a 30 mile radius, you can afford to be more picky. Canonical doesn't skimp on the people, either. I was surprised that nearly everyone on my team was 30+ (possibly all of them, I don't actually know how old everyone is ;) That's a lot of experience to have on one team, and it's so refreshing not to have to try to train the scrappy 20-somethings to value the things that come with experience (no offense to my old colleagues, you guys were great).
Put it all together, and it's an amazing opportunity that I am exceedingly pleased to have been given.