Pros
I always heard very bad things about working for a consulting/outsoucing software development company, and I have to say that working here has been a lot better than expected .There is a degree of flexibility, the work/life balance is good, HR and managers are constantly worried about employee satisfaction and retention, you can get to work from home (homeoffice) if you negotiate this, the pay tends to be better than other consulting companies. And there is a general company policy to mantain and treat well the employees.
Cons
As you work with different customers, it can become annoying if you have to work with someone who is difficult, specially when some projects are poorly managed, and some team-leaders/managers tend to have a boot-licking attitude toward the clients. As the company grows some managers and team leaders are way overworked. Usually there is little or no autonomy to choose the tecnology/coding style as this is set by the client and as most of these are from the financial sector/conservative, you will not work with state of the art tecnologies. As the company grows at about 30%/year, sometimes there is a gap between infrastructure/number of employees/ building space and as a result things can get quite stressfull when the amount of work exceeds the available capacity.