Facebook Software Engineer Interview: A Complete Guide
In this article
Want to be a software engineer at Facebook? Here’s what you need to know about the intensive Facebook interview process to land a highly sought-after and competitive job in one of the world’s most well-known tech companies.
Facebook is one of the world’s most famous and ubiquitous companies. With a 4.4 out of 5 rating on Glassdoor, it’s ranked #23 in the Best Places to Work 2020 Employees’ Choice Awards. Indeed also ranks Facebook above average for all measures, especially work happiness, achievement, and learning.
Facebook is also one of the most desired workplaces for software engineers. “You have to realize that the interview process is hard and it is achievable,” says Elliott Gorrell, a software engineer who successfully interviewed with Facebook in 2020, and will commence work in January 2021. “It’s about making it a journey that you will learn from rather than just a challenge to overcome.”
If you’re thinking about applying for a software engineering role at Facebook, here’s a rundown of what to expect from the interview process.
What does a software engineer at Facebook do?
Software engineers are vital to Facebook. Facebook is primarily a social media platform, but there is a whole family of brands under the Facebook umbrella that covers so much more, from apps and messaging to social commerce, workplace interactions, cryptocurrency, and more.
Facebook has 2.7 billion monthly active users, and software engineers are at the core of innovating, experimenting and providing new features and services for its users. Software engineers employed at Facebook can join teams working to introduce features to the Facebook platform, improve functions or infrastructure, write and edit algorithms, analyze system components and data structures, or synchronize and coordinate server clusters. Advertised roles often place software engineers in a certain area of the business, such as privacy, wireless connectivity, VR, or specifically working on Android or iOS systems.
Software engineers at Facebook give input across the company’s range of apps, which include:
- Facebook, the platform and mobile app
- Instagram, the photo- and video-sharing social network
- Messenger, the messaging app and platform integrated with Facebook
- WhatsApp, a cross-platform messaging app owned by Facebook
- Oculus, developer of virtual-reality headsets
- Workplace, an enterprise and business connectivity platform
- Portal, producer of hardware for video calls
The work is varied and ever-changing, just like the company itself. But you can be assured that, as a software engineer at Facebook, you’ll be working with cutting edge technology on a platform billions of people use all the time.
What skills does a software engineer at Facebook require?
No software engineer truly works alone, which means teamwork and the ability to work alongside other engineers from different teams and specialties is essential. Logic and problem solving are also essential traits in software engineers, and Facebook recruiters and interviewers will use these as measures of success. Software engineers also need sophisticated written and verbal communication skills, as they frequently need to explain complex products and processes to a range of stakeholders.
The skills required to work as a software engineer at Facebook depend on the specific role, but include experience with user interfaces, digital infrastructure design, machine learning methods, and tools specific to the job, such as experience with the Android or iOS software development kits (SDK).
You should also have expertise in scripting and programming languages. There are varied languages used at Facebook for different purposes, and most positions require extensive experience with relevant languages.
Some programming and scripting languages and their uses at Facebook include:
- C++ and Erlang for WhatsApp and Messenger
- Java, C, C++ and others for Facebook’s server-side
- Python for Facebook and Instagram infrastructure
- Haskell for programming anti-spam systems such as Sigma
- CSS and HTML expertise is also expected.
The position descriptions on Facebook’s careers portal for software engineers list the exact coding languages and skills required for each role. Reviewing these skills is vital for preparing for a job interview at Facebook. Know exactly what the role you’re applying for requires, and be prepared to demonstrate those skills in your interview.
Get To Know Other Software Engineering Students
What is the interview process for a software engineer at Facebook like?
The interview process to land a job at Facebook is intense and involved. After submitting an initial application, the Facebook recruitment process can take anywhere from four to eight weeks.
Applicants must pass through three main stages in the interview process to be selected for a role as a Facebook software engineer. Remote interviews are conducted over the BlueJeans video conferencing platform. Facebook offers some insight and tips into the remote-interviewing process here.
The structure of the interview process for a software engineer at Facebook is as follows:
- Application submitted. You can submit applications for three roles every 90 days, so choose those which match your experience most closely
- Stage one. Initial technical screening phone interview
- Stage two. Full-day, onsite interview with four or five separate interviews in three categories comprising coding interviews; system design interviews; and behavioral interviews.
The first step of the Facebook interview process after submitting your application is an initial interview, referred to as the “technical screen”. This is a preliminary remote interview to gauge the candidate’s career aspirations and coding skills and to answer any questions the potential employee may have.
Example questions software engineering applicants are asked in the Facebook technical screening interview could include:
- Given an array of strings, how do you remove the duplicates?
- Find the sum of each column of tree nodes in a binary tree.
Some tips for this interview include: think out loud to show your thought process, use the coding language you’re most familiar with, and work independently—don’t rely on the interviewer to support you.
If you are deemed a fit by the first interviewer, you will proceed to stage two: an onsite interview at Facebook headquarters in Menlo Park, CA, or another Facebook office (pending COVID-19 health and safety protocol at the time). This will consist of a day of four or five interviews, comprising some combination of:
Coding interviews, which last around 45 minutes, where candidates will be tasked with coding problems of higher complexity to solve than the initial interview. Some sample questions might include:
- What is your process to test and find bugs in an application?
- Implement Dijkstra’s Shortest Path in the programming language of your choice.
System design interviews, during which interviewees will be presented with a broad engineering systems or product design problem and tasked with solving it, showing workings. A system design interview will also be used to grade a software engineer’s skills and place them within a seniority and salary band. Example questions that may appear in a system interview:
- Tell me how you’d design an email server.
- How would you architect the backend for a messaging system?
Behavioral interviews, a mix of coding and behavioral evaluation to establish whether the interviewee will thrive in Facebook’s corporate structure and culture. Sample questions could be:
- Do you have any personal projects? Tell me about them.
- Teach me about something for the next 10 minutes.
When asked what he thinks made his application stand out, Gorrell says, “Preparation. I realized these processes are not easy and I took my time and did lots of mock interviews with friends and colleagues. Having real-world ability and not rocking up to this interview process without practicing allowed me to fine-tune my process. So practice with real people and get feedback from them.”
Finally, once software engineers have passed the interview process and secured a position, the first element of their job will be the six-week Facebook bootcamp. When new engineering hires join the company, they’re appointed a senior engineer advisor and work with several teams, and learn special internal tools, before deciding at the bootcamp’s end where they will finally end up.
What happens after the interview process?
To receive a job offer at Facebook, make sure you’re prepared for the difficult series of interviews. Show that you want to work somewhere you are constantly solving problems and working on changing technology. If you’re prepared, you’re more likely to have a positive experience. Here’s how you can prepare so that you excel in your interviews:
- Review your skills and experience. You should know your CV, and be able to talk about your experience. You could be asked questions about any part of your experience, education or history.
- Practice coding. Use the languages you’re most familiar with, and those required in the position description. Leetcode is a popular site for software engineers to practice coding, with questions and answers, difficulty rating, and filters to allow you to search by company and topic. Gorrell says, “Don’t focus on the number of questions you complete on Leetcode, but identify different categories and patterns to the questions. I think I did about 150 or 200 Leetcode questions, which might be kind of low, but I felt quite prepared.” It’s more important, he says, to prepare yourself to answer a type of question, rather than covering hundreds of questions and hope that the exact one will come up in your interview.
- Read about the interviews of other applicants. Previous applicants often post details about their interview process online. This is an extremely valuable resource that can inform your own experience. Many Reddit users post about this topic (eg, here or here), and both successful and rejected applicants give inside perspectives about their experiences, and offer company reviews and salary information, on Glassdoor.
- Practice talking about yourself. Companies like Facebook highly value cultural fit, so practice talking aloud about yourself and your passions outside of work with a person who can listen and offer feedback.
- Study Facebook as a company. Review Facebook’s five core values, and know each of the company’s products and services intimately. Know your reasons for seeking to work at Facebook specifically. Facebook has detailed recommendations for preparing for each stage of its software engineering interviews, which you can read on the Facebook Careers site.
Overall Gorrell says that to increase their chances of being hired, applicants should look at the interview process as a chance to improve themselves, rather than a code to be cracked or overcome.
“This process is there for a reason,” he says. “It’s hard and you have to find a way to enjoy the journey and not treat it as just a boring task. It definitely made me a better engineer as all these concepts started to click, and I did actually start to quite enjoy them at the end.”
Since you’re here…
No one wakes up knowing how to code – they learn how to code. Tens of thousands of students have successfully learned with our courses, like our Software Engineering Bootcamp. If you’re a total newbie, our Software Engineering Career Track Prep Course will be a perfect fit. Let’s do this!