Company: Microsoft
Date: 2014-11-24
Overall rating: 5/5
Employment status: former
Experience level: Senior

Development Manager in Office Division
Pros: Great opportunities to gain breadth and depth of experience in software engineering on industrial-strength applications like the Office suite. Breadth means you can move from desktop apps to mobile apps to server apps to web apps all within Office over several product cycles without having to change companies. Depth means really understanding a platform's "engine" by writing code that must meet high bars on performance, security, robustness, and stepping into many layers of code that isn't your own to track down problems. Learn all the best practices from working on long-lived industrial-strength apps, then do the start-up thing writing throwaway apps so when you take shortcuts to meet tight schedules and budgets, you do so knowing the trade-offs in maintainability, security, scalability, etc.
Cons: Insufficient "transparency" in work done by people in a group makes it hard at review time to know where you rank in terms of production and impact. As a manager, my hands were tied by privacy rules when I tell someone they produced less than the group average but could not identify their peers who did so much more than them, especially if their peers were folks in another team in the group.