Pros
Great benefits: good 401K plan (most of my plan recovered the market crash as of the end of 2010) with a good match. 4 weeks of vacation even for junior employees, unlimited sick days (theoretically, depends on your relationship with the manager and if he trusts you and how good you are with the "system" (bring doctor notes when in doubt ). Relatively good dental, vision and medical plans, but medical plan got worse over the years (larger copays, etc, but it's a country-wide issue).
Cons
Lots of incompetent people being promoted to managers--those who scream the loudest or just because they were good developers or got lucky (every other senior person left the team), but it doesn't mean they make good managers. It is as very easy to be demoted (as part of a reorganization, etc, I haven't seen it to happen as much in other companies). Unfortunately the incompetent managers always seem to stick around, it is the good managers which usually suffer. R&D (programming dept) uses a lot of "in-house" technologies, and public/mainstream technologies which it uses are technologically way behind other companies. There is still lots of C and Fortran code to deal with. New development is done in Javascript (not web based), and C++, but the company switched to C++ only about 5 years ago, and to Javascript about 3-4 years ago when everyone has done it decades ago. The more you stay in the the company , especially if you stay in one of R&D groups which doesn't deal with financial instruments directly, the less marketable you'll become shall you decide to leave the company. The pay is above average for Junior developers, but tapers off once you become a Senior Developer. After discussing this with my friends in the company over the years, it almost feels like you hit some kind of a glass ceiling after 8-10 years in the company, unless you are a superstar (which means you have no personal life), some kind of a a genius, become a manager, AND have enough marketing stills to market yourself to your manager before your annual review. Theoretically, the company has "work from home" policy now and some flexible work programs. But it practice, it has policy has been very limited and mostly used by middle-chain managers. Lots more pressure on developers once the company instituted the "Plan B" reorganization, sometimes it's way too much. That said, everything totally depends on the team you're on. Even within the same group in R&D,there are good teams where developers are happy and stay for years, while in other groups developers are buried with work and work 12 hours a day until they transfer to a different team or quit.