Interesting projects that challenge your developer's expertise. Coworkers are extremely talented and share their expertise and help when asked. Management is transparent and tries hard to make the workplace as accomodating as possible and treats employees with respect. They are perks like snacks and soft drinks. Even better, every developer gets his/her own office! No cubicles at all (sorry Dilbert).
Cons
Long hours, especially when close to delivering project to client.
Good pay for internship
Ok place to learn about software engineering
Cons
No opportunities for career growth.
Most employees pretend like culture is similar to silicon valley, but it not even close.
If it does not say Microsoft on a product, they will not use it.