First, there was a phone screen with the recruiter, a technical screen (either phone or on site, candidate's choice), and an on site.
The recruiter was very professional and helpful, describing the process and the engineering culture at Facebook. They were very flexible in scheduling both the phone screen and onsite.
The phone screen was a standard technical phone screen, with the difficulty dialed up slightly. The solutions allowed were constrained (typically, constant space). After I presented my solution, we discussed its complexity.
The on site was very similar. The interview was very CS heavy. The questions asked relied on the knowledge of the properties of many data structures, including ones that are less often used. I can't recall any technical trivia questions being asked; all the questions surrounded a problem with an implementation that had to be coded on the white board. Parallelism and threads were also covered. I gave my answers in Python, and except for one interviewer that asked for a solution using Java, all accommodated. There was one design and architecture review which as different and a lot of fun. I was asked to design a system for a current feature of Facebook. The interviewers were great to interact with.
I had a couple offers that were exploding, and they said they would be able to get a decision back quick. But there was an offsite, so the decision was delayed a few days. I withdrew when I accepted another offer. To put it in context, my other offers were exploding within 72 hours of the on site, so it was a tall order and it's to their credit that they tried.
I left very impressed. When I'm looking for a position in the future, I'll definitely check them out.