Pros
* Agile in its true colors (Can learn TDD, Pair programming and other engineering practices) * Few really good developers. * Can experiment with latest open source tools and technologies. * No nonsense enterprisy tools are being used on green field projects, and you can challenge each and every technical decisions made in the projects.
Cons
(Disclaimer: All this applies only to TW India) * Huge concentration of empty vessels. * Career progression is proportional to the amount of noise you make. * Mediocre decision makers. Some operations folks can easily be replaced by anyone on the street by paying 10% of the salary that they draw. * High expectations from technical folks with little or no rewards. * You can end up working through your weekends and nights (while constantly being judged) delivering high quality software without even getting a sense of your greying hair, while some weasels in the corner will keep climbing ladders just by sending good morning emails to the entire office every day. * Every office has bunch of folks(cartels) who decides who gets promotion, who travels where, who gets how much hike and all this is totally driven by perception. * Debates and debates and debates with no closure on any topic that they debate. Sometimes you will feel bunch of headless chickens have taken over this "once upon a time" good company. * BAs and Managers :-) (Off course there are exceptions but I am talking about majority.) * Almost 80% of the projects are CRUD web sites with no complexity at all, so all that "highly technical" projects propaganda is fake.