If you're asking for the top-10 best places to work, that is a HIGHLY subjective rating. at any given company, you will find some people who think it is the best place on the panet to be, and others who can't wait to get out of there...

So, i'd suggest to get a better answer to your question, define your terms more clearly.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors