Pros
If you want to learn something, every day, this is the place to be. The product is a bit monolithic and intimidating at first, but the talent pool here is outstanding, and there is no shortage of very friendly, patient and SMART people willing to help and give guidance. Even veteran programmers will find challenges they most likely have never encountered before, and there are tons of opportunities to branch out and learn new things. They allow and encourage continuing education, even on the clock to a certain extent, and there are monthly 'co-hards' where you can work on personal programming projects. As the company has grown, management opportunities are scaling linearly, so there are definitely opportunities as you grow in the company, if that's something you're interested in. There is still a very 'start up' atmosphere and it is a casual, relaxed and fun place to work (although I don't know everybody's names!).
Cons
We're getting better at this all the time, but a bit more formalized training process would be beneficial. It used to be 'read the manual', which was not very helpful (especially if you were new to networking technologies), but we've gotten some more standardized classes, and could use some more.