Pros
as long as you're not in an onshore delivery building, the benefits are competitive and the projects are reasonably good. Most places have casual Fridays and various other small advantages such as health screenings and usually in office facilities like a gym and available gas station like food and drinks.
Cons
basically you'll be a cog in the machine, at any point you're not working overtime for them, driving for them, or generally doing things you weren't told you would have to do for them...you're canned or in trouble one. Depending on where you are located things are better or worse. Some positions in some locations are fine while others are borderline slave labor. There is no real way to know and very little you can do about it. You might get to work from home and quit at 5 or you might do pushes to production at 2AM after working a 10h day. You don't really get a job here, you get a laptop and its up to you to find a job through their poor interface with a project often not in your office. If you get thrown off a project no matter what the reason, you have two weeks tops to find another job, this is called "being on the bench" and they consider it your responsibility to guess what they think you should be doing. In general its key to keep in mind this is NOT a software developer job, its NOT a tester job, or an analyst job or anything else its a job where you are allowed to find another job or lose both jobs, which is as frustrating, confusing, and unstable as it sounds.