Pros
Usually, you get to work on interesting projects with a team of good, friendly colleagues who are always ready to help with any issues. It’s a great place to grow your development skills, especially when it comes to working with different platforms - a lot of the projects involve porting and optimization work. So you need to be ready for the specifics of this kind of work, and also keep in mind that it's outsourcing, which comes with its own particularities - a lot of things depend on the project you're currently assigned to.
Cons
Often there’s a lot of activity and many tasks happening at the same time for developers - tight deadlines, unexpected issues popping up, and so on. Management also has a heavy load because they’re coordinating many teams at once. So occasionally there can be a lack of work/life balance during certain project releases, and some processes may get delayed if they depend on communication with management.