I applied online. The process took 4 weeks. I interviewed at Meta (Menlo Park, CA) in Oct 2015
Interview
The process started with my submission of a resume. Several months later, I was invited to a phone interview with a recruiter. After that, there was a 45 minute technical phone interview that covered a basic palindrome detection coding exercise that I solved in Python. Several days afterwards, I was invited to a second 45 minute phone interview that focused on performing a merge-sort with pure SQL. Finally, I was invited to fly out to Menlo Park and interview on-site for an interview loop.
The phone interviews went relatively smoothly, both interviewers were incredibly kind and professional. The on-site interview was an amazing experience, but was a night and day difference from the difficulty of the phone interviews. Although substantial in subject, each interviewer was again kind and professional and I got the honest feeling they wanted me to succeed.
It was the first interview I've ever had where I didn't feel attacked interrogated and felt at complete ease. Facebook has done a wonderful job at cultivating a supportive and encouraging culture which shone through during the entire interview process.
That all said, my best advice for those interview is to not let the colloquial atmosphere lull you into a sense of ease. While the interviews are warm and helpful, their ultimate goal was to choose prime candidates. Be yourself, be honest, but never "let your guard down" and choose your words carefully. Every response is measured!
Some technical notes on how to prepare (and consequently things I think I fell below the grade on!):
1. Be able to effortlessly calculate Big O for any given algorithm.
2. Be ready to use both built-in solutions for your chosen programming language and custom. For example, splitting a string by spaces "by hand" and using a built-in.
3. Switch gears between iterative and recursive. It may not matter what is the most efficient route, but the interviewer may want to see if you're able to solve the problem with either approach.
4. Ask for your boundaries. Can you use more than one technology? Can you offload some of the work to the DB? Can you use built-ins?
5. Understand the fundamentals for everything you say. For example, know when to approach query optimization with an index and when to solve it with summary tables.
6. Triple check with your Uber drive to make sure they know the right building to go to ;)
Interview questions [5]
Question 1
Create DDL (table and foreign keys) for several tables in a provided ERD. ERD contains at least one many to many relationship.
Given full authority to "make it work", import a large data set with duplicates into a warehouse while meeting the requirements of a business intelligence designer for query speed.
I applied online. I interviewed at Meta (New York, NY)
Interview
Prepare technical concepts, and practice previously asked questions as much as you can find online. 4 rounds in the total process. It's easy as long as you just practice a LOT.
I had Python and SQL round for 30 minutes each. The interview was for 1 hour 30 minutes for SQL and 30 mins for python coding.
Completed 5 questions each but still got rejection email the next day.