I was contacted by a Facebook recruiter after I put my resume in the GHC (Grace Hopper Conference) resume bank. I never expected them to be interested so I never bothered to apply. I scheduled an interview with them during GHC and started frantically preparing, believing that this will be my one and only chance to interview with a company like Facebook. It paid off. I did well enough on the first round to pass, and the final round interview was the next day! THE NEXT DAY! When I received the news I was at a party, and I actually tried to postpone it. However, after talking to a friend, I was convinced that it was better to finish the interview process at GHC, so I managed to switch my final interview to the last interview slot available on Friday during GHC.
The final round was HARD! I was given a problem on dynamic programing. I had no idea how to solve DP problems at that point, so I only had some intuitions and babbled. I was totally, utterly thrown off guard. The interviewer was really nice and guided me along the way; towards the end I was able to solve an easier version of the problem. Then, 45 minutes ended and we were chased out of the interview booth because it was closing. I was utterly demoralized and thought I bombed the interview and decided that I need to study DP much more before trying again with Facebook next year.
The following Monday I receive a cryptic email, saying 'good news, do you have some time to talk on the phone'. So I schedule a time to talk, thinking they are rejecting me. They gave me an offer. I was elated. I accepted the offer without much second thought because it's FACEBOOK. I was able to choose from a bunch of start dates. They also offer corporate housing and a bunch of benefits.
If you did badly on an interview because the problem was really hard, don't think the worst case. You might have done pretty well compared to others. Also, preparation pays off. Good luck folks!