Pros
Being a software development engineer, Microsoft is a great place to be. * There are so many orgs and teams working on drastically different things. If you get bored at one team, you have options to switch teams within the company. There's no limit for how many times you can switch teams. * Even though the company is huge, I feel the org and teams are tightly connected. You come across familiar faces in the hallway multiple times a day, people nod their head or smile at you even though they may not know your name * Benefits and pay may not be the best, but it's great given how many hours you put in. The 401k with 50% match (up to $9,250 in 2018), ESPP, HSA, etc are awesome and serve as a great vehicle for preparing for retirement (early). If you are lucky enough, you can take shuttle/Connector to go to work without having to drive. * Compared to my previous employers, Microsoft is the best, and I feel privileged every day I work in the company
Cons
* Pay can be more in line with competitors, a few engineers I know voted with their feet * Sometimes, it takes a little bit efforts to understand project requirements. It's not always clear who to ask and where to go. This may be the nature of those projects * The performance review can be more transparent