Pros
- Very smart people working alongside of you. This sounds like a fanboy type of comment, but when I talk with other friends from college and compare some of the stuff they have to deal with at work with coworkers who are unable to write/design any programs, I realize that I never have had to deal with that here. - Great benefits. I don't necessarily need all of them since I do not have any children yet so the health care plan doesn't come into account as much as it does for others...but it is great not having to pay anything for doctor/dentist/pharmacy visits - Ability to move around the company with ease...lots of products in a wide range of areas keeps me interested and working here for longer than I originally thought I would. - Products you work on are used by millions of people. I get a lot of personal (maybe selfish?) satisfaction from seeing my product used by so many people so quickly. - Flexible hours...can work from home if I want...can take a day off if necessary without any issues...so long as I am getting my work done.
Cons
- Disparity between teams that make money (Office/Windows) and teams that hemorage money (MSN/Zune/etc)...seems like you get rewarded more and promoted more on teams that lose money. Costs are cut in some areas (i.e. I can't get an extra monitor) while other teams don't have that restriction (seriously, first class travel tickets...top of the line hotels...sending people to conventions that have no bearing on their job...but are in Miami or Vegas) - Too much process for some items causes things to take much longer than necessary. Backwards compatibility...while absolutely necessary...prevents us from reacting to change quick enough. - Upper level management seems to have no real set direction