Pros
1) Good benefits but can give more(More LTA, Sodexo coupons, Gym Reimbursements etc) 2) Some great leaders in the org you can really look up to 3) You can always find time to play 4) Work from home
Cons
I must mention first that what happens with you in a company is much more strongly tied to the team you work with rather than the entire company especially if the company is very big. 1) The engineers don't have a lot of say. Things run the way they already are. Less innovation. More support work. Less development work. 2) Things move really slow. Months are spent in discussing the specs. 3) Very few people from Computer Science Background and those who understand the difference between doing things and doing them optimally. "Get the work done fast and asap" is the cry. 4) No "Code Reviews". Less focus on Unit Testing. 5) Too much hierarchy. You join as Software Engineer I, then you become SE II then SE III and then Senior Software Engineer. Also, there are no strict guidelines that you can follow to change your CPP level. It is your manager's discretion. 6) Too much politics