Pros
Lots of talented developers. An actually useful review process. A fun environment. Good forums for feedback to management. The CEO responds to email. Developers are treated well. Working at home for part of the time is okay. Teamwork is highly valued. There are opportunities to get trained, and a lot of people form study groups. Everybody is very collegial and helpful; if you ask for help they won't leave you until the problem is solved.
Cons
No free lunch - it is a bit of a pain to get lunch every day. There is a bit of a separation of the dev and the non-dev part. Not a lot of mixing is going on the devs actually work in a separate building. The good management sometimes leads to inflexible budgets. Everything is planned and if you want to add later there has to be a real good explanation.