The interview process began with a phone screen, followed by a coding exercise over the phone, and then an in-person interview with 6-8 people across 4 sessions. The initial phone screen covered typical tech industry buzzwords. The coding interview was really fun, and I was excited for the in-person interviews, but that's when everything fell apart.
For some reason, Facebook has decided that at the in-person interview, you have to write your code on a whiteboard, and it can't have any bugs. They even tell you to practice coding on a whiteboard before the interview, because apparently, whiteboard coding is a big part of working at Facebook. I'll just go ahead and say it: no one writes software longhand. It's not how it's done, and to expect people to write nontrivial things on a whiteboard in 2015 is beyond ridiculous, especially considering that part of Facebook's own process is a coding interview where you write a program using a computer.
If you're interviewing a lumberjack, do you have him draw a chainsaw on a whiteboard?
The most important thing to keep in mind if you want to get a job at Facebook is that they reinvent everything. Every question they ask will be about how you would reinvent something. I was unprepared for the amount of guessing I was required to do (I'm terrible at guessing). Remember when answering them that they have basically unlimited resources and are willing to reinvent any wheel. I'm not saying what they're doing is bad, I'm saying it's completely different than anywhere else I've worked in many years in the business. I think I'd be working there now if I had approached the questions with that in mind, instead of my instinct, which is to leverage the work of others as much as possible to my advantage. For example, I look at what's out there on the internet and then do whatever I need to. If there's something already there, I use that. If not, I'll write my own, or something in between – like everyone not working at Facebook does. Don't blow it like I did. Remember, it's not a normal job; it's Facebook, where there are always hackers hacking, and they have more money than Canada to hire more hackers to hack on whatever they've hacked together.
The recruiters were nice, and the management seemed friendly and capable. Lunch wasn't very good, but I was probably just stressed out. If you've ever been to the office when it was Sun Microsystems, be ready for a shock. Also, the cafeteria was like the mall at Christmas.
I'd love to work there, and on a different day, I may have gotten the gig. But at the end of the day, you've still got to make it through a long gauntlet of bored-looking engineers looking to exclude you.
They have unique problems there, and it would be a super cool job. So, I hope this helps someone else. As for me, I'll never go through it again.
How would you design a cache API?
Reimplement 'tail' in a scripting language.
The following metrics were computed from 46 interview experiences for the Meta Production Engineer role in Menlo Park, California.
Meta's interview process for their Production Engineer roles in Menlo Park, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Meta's Production Engineer interview process in Menlo Park, California.