Pros
-Opportunity to write software that gets used by hundreds of millions of people -Opportunity to see how a successful company is run -Opportunity to launch often -Potential IPO
Cons
-Frontend work (i.e. work done in most of the product-oriented teams) is mostly mundane PHP and nothing that really intellectually challenging from a Computer Science perspective. (Backend may be different but I never tried that.) -Potential to get judged too quickly for performance. They are less willing than other companies to let you try something different which may be a better fit if you are not performing well enough on your current project. -Chaos that may hurt you--you may start out on one project but be expected to do something else for no good reason, that may not be the best fit for your skills. -Some managers are too busy to give useful frequent feedback. -I get the impression that they manage by a bell curve, but are not not being transparent about it.