Pros
1. 100% telecommute - you choose the place to work; be it your home, a hotel in Reykjavík, a cabin on Atlantic shore. Work progress is tracked using competent platforms (i.e. oDesk). Someone may find it outrageous that "they track your every keystroke". But let's be reasonable - your manager is several thousands miles away and he needs to know what does he exactly pay for. And aforementioned tracking platforms prove their efficiency in such case. 2. Mostly flexible work schedule - you choose when to work. There's general rule to work 30+ hours per week (all paid, even if you overtime) and some fixed times for meetings and stuff. Other than that, you are free to arrange your work time as you wish. I usually keep some tasks for the weekend - to work in calm and concentrated atmosphere. 3. Compensation is simply great comparing to local market and quite competitive comparing to international freelancing. Talking about benefits, there's of course no dental insurance, no gym subscription, etc. - which is normal considering telecommute contract. 4. In some way, there's a great field for personal and professional growth. You see, it all depends on your performance and commitment. If you strive to be better, faster, stronger for your personal benefit and benefit of your company - you will certainly find a plenty of opportunities to accomplish this. I personally mastered two new platforms from scratch and performed in various roles, on various projects. 5. Great cultural diversity. We're human beings after all, and it's cool to talk on various topics be it Chinese cuisine, European heritages, Icelandic volcanoes, etc. Special remark. After my first half a year of hard work I received a NY gift right from CEO - brand new iPad, latest model! Yay! Now you tell me they don't treat employees respectfully? :)
Cons
The only flaw I see is staffing model. It all starts with classical "stack ranking" - constantly assess employees, stack them according to their productivity and periodically fire the bottom 20% of (low) performers. This cycle never ends and there's always open positions for demanding projects. The problem is that entry conditions, especially for positions with lower pay rates, are not strict enough. It is relatively simple to get through initial screening, tests and assignments. Now imagine that company spends quite some time and effort to ramp a new employee up and prepare him for real work. And then after several weeks (of such "paid internship") finds out that this employee is totally incompetent. This is especially harmful for technical leads and project owners as this affects general productivity and release schedule. At the same time fired employees (usually those showing constantly low performance or even fraudulent behavior) not always have adequate understanding of why they have been fired. For some reason they keep thinking that they are such great guys and company owes them something. :)