I applied online. The process took 2 weeks. I interviewed at Meta (Menlo Park, CA) in Oct 2013
Interview
I uploaded my CV in their system and got contacted by a recruiter. In the initial phone screen we discussed my interests and strength and the recruiter got back to me about a group that sounded like a good fit.
Since I was local I did the first technical interview directly on site. It took about 45min. My interviewer was not directly associated with the group that I talked about with the recruiter. But he did take my background into account when asking questions.
It went pretty well and a couple of days later, they invited me back for a full day of interviews.
The full day interviews were mostly general coding questions and one architecture session.
Although this time, I was talking directly to the people from the group were I saw a fit with my background and interests, unfortunately the interviewers did not ask any related questions. They kept strictly to (I guess) Facebook approved coding questions. Those were very low level and I did only perform moderately well I think.
The architecture session went much better and was almost related to my background.
After the full day of interviews it was pretty clear that this was not a good fit. They confirmed that a couple of days later and the interview process stopped there.
Interview questions [1]
Question 1
I think the most difficult part were not the coding question itself but that they were the kind of questions where you have to be recall a lot from basic computer science classes. Things you tend to forget if you have already been working for a couple of years. But then again, that was not necessarily unexpected.
I applied through a recruiter. The process took 3 months. I interviewed at Meta (Menlo Park, CA) in Nov 2013
Interview
This was for a position in their Infrastructure team in Cambridge MA.
Recruiter contacted me in September and was very interested in my background and experience with highly scalable systems - both in Finance and Mobile phone payments.
I attended some small intimate presentations they did as they were initially opening a new Boston office and wanted to grow it out. The meetings were great and I learned a lot about how they solve some of their biggest problems.
I then did a screening interview on-site (because I don't do technical screens well on the phone). The question was "Given a binary tree, write code to print the tree out line by line". I did OK and got the Breadth First Search down fine, but couldn't figure out the - line-by-line part. (Turns out this is Facebook's #1 question to ask in interviews).
Although my performance wasn't great they gave me a break on that and asked me back for another screening interview. This time I prepared well for another coding interview but it turned out to be a Design interview. The problem was
"Imagine you have 10,000 servers and need to monitor the performance of each one, how would you do it" - naturally you need to be able to NOT take too much of the bandwidth and so you'll have to do sampling, have some history to watch for trends etc.
I passed that and was very excited to be flown out to Menlo Park for the final round.
I studied like CRAZY based on questions on this site and CareerCup. I took 4 weeks and studied about 15 hours per week.
Turns out I focused on the wrong questions - I studied Tree, String, Array and List algorithms based on the distribution of Q&A but I was asked Binary math and heap algorithms. Here are the questions I was asked.
1) How would you implement division without +, - or multiplication (a "classic" question, but not one of the ones I would focus on). I bombed on this as I was not expecting and could not recall my binary math. I figured out the high level outline but that was all. That I was asked this in the "culture fit" interview made this doubly unexpected.
2) Given 10,000 servers containing a Billion integers each how would you find how to find the median? I knew the answer to this question (use two heaps) - not because I had focused on it, but I had found it an interesting question while studying. However he then asked "How much memory do you need?" and I didn't know how big the heaps would need to be. The real answer I was trying to get is - what is the minimum heap you need. I had a guess but I think I got this wrong.
3) Given a List structure where each node contains a Next node and optionally a pointer to another list, flatten that list
e.g.
L1 --> L2 --> L3 --> L7 --> L8
|
v
L4 --> L5-->L6
WIll be flattened to
L1 --> L2 --> L3 -->L4 -->L5-->L6-->L7-->L8
I did OK on this - getting the answer - but it appeared I took too long. The interviewer also interrupted me a lot while I was writing an initial solution and that threw me off - I like to be more iterative in my problem solving but I think he expected 100% immediate correctness.
He had an observer there too and that guy looked bored out of his mind and that bugged me a little too as it wasn't clear who would be doing the judging.
4) I was also handed some hard to read Python code (I don't know Python) and asked to figure out what it does. I did OK on this - but again surprised to be handed hard-to-read code in a language I didn't know.
5) One final question "How would you implement the "ls" Unix function in your language of choice. It should take the input:
>ls a/b/c/*/e/*/f/*/*/g
and the output should be similar the the output given by unix."
I used a tree structure to represent the file directory structure and wrote a solution from there. I did OK on this.
Overall: Everyone seemed very nice - I had a nice lunch and the campus is interesting but it was clear that what I studied was not what I needed to (so lesson learned: don't just trust the distribution of questions on Glassdoor or CareerCup). I even got to walk past Zuckerberg's office (more of a conference room) and saw Sheryl Sandberg in there.
One interesting thing I learned is a lot of Google people are leaving for Facebook. Also I'd say if you are over 30 (I am 41) you are a rare bird at Facebook :-)
I knew based on the reactions of the interviewers that it was very probably a bust, but overall a good experience and something I will learn from. Very disappointing as I really wanted to be one of the first few Facebook engineers in the Boston area - and to work on their super high scalability issues but such is Life.
Interview questions [1]
Question 1
How would you implement division without +, - or multiplication