A Senior Engineer’s Guide to Meta/Facebook's Interview Process and Questions

~20 minute read

Meta/Facebook’s interview process and questions

Meta/Facebook’s (we’ll call it “Facebook” for simplicity) interview process consists of the following steps:

  • Call with a Facebook recruiter
  • Technical phone screen (and possibly a second technical phone screen)
  • Onsite interviews
Facebook’s interview process: recruiter call, technical phone screen, onsite

Before we get into the details of each of these steps, here are a few general notes about Facebook’s hiring process, evaluation criteria, and interviewers.

Facebook interviewers are guided by the company’s current motto: move fast. All human groups have a metaphor they operate from. Facebook isn’t a family or an army. They’re a well-structured Formula 1 team; they spend a lot of effort to put safeguards in place, and then they go pedal to the metal. At Facebook, speed wins.

At Facebook, because the process is centralized, you cannot interview with multiple teams concurrently like you can at some other tech companies. You get one shot on goal every ~3 to 6 months, depending on performance.

Anecdote from a Facebook Interviewer

“If you pass Facebook’s onsite, but don’t take the offer your status of ‘passed onsite’ is valid for a year. If you don’t take their offer and then choose to re-engage within that year, tell their recruiter ‘I already passed the onsite’ and push to get steps skipped because you usually can.”

Tip to get unstuck

When interviewing at Facebook, listen closely to the subtle clues and hints your interviewer gives you. Facebook is the only FAANG where you can’t become an interviewer unless you give good hints.

Step 1: Recruiter call

Please see the previous section called “A note about recruiter calls”.

Step 2: Technical phone screen

Facebook’s technical phone screen is a 45-minute coding interview that focuses on data structures and algorithms.

Facebook’s technical phone screens are conducted in CoderPad. If you’ve never used it, you may want to play around in their sandbox and get familiar with their environment before your real interview. One specific thing about Facebook's way of using CoderPad is that during the interview, they’ll have code execution turned off – if you’ve used it before and are accustomed to testing your code during the interview by running it, you’ll need to practice not being able to.

At the beginning of the interview, your interviewer will ask you a question or two about your resume and recent work that you’ve done. These questions don’t meaningfully factor into the interview’s outcome – they are just meant to break the ice and get you talking. The part that matters is the technical portion.

Step 3: Onsite interviews

The typical Facebook onsite will consist of the following:

  • At least two coding interviews
  • Two system design OR product design interviews
  • One behavioral interview

Types of Facebook interviews and what to expect

There are four main types of interviews you’re going to encounter when you apply for an engineering job at Facebook – coding interviews, behavioral interviews, and either a system design or product design interview. Here’s what to expect during each of these rounds of interviews.

Coding interview

Facebook's process is highly standardized, so coding interview questions and themes tend to repeat. Coding questions are pre-approved, but that doesn’t mean the interviewers have no freedom.

Anecdote from a Facebook Interviewer

“Facebook gives you the questions to ask or modify. But they don't tell you the answers in their interviewing wiki. And they let you design the path of the question: you get to ask your own twists and turns.”

Anecdote from a Facebook Interviewer

“There’s some variance with the interviewer, but usually there are 20 mins per question, and the questions are simple. They want you to get the algorithm fast, and implement the basic solution. The kind of bugs that can be acceptable are empty input, and out of scope inputs like empty array/null. But an incomplete algorithm at Facebook usually doesn’t cut it. They want you to get to it and get to it quickly, and you can sacrifice making a little bit of a mess along the way.”

Anecdote from a Facebook Interviewer

“I think there is a rule that during the programming interview, interviewers have to ask two questions. And the questions have to be balanced. The first is more like a juicy question testing problem solving skills and you as the interviewer can permit some bugs in the implementation. The second will be easy from the algorithmic point of view but the goal is to assess how much the candidate can write debugless code and test this code perfectly. And if a candidate fails to solve both problems, even if they somewhat shine during one problem: it will be ‘No Hire’.”

It's not that bugs are encouraged, it’s that they're the only company that's top-down directive is: sometimes, in certain rounds, bugs are okay. No other company does that. Facebook relaxes the need for bug-free code so that candidates can code faster.

Finally, Facebook doesn’t ask dynamic programming questions and, in fact, those questions are banned.

For everything you need to prepare for Facebook’s coding interview, check out the section called "Facebook coding interview preparation resources" below.

System design OR product design interview

Facebook hires two types (on paper) of backend engineers: System Generalists and Product Generalists. System generalists get a system design interview, and product generalists get the confusingly named product design interview (in most other contexts, product design refers to UI/UX).

Which of these interviews you get is determined by your recruiter, based on your experience. If you have worked on a lot of product features, then you get a product design interview. If you have worked on high-scale distributed systems, then you get system design.

The product design interview at Facebook is similar to the system design interview but with some key differences:

  • System design focuses more on high level architecture and scale, while product design focuses more on interactions between services. For example, the expectations for API design in system design interviews is just high level arguments/data passed, whereas product design focuses more on the details, i.e., a more comprehensive list of arguments and response structure.
  • Product design focuses more on how and what data flows through the entire system, between each service.
  • Data models are weighted much higher in the product design interview than in system design. The expectation is to be more thorough and detailed.

