Facebook production engineer interviews are really challenging. The questions are difficult, specific to Facebook, and cover a wide range of topics.
The good news is that the right preparation can make a big difference. We've analyzed 100+ production engineer interview questions reported by Facebook candidates, categorized them, and listed a selection of them below.
In addition, you'll find preparation tips and links to the best resources, so that you can prepare more strategically and maximize your chances of landing that production engineering job at Facebook.
Here's an overview of what we'll cover.
- Example questions
What's the Facebook production engineer interview process and timeline? It usually takes around 2-8 weeks and follows these steps:
1.1 What interviews to expect
- Application and referrals
- Recruiter phone screen
- Technical screening
- Onsite interviews
1.1.1 Application and referrals
Step one is getting a Facebook interview in the first place. In this guide we're focusing primarily on the interviews, so we'll keep this portion brief. You can apply to Facebook directly or a recruiter may reach out to you via LinkedIn. In either case, it helps to have a quality (and up-to-date) resume that is tailored to production engineer positions, and to Facebook more specifically.
If you do have a connection to someone in Facebook, it can be really helpful to get an employee referral to the internal recruiting team, as it may increase your chances of getting into the interview process.
1.1.2 Recruiter screen
In most cases, you'll start your interview process by talking to an HR recruiter on the phone for 15-30 minutes. They are looking to confirm that you've got a chance of getting the job at all, so be prepared to explain your background and why you’re a good fit at Facebook. You should expect typical behavioral and resume questions like, "Tell me about yourself", "Why Facebook?", as well as some technical questions.
Depending on the role and your experience, you may be asked to complete a 20-minute online assessment consisting of 18 multiple-choice questions covering basic linux commands, operating systems concepts, and networking.
If you get past this first HR screen, the recruiter will then help schedule two technical screening interviews with Facebook engineers.
Facebook are very transparent about their recruiting process. Your recruiter will walk you through the remaining steps in the hiring process, and will also share with you a helpful email with resources you can use to prepare.
1.1.2 Technical screen
If you make it past the HR screen you’ll have two 45-minute video calls with a Facebook engineer, namely:
- A coding screen, where you’ll be asked to solve some algorithm questions. You'll use a simple online code editor without syntax highlighting or auto-completion (e.g. CoderPad), so it's a good idea to practice using one of them beforehand.
- A Linux/systems screen, where you can expect open-ended questions about operating systems and debugging in Linux.
1.1.4 Onsite interviews
If you make it past the technical screenings you’ll be invited to the real test: a full day of “onsite” interviews at a Facebook office. There you can expect a "loop" of four or five 45-minute interviews, including:
- A coding interview, where you’ll need to solve two coding problems on a whiteboard (or the virtual equivalent).
- A systems interview, where you’ll face a complex range of questions on Linux operating systems.
- A networking interview, where you'll be tested on your knowledge of network protocols. Depending on the role, this may be a separate interview or may be incorporated into another one.
- A design/architecture interview, where you’ll be asked to design a system or a botnet.
- A career interview, where you’ll face questions on your resume, your motivation for joining Facebook, your communication skills, and your project management skills. For a management role, you may get two of these.
In addition to these interviews, you'll also have lunch with a fellow engineer while you are onsite. Lunch is meant to be your time to ask questions about what it's like to work at Facebook. The company won't be evaluating you during this time, but we recommend that you behave as if they were.
[COVID note] It's likely that your onsite interviews will be held virtually instead of in-person, given the COVID-19 pandemic. However, your recruiter should be able to provide you with the most up-to-date information on Facebook's onsite interview procedures. Feel free to ask your Facebook recruiter for details after you've been officially invited to participate in the onsite interviews.
1.2 What happens behind the scenes
Throughout the interview process at Facebook, the recruiter usually plays the role of "facilitator" and moves the process from one stage to the next. Here's an overview of what typically happens behind the scenes:
- After the technical screening, the interviewer you've talked to will have 24h to submit their ratings and notes to the internal system. Your recruiter then reviews the feedback, and decides to move you to the onsite interview or not depending on how well you've done.
- After the onsite, your interviewers will make a recommendation on hiring you or not, and the recruiter compiles your "packet" (interview feedback, resume, referrals, etc.). If they think you can get the job, they will present your case at the next candidate review meeting.
- Candidate review meetings are used to assess all candidates who have recently finished their interview loops and are close to getting an offer. Your packet will be analyzed and possible concerns will be discussed. Your interviewers are invited to join your candidate review meeting, but will usually only attend if there's a strong disagreement in the grades you received (e.g. 2 no hires, 2 hires). If after discussion the team still can't agree whether you should get an offer or not, you might be asked to do a follow up interview to settle the debate. At the end of the candidate review meeting, a hire / no hire recommendation is made for consideration by the hiring committee.
- The hiring committee includes senior leaders from across Facebook. This step is usually a formality and the committee follows the recommendation of the candidate review meeting. The main focus is on fine-tuning the exact level and therefore the compensation you will be offered.
It's also important to note that hiring managers and people who refer you have little influence on the overall process. They can help you get an interview at the beginning, but that's about it.
As we mentioned above, for a Facebook production engineer role you'll face 4 or 5 interviews, consisting of:
- Coding interview
- Systems (Linux) interview
- Networking interview
- Design and architecture interview
- Career (non-technical) interview
Now let’s take a look at the type of questions you can expect from each interview. We used Rooftop Slushie and Blind to gain some insights around the process and question topics. We then analyzed hundreds of candidates’ interview reports on Glassdoor to provide you with real questions asked by Facebook. We've categorized them and we've changed the grammar and phrasing in some places to make questions easier to understand.
Let’s get into it.
The production engineering team at Facebook writes code and debugs hard problems in live production. Their work impacts more than 2 billion users around the world. You’ll therefore need to show that you think in a structured way under pressure and write code that's accurate, clear, bug-free, and fast.
You’ll be asked to solve data structure and algorithm coding problems on a whiteboard (or the online equivalent) and you should share your thinking out loud as you work through the problem.
Let's take a look at some questions.
Example questions asked by Facebook in production engineer interviews
- (*high frequency question) Given an array of integers greater than zero, find if it is possible to split it in two (without reordering the elements), such that the sum of the two resulting arrays is the same. Print the resulting arrays (solution)
- (*high frequency question) Write an algorithm to determine whether a string is a palindrome (solution)
- (*high frequency screen question) You are given two data files in CSV format . One file contains statistics about various dinosaurs. The other contains additional data. Given the following formula, speed = ((STRIDE_LENGTH / LEG_LENGTH) - 1) * SQRT(LEG_LENGTH * g) where g = 9.8 m/s^2 (gravitational constant) write a program to read in the data files from disk. It must then print the names of only the bipedal dinosaurs, from fastest to slowest (solution)
- In a given array, rotate a part of the array for which the index is given (solution)
- Find a fast way to extract patterns from a 2d matrix
- Given a vector/ array and 2 numbers, eg 2 and 5. Between those 2 positions in the vector (2 and 5) reverse the order of the elements
- Using any programming language, read an innate file and parse the strings to count how many times an email address is found
- (*high frequency question) Generate a minesweeper grid (2x3) with 3 randomly-placed mines (solution)
- Or - write a function that finds a ship and return its coordinates
- For a given set of software checkins, write a program that will determine which part along the branch where the fault lies. (solution)
To see a more extensive list of examples, complete with links to solutions, check our list of coding questions for Facebook software engineers. You’ll see they are very similar to the ones we show here.
Facebook production engineers work on some of the largest and most complex systems in the world. You’ll therefore need to demonstrate your expertise in dealing with operating systems and your ability to fix things when they go wrong.
Since Facebook uses Linux operating systems, the question focus will be on Linux and the Linux kernel. You'll need to know the whole Linux system structure, and there’s a good chance that debugging problems will feature heavily.
Let's take a look at the questions we found in the Glassdoor data.
- (*high frequency question) What happens during the boot process from the moment you turn on the machine until you get a login prompt? (solution)
- (*high frequency question) What happens in Linux, on a kernel level, when you type in ls -l? (solution)
- How would you troubleshoot a system in which you are not able to start an application on the server?
- if you had a program that needed 1TB of RAM and you only have 16GB, how would the Linux system allocate memory?
- What is the default signal that is generated when sending a kill command to a process in Linux?
- How do you determine if a drive is full?
- What does "$?" mean in bash?
- What does the command uname -r do?
- What part of the tcp header does traceroute modify?
- What's a zombie process?
- Can you kill a zombie processs?
- How do you load a Linux kernel
- What's a signal and how is it handled by the kernel?
- What is the swap area, regarding memory?
- How do you load a module into the linux kernel?
- In IPv6 what is the A record equivalent?
- Write a script that connects to 100 hosts, looks for a particular process and sends an email with a report
- How does strace work?
- How do you trace all the function calls in a running process?
- How do you see which disks are currently mounted?
- List the ways to catch a signal for a program that you don't have source code for
- What signal is sent to a parent process when the child process terminates?
- Explain containerization
- How do you make a process a service?
- Tell me something about swap
- How can you find whether a process is I/O bound or CPU bound?
- What is a filesystem and how does it work?
- How does the system call go from user from kernel space?
Facebook’s services rely on fleets of servers in data centers all over the globe, all running applications and delivering performance on a huge scale. Keeping this network reliable and efficient calls for fast decision-making and innovative solutions from the company’s engineers.
As we mentioned above, you may be given a separate networking interview or you may get some networking questions in your systems interview. In either case, you should be aware of all the protocols (UDP, TCP, HTTP, REST services, LOAS).
Let’s take a look at some of the questions.
Example networking questions asked in Facebook production engineer interviews.
- How does DNS work?
- How does HTTP work?
- How does TCP work?
- How does UDP work?
- What is the purpose of tcpdump?
- How does a router work?
- How would you send packets to remote machines and try to upgrade the packet remotely. How would you troubleshoot if some of the machines are not updated?
- What's your favourite protocol? What are its drawbacks and how could you improve it?
- Compare Http1.2 to 1.3.
- Tell me everything that happens on a browser when facebook.com is entered
- Why is TCP congestion control a problem?
- Create a protocol similar to memcached
- How is a network process terminated?
- What is your favorite network protocol?
- Where is DNS information stored on the system?
- Why wouldn't you want a root DNS server to answer queries for you, instead of delegating you to an authoritative server?
- What options do you have, nefarious or otherwise, to stop people on a wireless network you are also on (but have no admin rights to) from hogging bandwidth by streaming videos?
- We have a database running unusually slow in production. Why might this be happening?
Facebook, Instagram, and Whatsapp all have 1bn+ monthly active users. Facebook engineers therefore need to be able to design systems that are highly scalable.
You can expect very open-ended questions that will invite you to employ a range of skills and knowledge as you work through the problem on a whiteboard. You’ll need to know how to run services, and how to optimize individual containers and machines for maximum efficiency. You’ll also need systems architecture knowledge about sharding, serving, caching and how they operate with each other.
Let's look at some questions.
Example design and architecture questions asked in the Facebook production engineer interview
- Design a botnet that can exploit 10000 low-end machines to run code. All machines need to crawl web pages and return results. No machine should crawl a page twice.
- Design a system that stores and retrieves images for Facebook
- How would you design a cache API?
- How would you design a system that manipulates content sent from a client? (e.g. to clean offensive words in a comment post)?
As mentioned above, you can expect one non-technical interview as part of the onsite interview (if you’re applying for a management role, you may get two). We think Facebook calls this a "career interview" but it’s not entirely clear, so check with your recruiter.
You can expect behavioral questions that test whether you have the soft skills needed to make a positive impact on Facebook’s working culture, as well as questions about your resume and your motivation for joining the company. You may also be tested on your project management skills.
Below we've listed the questions that production engineer candidates have reported being asked at Facebook. To dig deeper into them, check out our articles on how to ace behavioral interview questions.
Example career questions asked in the Facebook production engineer interview
- Why should Facebook hire you?
- Describe how your work impacts the customer
- Tell me how you innovate
- Tell me about a time you had a disagreement with a team member
- Tell me about a good or bad manager you had. What made them so good/bad?
- Tell me about a time that you failed
- Tell me about a very tough project that you've worked on. What was the biggest challenge?
Now that you know what questions to expect, let's focus on how to prepare. It's no secret that the performance bar at Facebook is high. Some people even go as far as quitting their job to prepare for interviews full time.
This is obviously extreme and not what we recommend doing, but it shows how much effort some candidates are ready to put in. We've listed the four steps we recommend taking to prepare as efficiently as possible below.
3.1 Learn about Facebook's culture
Most candidates fail to do this. But before investing tens of hours preparing for an interview at Facebook, you should take some time to make sure it's actually the right company for you.
Facebook is prestigious and it's therefore tempting to ignore that step completely. But in our experience, the prestige in itself won't make you happy day-to-day. It's the type of work and the people you work with that will.
If you know engineers who work at Facebook or used to work there it's a good idea to talk to them to understand what the culture is like. In addition, we would recommend reading about Facebook's 5 core values and hacker culture. Facebook’s engineering page is also a great place to start familiarizing yourself with their way of working and the context you’d be entering into.
3.2 Practice by yourself
As mentioned above, you'll have five types of interviews at Facebook: coding, systems, networking, design and architecture, and career (behavioral). The first step of your preparation should be to brush up on these different types of questions and to practice answering them by yourself.
For coding interviews, we recommend reading the following article written by an ex-Facebook interviewer to understand more about the step-by-step approach you should use to solve coding questions in an interview.
And to practice, we recommend using Leetcode where you can get a lot done with the Free tier, and also access Facebook-specific questions using the Premium tier. As mentioned above, you can also find similar programming questions, with links to solutions, in our Facebook software engineer interview guide.
For the systems interviews, you can refresh your knowledge on Linux with this tutorial looking at some common Linux questions and their answers. We also recommend reading around Facebook’s own engineering page where you’ll find lots of interesting and relevant posts such as this one.
For networking questions, we recommend this video answering 50 typical networking interview questions. In the comments you can find the timeline and go straight to the most relevant answers. In addition, this presentation by Facebook’s director of engineering gives an interesting overview of some of the new networking challenges the company is facing.
For design and architecture interviews, we recommend studying our system design interview guide. The guide covers a step-by-step method for answering system design questions, which you can apply to design and architecture questions.
For career interviews, we recommend learning our step-by-step method to answer behavioral questions. In addition, you'll want to write down your answers to the behavioral questions we listed in the previous section.
Finally, a great way to practice all the question types is to interview yourself out loud.
This may sound strange, but it will significantly improve the way you communicate your answers during an interview and really makes a difference in our experience. Play the role of both the candidate and the interviewer, asking questions and answering them, just like two people would in an interview.
3.3 Practice with peers
Practicing by yourself will only take you so far. One of the main challenges of the Facebook production engineer interview is communicating your different answers in a way that's easy to understand.
As a result, we strongly recommend practicing with a peer interviewing you. If possible, a great place to start is to practice with friends. This can be especially helpful if your friend has experience with production engineer interviews, or is at least familiar with the process. You can also find peers to practice with on our free mock interview platform.
3.4 Practice with ex-interviewers
Practicing with peers can be a great help, and it's usually free. But at some point, you'll start noticing that the feedback you are getting from peers isn't helping you that much anymore. Once you reach that stage, we recommend practicing with ex-interviewers from top tech companies.
If you know a production engineer or someone who has experience running interviews at Facebook or another big tech company, then that's fantastic. But for most of us, it's tough to find the right connections to make this happen. And it might also be difficult to practice multiple hours with that person unless you know them really well.
This problem is exactly why we're preparing to launch a coaching service for production engineers, where you can get one-on-one practice and feedback from Facebook ex-interviewers. Drop-in your email address below to get notified when we launch!
Any questions about Facebook production engineer interviews?
If you have any questions about Facebook production engineer interviews, don't hesitate to post them in the comments below. All questions are good questions, so go ahead!