Learn a lot, but not everyone's cup of tea
Pros
Coding skills get sharper. I got frustrated quite a few times, because senior engineers rewrote the code I submitted. I learned a lot about how my code could be better: my half page loops and functions were reduced to two lines of regular expressions and sophisticated closures. Company builds core technology, not another social sharing site or something simple. Big customers, big product, interesting coding challenges. New customers and projects all the time.
Cons
Requirements change fast - customers change priorities. After reviews, you may be asked to completely rewrite code. Meetings are short, and you are supposed to understand goals and write your own documents. Engineers are not shielded from customers via project managers. Development speed is way too fast.