Pros
* Great perks and benefits * If you do the bare minimum and can ship code, this is a place you can collect a decent paycheck and coast pretty much forever * Coworkers are generally good people and nondiscriminatory
Cons
* Microsoft's senior leadership talk a good game, but working on a team day to day doesn't reflect the reality * Way too many egotistical, toxic senior engineers who have coasted for years and silo'd domain knowledge and are "too technical" to let go are the ones who truly run the show. Pray you don't find yourself on a team with one of these. * Outdated tools for building and deploying means even simple straightforward changes are painful to get through, doubly so for legacy products * Lateral moves are completely self-driven. Nobody really cares about your individual career advancement. Managers are too stressed out to do anything but get their features shipped in time * People rave about the WLB but this is entirely team dependent and individually driven. I often see people arrive before 8am and don't leave until past 7pm. * Long meetings. Inefficient meetings. Meetings meetings meetings where people tend to ask "smart" questions and nothing really productive comes out of it