Pros
Depends on the projects. I worked in product as QA during that time I had a lot of time to learn about the all the projects. Then I moved to client project, contract based. hence had to learn all the things in minimum amount of time. Learnt so many new things. If profit growth is higher, we can expect decent, very good % of hike.
Cons
No permanent role [for me]. I was hired for development role then moved to QA then again automation engineer, developer and now again, I moved to QA team. They change the roles and responsibility based in the projects. I feel like I'm not strong enough in one particular technology. There will no training provided by the company to learn about new techs that required for the project. Self learning is must. Initially they provided Udemy corporate logins, but i'm not sure it was that much helpful. Of course, office politics.