I applied through a recruiter. The process took 3 weeks. I interviewed at Meta
Interview
I didn't end up getting an offer.
Due to NDA I cannot explicitly write down the questions, but look at the last 150 questions in Glassdoor and CareerCup and you'll do fine (I did fine in the coding rounds, get to that in a bit).
Usual advice: Do a lot of white-boarding for questions and be ready to talk extensively about your projects and architecture and design.
Screening Round:
I applied to Facebook by getting connected to a recruiter through a colleague and friend. The process started in Seattle and I opted for a in-person onsite interview for the screening round (they have this option for locals in Seattle/California).
The interview went well i.e. I figured out how to solve the question in optimal time and space complexity. I made some mistakes here and there while writing the solution down but the interviewer didn't seem to mind. Contrary to what I had heard, he wasn't too anal about syntax (also helped that I write in C# he wasn't very familiar with it)
Onsite Round:
I received an email from the recruiter that they wanted to move forward and call me onsite. I was like, cool!
I took around 2 weeks to prepare and also tried to do design questions. I felt a bit under prepared around design and tried to make up for it in the last few weeks by watching videos around cloud architecture (and open source stuff like Hadoop, Kafka and Storm).
Onsite was pretty straightforward. First round was a career fit/discussion and I did pretty well (I think). It was mainly some behavioral questions and a lot diagrams around the architecture in my current and previous projects.
Second round was the one that I messed up.
The question was around designing an existing Facebook feature (as a hint, think about the various add-dons you see on FB and instagram like Chat, Search, latest friend related news or popular links). When you really dig into designing this feature, its quite complicated and requires a reasonable amount of knowledge around distributed data storage etc. etc.
You need to nail this round to get into Facebook (in my personal opinion). I'm guessing they will adjust their expectations based on your years of experience.
There was a lunch which was informal and two more coding rounds where they asked questions that were very similar to the ones I had practiced. I made some silly mistakes here and there but again (due to practice) came up with optimal time/space complexity answers.
Got my result exactly one week from the my onsite date. No offer. But learnt a lot.
I applied through an employee referral. The process took 2 weeks. I interviewed at Meta (Los Angeles, CA) in Feb 2015
Interview
First the interviewer introduced himself and ask me questions like why facebook and what do i think are the shortages of facebook. Then we start coding, the same questions in leetcode. After that he said he forgot to ask me about my project experience and I talk about one of my project with him. Last part is the question part.
I applied through a recruiter. The process took 4 weeks. I interviewed at Meta
Interview
No different to others mentioned here: contacted via LinkedIn, one screening call (45mins), then on-site with 4 x 45mins interviews.
Overall, the algorithm questions are not particularly hard. I have interviewed with FB twice, and both times felt the sessions went well (although considerably better the second time), but no offer either time. You won't get detailed enough feedback to know where you might have tripped up, if anywhere, though. From their point of view, I think this is understandable, but makes it harder to deal with the rejection; if you had fouled up every session you would feel better than if you basically answered all the questions, with seemingly positive feedback from each interviewer, yet not got an offer...
As noted elsewhere, it's probably best to be stoic about the whole thing and accept that they have so many candidates they probably apply a "benefit of the doubt" policy that works against in their favour; ie. I would imagine they employ a sort of "thumb up", "thumb down" policy.
They are, however, very pleasant and expect to have a positive experience of the process even if the result is not what you might want yourself.
Interview questions [1]
Question 1
One session of higher-level design, the rest are all standard algorithm sessions. All of this is explained in advance, so no surprises. One on-site session is a more traditional interview.