I applied through a recruiter. The process took 2 weeks. I interviewed at Meta (Menlo Park, CA) in Aug 2013
Interview
Recruiter contacted me through LinkedIn and we setup a phone interview. He went through some basic System Administration questions and at the end asked me for availability for a coding interview. Coding interview was about algorithm and solving three problems.
I applied through a recruiter. The process took 3 weeks. I interviewed at Meta (Menlo Park, CA) in Jul 2013
Interview
Three 45-minute phone interviews. A positive review from each qualified me for the next.
First interview was a basic-technical one with their recruiter: port numbers, subnet math, Linux commands.
Second was a Collabedit programming interview. An engineer had me build a performance monitoring script, adding more features and improving efficiency as we went.
Third was a systems interview. Heavy operating systems theory was involved. This engineer's confessed style was improvisational, probing areas of knowledge my previous answers had laid claim to. It helped to know enough systems stuff, and to be interested enough in it, to make the conversation span the whole interview time.
I passed the third phone interview, so Facebook flew me to their campus for a day of on-site interviews. I had to sign an NDA covering my experiences on that day. What I can say is that I thought it went at least as well as my phone interviews, yet I got a rejection email a week later.
I applied through a recruiter. The process took 6 weeks. I interviewed at Meta (Menlo Park, CA) in Jun 2013
Interview
Everyone I spoke with was reasonably personable and competent. The process went quite smoothly and was relatively painless.
5 phone contacts:
* basic screening (might you be a good fit for the position)
* basic programming
* (single) system administration
* basic description of what will come next+handoff to another recruiter
* in-depth description with new recruiter of what to expect during the on-site interviews
5 onsite interviews+lunch:
You first meet your recruiter, with a brief overview of the day.
* Production Engineer Manager
- Getting to know you, talk about what a Production Engineer does.
* Coding
- Algorithmically simple (write ____ system utility), but you need to be able to intelligently discuss complexity and tradeoffs of optimizations (CPU/RAM). What is the theoretical best performance?
- You don't need to know exact details of APIs, but you need to know what calls are available, and have a deep understanding of how things work. You should know exactly what is happening, including the complexity of any system calls you make.
- Accuracy and and efficiency in your code are crucial.
* Systems
- FB has problems on a scale you have not yet realized. They hit problems you haven't ever seen.
- When you see ____ crazy problem, what do you do? How do you figure out what the fundamental problem is? Once you know the problem, how can you mitigate it?
- Explain in detail what happens when you run ____ command.
- Think about this sort of information: what problems are you going to run into while doing IPC (pipes, shared memory structures etc.)? How exactly does the OS transfer information across a pipe? What are the limits or bottlenecks?
* LUNCH
- Good food, relax and get to know your recruiter a little better. Get a better feel for the environment. Ask questions off the record, so to speak.
* Design/Architecture
- FB understands you probably don't have experience at their scale. Just do your best to extend what you know to their scale.
- How do you do ____ across a large number of systems? How do you do it without interrupting production? How long will it take?
- When doing estimation, be sure to explain your thought processes.
* Networking
- Probably the least important of the 4 technical interviews.
- Be familiar with packet routing (How does the source computer know where to route packets? How do packets move across a network?).
- Know how to configure and use at least one client/server network service (and talk about it intelligently). How does it work internally? What are the features of XXX protocol?
Last, you talk to your recruiter about what you think about the recruiting process, the position, how well it fits you, considerations that you may need to think about before making a final decision.
Interview questions [1]
Question 1
The individual questions are not difficult.
I'd expect any network engineer worth his salt to have no difficulty with the networking questions. Likewise, the coding shouldn't be a problem for a software developer, and systems isn't going to be hard for a systems administrator.
The trouble is the /breadth/ of questions. What are the limits of your knowledge? Can you make a reasonable guess as to what is going on based on what you do know?