Pros
- Free food - Reasonably good compensation - Reasonably flexible hours - Lots of smart, capable people - Work can be exciting
Cons
- Working on product teams is trying because of the micromanagement of Zuck and other upper management. Many projects get delayed because they ask for random changes. - Working on backend teams doesn't have that problem, but they are typically second-class citizens and don't get as much respect as frontend teams. - Facebook is very large now and the bureacracy is starting to accumulate quickly. It used to be that engineers could just do stuff, but now almost every change requires a great deal of pointless discussion or overhead. For instance, you now have to fill out a form just to log some data. - Very strong focus on some of the "hot" product teams means that the rest of the company doesn't get preference with respect to product managers, designers, etc. - Most frontend work is boring mundane PHP. The only challenge comes from poorly-designed legacy systems. - Managers will often ask you to work on something you don't care about just because it's a priority for the company. This goes against the claimed philosophy of Facebook, but it's the way things are trending.