Challenging
Pros
Every org at Microsoft is different, so this is specifically for Lync (Skype for Business) - A lot of smart, talented and experienced engineers whom I learned a lot from - In general, managers had been promoted from within org and were very knowledgeable and passionate about the product - Get to work on very interesting, deep challenges and learn a lot about how to make large scalable services serving millions of users - For the most part, there weren't too many tight deadlines or pressure to work an exorbitant number of hours - A good amount of freedom - teams were generally left to make a lot of their own technical decisions without much micromanaging from upper management. At least for my team, the leads were always up for a discussion on the best way to do things. - Catered breakfast! Everyday!
Cons
- Difficult to ramp up in beginning - tons of different services, endless internal acronyms and code names, not much documentation (or it no one remembered where the documentation is, or it hadn't been updated in 5 years). A lot people had been there years, so they didn't understand what it's like to be new. - Some managers (unfortunately mine) clearly got to their positions because of their ability to play politics rather than technical skill or leadership ability (or intelligence), and the engineers under suffer because of it. - A lot of process and overhead that doesn't always make much sense and slow things down. - Dependent on internal tools and infrastructure that can be unreliable and difficult to find documentation on.