Pros
I was employed for 3 years. I worked for 2 different clients.
1. when you are hired as a Full time Employee (means you work on internal company products) , the expectations from you are that you will be able to adapt to the changing technology needs every 6 to 12 months. e.g. i started of as a Junior Java dev, then got into Adobe Flex for sometime and for the last 1.5 years have been doing Amazon Cloud, Angular.js, backbone and Spring. I worked with a large insurance and a Finance client. pretty good resume builder and good exposure.
But i must warn this might not be a good fit for people who are looking forward to do the same thing i.e. 9 to 5 types. it may not be a good cultural fit.
This company pays a full time salary (means they even pay on bench), so you cant have any preferences on what you want to work and what you dont.
thats the downside.
But its mostly a JAVA shop. So i would advise php, python or .NET guys to stay away from this company as you may not learn much.
2. Otherwise i got my Visa taken care of (which was a big relief as other small companies that are willing to hire less experienced people dont file for Visa and some dont even have the experience to deal with the complexities of H1b process).
Cons
Cons are quite a few.
1. the company is split between 2 schools of people. (1 that are too product focus and want to build complex Apps and others that are focused on pleasing the clients i.e. similar to accenture, deloitte, E&Y etc).
becuase i worked with both kinds, i can say the strategy of the company is so divided.
2. You cant have location preferences. not atleast for the first 1 yr becuase they pay you on bench, they expect you to pack your bags and move once a year or so.
3. Another thing is you need to be able to adapt to their technical needs (once again becuase they pay you full time it all depends on what the client needs.)