Pros
They grill you hard in the interview but once you're in, you get a lot of autonomy and freedom to make decisions about how you think things should be done. Zero bureaucracy/red tape, very few meetings, and people are encouraged to build what they think will work. Two of the common sayings there are "code wins arguments" and "what does the data say?" meaning that if people disagree about something, the debate gets resolved by looking at numerical data and/or by building something and seeing whether or not it works. This is a very fast, turn-on-a-dime, high productivity, zero BS environment. It's also a lot of fun to work there. People work hard and play hard.
Cons
The cons at Facebook mostly fall under the heading of "growing pains". Technologically, things move so fast that the layers of the technology stack are often in flux. If you are building a system that depends on other systems at FB, be ready for them to change underneath you. Nothing stays the same for long at Facebook. Every layer of the stack changes, and changes quickly. At the human level, the company has also grown very quickly which means many of the lower level managers are new or inexperienced or got promoted to management for being good with computers (but not necessarily with people). It can be frustrating to report to junior managers and/or people who are clueless about social skills. With that said, the higher level, more senior managers tend to be really good and their skill often "trickles down" in various ways.