Let's get tactical on what the Facebook interview looks like for engineers.
There are 5 steps to getting hired at Facebook as an engineer. Here's what the Facebook interview process includes for software engineers and what you should consider inyour interview preparation:
A recruiter will give you a call for a quick chat - this will mainly cover your resume, guve you a chance to learn more about Facebook and ask a few behavioral questions. Recruiters usually cover certain areas so if you're not a fit for the specific recruiter, you may be referred to one of their colleagues. This is the fastest and easiest part of the Facebook interview but don't underestimate it- recruiters are gatekeepers and you won't advance if you don't impress them. If you need help updating your profile so recruiters can find you, sign up for office hours.
The next step, similar to Google, is to do 1-2 technical phone screens lasting 45 minutes each. This interview will be the first with a Facebook software engineer and is primarily a coding interview. Each phone screen will consist of solving a problem centered on data structures and algorithms.
For first 5-10 minutes, the interviewer will ask questions about your experience and your plans for your career. The first question is usually around your backgroung or aspirations. The next 30-35 minutes will be spent on coding in an online collaborative editor. You'll be soving one or two questions - they're specifically chosen to be short enough to explain in a few minutes and to solve in 10-20 minutes.The goal is really to understand your approach to problem solving. You will be given freedom to solve the problem any way you choose and the interviewer may add some additional constraints as you go.
Most loops include 4–6 interviews on average and are done in Person in Menlo Park. Most of these will be technical and specific to the org or team you’re interviewing for. Nearly all onsite interviews will include some variation of code and system design plus a what Facebook calls the Jedi interview ( behavioral interview)
This is the behavioral interview - you will be asked questions about conflict, projects you worked on, times you showed leadership, what motivates you, etc. Here are examples of questions you might encounter:
This is the coding component of the interview- it's central your success at getting hired.This will be much harder than your phone screen - brush up on your arrays, binary trees, stacks, queues, heaps, sets, tries, etc. There is no way out of this but doing a TON of leetcode.Both recursion and dynamic programming are very prominent topics that you will no doubt want to have mastered prior to your interviews.
This is basically the system design interview-it's 45 minutes and almost never involves coding. If your experience is more on the product side- this might be more geared towards product design for you instead. Facebook will usually match you with an interviewer with similar experience.
You will use a whiteboard to sketch out your solution and talk over it. This interview tests your ability to solve a non-trivial engineering design problems.The interviewer will intentionally ask you very broad questions to see how you arive at a solution and analyze your thought process.
There's two flavors to this - imroving on a design or designing from the ground up. Make sure you practice for both and that you spend time reading engineering blogs about how complex systems were built. Here are some examples of what you might be asked:
Starting from scratch: Make sure you practice on examples that are representative of complicated, high-scale systems similar to Facebook
Next- use a framework. These questions will be intentionally broad and more than your answer, the interviewer is looking to see HOW you think. One thing Facebook recommends is answering methodically, starting with requirements and working your way down to implementation.
Example from Facebook:
Requirements questions that might apply:
If you're paired with a more product- minded engineer based on your background, your experience will differ a little but overall it's quite similar to the system design interview. This interview will focus a bit more on product sense than the system desing version.
Here's a question Facebook shares an example for aspiring candidates: Tell me how you'd design a client-server API to build a rich document editor.
You might want to think through the following:
Here, similarly, you want to follow a framework. Be realistic - there's not enough time to cover and iterate on every possible solution. Choose a solution path, outline your goal and break it into parts to help the interviewer easily follow you. A good solution covers both high level ideas as well as low level specifics and also discusses all the tradeoffs you might have to make.
After the interview, the Facebook recruiter will follow up with you on a decision. If you get a " yes" and you're offered a role as a software developer - you will need to respond to the job offer and then negotiate your salary.
Find out how much you’re worth and how to ask for more — the right way.