Pros
Starting pay is pretty good, at least for the technical roles. The non-technical roles start lower but seem to get much larger raises, but that may have something to do with a higher burnout rate. Company is very "flat" which has it's pros and cons. Management will listen to your ideas if they have merit. Want to teach a class? Go ahead. Have an idea for a new piece of software functionality? We'll listen to you.
Cons
They do not hire into management. You can work very long hours and no one will really care. You have to really self-advocate (i.e. say "no") in a company of 3000+ employees that's bigger than it realizes. The company's growth seems to be outpacing its ability to maintain good communication and organization between different groups. All the software works together, and it's important to know what the other guys are doing. This is not always possible. Technical team leads are often sorely lacking in people skills, and this is frustrating if like feedback when starting a new job. Mine has trouble giving me direct eye contact, he looks around the room from left to right when talking to me, which is a bit unnerving.