Pros
There are a lot of things you can work on and learn, based on the team you're in. This is a rare lottery though, and limited for offshore developers.
Cons
These are only applicable if you are working from India - Work life balance is non existent. - Pay is abysmal. If you learn a bunch of new things in your personal time and punch multiple classes above your weight, you'll get some awards. The interesting thing is these awards are allocated out of your variable pay, so you are not being paid anything extra in a sense. - Experience before expertise. Doesn't matter how hard and smart you work. If you are not getting promoted based on your skills and expertise, please don't believe the B.S. your manager sells you. - Matrix management. You don't have a clear role and multiple managers for project and reporting put you in a crossfire. - Blame mentality. The onboarding is not good and no clear info is given when moving between projects and if something goes wrong expect the blame to be moved onto you. This again depends on the team and I haven't experienced it personally but too many of my colleagues and friends have. - Group mentality and glory hogs. You are expected to NOT work over hours if it benefits your team onshore. But if it's offshore, you are expected to work in your personal time. This is a turn off because I've been supported by my peers and managers from onshore. - A master of all trades. The expectation to learn and work on atleast 10-20 different technologies is laughable. Domain expertise is not respected unless you are a Java and SQL developer. Everything else is secondary and you won't be paid for it. If you hear the term FSE, RUN. - Last but not least, 3 MONTHS NOTICE! This makes sure you can't leave easily, the buyback clause is a joke and requires the approval of your director and well... good luck getting that approved.