Anecdote from a Facebook Interviewer

“Product design is less databases, more data flow, more time spent on details of the API (e.g. parameters that will pass). System design is more databases, less API details, and more about scaling.”

Anecdote from a Facebook Interviewer

“Many people think Facebook only asks high level system design questions like ‘Design Twitter’ or ‘Design Facebook Feed.’ But that’s not the case. They also ask low level questions. In E6 or above interviews, you will most likely be asked ‘Design Redis’, or ‘Design Kafka’, or ‘Design Memcached.’ I’d even seen rare occasions where E5 candidates would be asked low-level system design questions; low-level questions are less common in rounds for E5 and below.”

Anecdote from a Facebook Interviewer

“You have to ask about back of the envelope estimations. A lot of senior engineers hate to do that. I hate to do that as well. It’s a waste of time. When I do the ‘There is a rule that I have to do this. But there is no point in doing this. Let’s spend 5 minutes talking about real system design. Let’s assume we have to scale our system from 0 to Google level and therefore estimations are just a waste of time.’”

Tip to get unstuck

Ask your interviewer: “Do you want to spend a few minutes on estimations? I’m okay with skipping it, but if you need to see it, then let’s do it. If we skipped it, one thing that might be a more interesting conversation would be spending a few minutes on how to scale this system.’”

Tip to get unstuck

If you don’t know what to talk about in a E5 Facebook system design round, talk about user experience. Go on about two choices you could make, then explain in depth the one preferred because it’d be a better user experience.

It’s also common for Facebook interviewers to ask you to walk them through a system you’ve worked on in the past, which is known as a reverse system design interview.

Behavioral interview

Unlike technical questions, behavioral questions at Facebook are not standardized: interviewers can ask you whatever they want. Behavioral rounds are of medium/low importance at Facebook; they’re less important than technical interview rounds, but they do carry some weight. For the best summary of what to expect in a Facebook behavioral interview, read this blog post by a former Facebook engineering manager – in it he describes exactly how behavioral interviews at Facebook are evaluated and also includes a bunch of sample questions.

Here is a list of questions to get you started. Read the post to get examples of good answers (split out by the candidate’s seniority level!)

  • “What project are you most proud of and why?”
  • “Tell me about a recent day working that was really great and/or fun.”
  • “Tell me about a time when you wanted to change something that was outside of your regular scope of work.”
  • “Tell me about a time you had to make a fast decision and live with the results.”
  • “Tell me about a time when you needed to overcome external obstacles to complete a task or project.”
  • “Tell me about a time a project took longer as expected.”
  • “Tell me about a person or team who you found most challenging to work with.”
  • “Tell me about a time you disagreed with a coworker.”
  • “Tell me about a situation where two teams couldn’t agree on a path forward.”
  • “Describe a situation when you made a mistake, and what you learned from it.”
  • “Tell me about some constructive feedback you received from a manager or a peer”
  • “Tell me about a skill set that you observed in a peer or mentor that you want to develop in the next six months.”

How Facebook makes hiring decisions

Facebook’s candidate review and feedback process is usually completely asynchronous. Sometimes, they’ll do a live debrief but it’s rare. This means there’s a low likelihood for an interviewer to “fight” for a candidate. Socially influencing interviewers won’t go very far here.

Facebook is also the only FAANG that asks interviewers for a confidence score when filling out post-onsite feedback forms. As a result, the process at Facebook can be more forgiving on failed rounds because a lower confidence score means a failed round carries less weight. Also, Facebook is the only FAANG that directly asks interviewers about downleveling.

Anecdote from a Facebook Interviewer

“Coding is used to decide ‘Should we hire this person?’ System and product design is used to decide ‘How should we level this person?’

For coding interviews, the interviewer says a binary score first: ‘Hire’ or ‘No Hire’. Then in the comments, they say how confident they are in that binary score. The ‘Hire’ or ‘No Hire’ is an official metric, but the confidence score is not.

For system/product design, the interviewer gives the ‘Hire’ or ‘No Hire’ first. Then they say if the candidate should be considered for another level.

So the final decision could be like: ‘No Hire’ for E5 with low confidence. ‘Hire’ for E4 with high confidence."

In cases where the hiring panel is hung, it’s possible they may request one more follow-up interview to help them get more signal.

Anecdote from a Facebook Interviewer

“Interview feedback is discussed primarily by the system design and behavioral interviewers, and those are the interviewers who have the most say regarding both the hire decision and a candidate’s level. If interviewers don’t feel like they got enough signal and the candidate ends up being on the fence, the recruiter will push for an additional round. Indicative hint: If you have an additional follow-up interview, your interviewers were probably split."

Anecdote from a Facebook Interviewer

“At Staff level and above, it’s a mandate that candidates can’t get hired if they don’t pass both system design rounds.”

Anecdote from a Facebook Interviewer

