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.