Pros
Lots of smart people who are very hardworking. They come from a variety of backgrounds and always give their best efforts. Employees and consultants are treated pretty much the same. If you're doing any kind of IT work, everyone is pretty much standardized and work is delegated based on technology and business experience. If you want to get the "best" work, you have to know everything about it beforehand. Compensation is good and also guaranteed. I used to work in an IB that didn't give me bonuses due to the small size of my team and my rank. MS gives you a cut end of story, but that doesn't mean it's good. Benefits are also good. You get decent coverage from the basic medical plans offered. Depending on your team and nature of your project, the work from home policy is pretty lax. A lot of co-workers have families and commute into the city so sometimes they need to be home.
Cons
Work can get repetitive. Many times I find myself doing a glorified refactoring of poorly written or poorly planned code. You'd think there would be an extensive process in check to prevent poor code from going into production, but that's not the case. Teams need to enforce their own code review and audit policies and sometimes that's difficult when you are trying to hit big deadlines. IT support staff could use some work. There are no doubt talented individuals who keep good notes and are very good at drilling down issue solutions, but that doesn't save QA overall from being a giant sink. I think the QA teams need to be closely situated with the developers and create their test-cases co-dependently so they can actually understand the software; otherwise, developers may as well be the first point of contact. Ranking and compensation improvement is slow. There's a big bureaucracy in place for promotions and it can be very frustrating to work year after year without seeing any improvement. Getting ahead requires you to be very social which is not always the easiest thing to do.