“For E6 and above candidates, if you fail one system design round but do well in the other rounds, you can get a mulligan. They can let you retake one system design round. But the same isn’t true for behavioral: if you fail there’s no mulligan. If you fail the behavioral round, it will be ‘No Hire.’”

Team matching and Bootcamp

Unlike other FAANGs, at Facebook, you generally accept an offer before knowing with which team you’ll end up working. After you accept your offer, you’ll take part in a 6 week “Bootcamp”, where you’ll be trained on Facebook’s engineering infrastructure and systems. After the bootcamp, there will be a 2 week team-matching period.

Anecdote from a Facebook Interviewer

“At most companies you get to know your team before your first day of work. Meta has a process called Bootcamp. You join Meta, and then after that meet teams and decide who to work for. I found it better than a 30 minute phone call with the hiring manager–which is how you choose a team at Google. I prefer how Facebook does it because before you pick your team you get more data; you can meet their pets, you can look at their code, and stuff like that.”

The team matching process is a bit like speed dating. You meet with hiring managers to gauge fit and chemistry. In order to move forward, both of you have to opt in.

Anecdote from a Facebook Interviewer

“When the market is good, you can talk to 20 different teams at the same time in Bootcamp.”

There are exceptions – some people with niche skills may get hired for a specific team before they start Bootcamp, but they still have to do the bootcamp period, just not the team-matching part afterwards.

Anecdote from a Facebook Interviewer

“While the overall process doesn't really change much, for E6 and above (the higher you go the more likely this is), candidates might be assigned to a team before the process even starts. Like for instance you might interview for a specific team, rather than a generalist SWE. It is more common at E6 and above.

In my whole time, I only met one E6 engineer who selected the team at the Bootcamp, as opposed to being assigned a team before start.”

Facebook coding interview preparation resources

Top Facebook Questions" on LeetCode is a solid question bank for your practice – you’ll want to practice modifying these a bit because you’ll get slightly modified versions of these questions in real life.

In addition, we’ve aggregated a bunch of useful Facebook content for you! We have replays of candidates doing mock interviews with Facebook interviewers, long-form solutions to common Facebook questions, and deep dives into technical topics that tend to come up in Facebook interviews.

Facebook interview replays

Below are a series of mock interview replays, conducted by Facebook interviewers on our platform. Watch them so you can learn from others’ mistakes.

Solutions to common Facebook questions

Below are common questions that interviewers from Facebook ask on our platform. Since our data comes from mock interviews, questions may not be exactly the same as what you'd see in real interviews.

MEDIUM
Data Structures and Algorithms

Odd Even Linked List

Given the head of a singly linked list, group all the nodes with odd indices together followed by the nodes with even indices, and return the reordered list.

MEDIUM
Data Structures and Algorithms

Remove Nth Node from End of List

Given the head of a linked list, remove the nth node from the end of the list and return its head.

EASY
Data Structures and Algorithms

Valid Palindrome

Determine if this string, after removing any one character, can become a palindrome. If possible return true, otherwise return false.

MEDIUM
Data Structures and Algorithms

XML Parser

Write an XML parser and formatter.

MEDIUM
Data Structures and Algorithms

Fruit into Baskets

Given a sequence of fruit trees represented as an array of strings. Return the maximum number of fruit trees you can pick from given you can only have one type of fruit in each basket and once you start picking you can't skip a tree and then keep picking.

EASY
Data Structures and Algorithms

Lucky Numbers in a Matrix

Given an m x n matrix of distinct numbers, return all lucky numbers in the matrix in any order.

EASY
Data Structures and Algorithms

Infinite Binary Print

Print out all numbers in binary, preserving leading zeros.

MEDIUM
Data Structures and Algorithms

Prefix Pairs

Given a list of words, match all words with other words from the list that are a prefix for the word.

EASY
Data Structures and Algorithms

Two Sum

Given an array of integers, return the indices of the two numbers that add up to a given target.

HARD
Data Structures and Algorithms

Minimum Window Substring

Given two strings s and t of lengths m and n respectively, return the minimum window substring of s such that every character in t (including duplicates) is included in the window.

Technical topics

To figure out what technical topics might come up in your Facebook interviews, we did a few things. First, we spoke to a bunch of Facebook interviewers in our community. Then we cross-referenced all the anecdotes we heard with Glassdoor data, the LeetCode question list above, AND our own data-set of mock interviews in the style of Facebook. Based on all of the above, here are the technical topics you’re likely to encounter.

Other Meta/Facebook interview preparation resources

The following interview guides and resources can help you better understand Facebook’s recruitment process and support your interview prep so you impress the hiring committee.

System design

  • A Senior Engineer's Guide to the System Design Interview
  • If you’re primarily going for E5, then mainly practice high-level system design questions. If E6, then focus on low-level questions.
  • Reverse system design interviews happen sometimes at Facebook, so you might like to practice these too.

Behavioral

Want to know if you’re ready to interview at Facebook? Do anonymous mock interviews with real Facebook interviewers, and see exactly where you stack up.
See available times

We know exactly what to do and say to get the company, title, and salary you want.

Interview prep and job hunting are chaos and pain. We can help. Really.