Pros
Free food Parties, Snacks Outing Work is interesting, good learning curve Work culture is team specific, most of the teams are good and have good managers
Cons
Really stupid HRs with no manners to talk to people, policies not defined well and never answer when you ask any doubt. No comp off if you work on weekend. It is common if you are expected to work on weekend. The team I worked for was not managed well, there were more people sitting idle most of the time and very few who did all the work. The appraisals were not very rewarding as the team did not do well. Since very few people actually worked in that team and also due to poor management, the task priority changed often affecting the total productivity. At the end employee suffered. Senior management was least concerned, apparently too busy to interact, no awareness about who does what. When someone joined newly, not given good work, no buddy system freshers learn on your own and don't bother seniors, again bad management. They hire developers to create setup, instead of coding or development as QA are very busy to help so reproduce issue for seniors till they think you are ready to do actual work. Total micro management, team did not interact with other teams, there was no open culture, master slave culture with no appreciation of your work hence little growth