Pros
* Lots of resources, tools * Lots of scale is available to get experience with * Great benefits and compensation
Cons
1) The same darwinian management style that came up with the "Like" button is not necessarily a great way to tackle big problems like Trust & Safety. 2) The review cycle can be very frustrating. Quick and dirty experiments or proof-of-concepts can get more recognition than nitty gritty engineering, depending on who your manager is. 3) It is very difficult to execute on cross-org projects - Most people are focused on their own targets, so unless your dependencies align exactly with another team's, you have to fight for support tooth-and-nail. 4) No one owns anything, so you sometimes have to fix problems or troubleshoot other components to get your own work done.