Pros
Great place to start and end your career. They are very laid back, and don't really expect much out of the developers, so if you are a hard worker you'll get along great. Casual dress, plenty of holidays and time off, good pay, and great benefits. Time lines are, for the most part, imaginary; so you can take your time.
Cons
It all depends on which team you work for. I worked for CPP. The management is comprised completely of developers who moved up. This means that they know how to code, but not necessarily how to manage, and so they just don't. Occasionally they will try some poorly thought out plan to "increase productivity", but they never pan out, and usually just fall to the wayside. Plan to only actually talk to your manager when YOU want to talk to them, and usually they are busy. The software is behind, but within the last 6 months they have shown actual movement forward to more current technologies. The code itself is a mess. They kept hiring new straight-out-of-school kids who all didn't know what they were doing, and thought they did. So the code is all over the place, it's inconsistent, and sometimes just doesn't work. Be prepared to realize you messed something up your first week and have to fix it 3 months later once you start to know what you are actually doing.