Whether you’re a software engineer hoping to join the best tech company or a new college graduate trying to land your first software engineering position, passing an interview at a FAANG company is not easy--especially at Facebook.
The interview process at Facebook is especially known for being very exacting. According to Gayle McDowell, author of ‘Cracking the Coding Interview’, every applicant for a job at Facebook is evaluated based on performance in each interview, relative to other candidates who were asked the same question. This means to successfully pass an interview at Facebook, you have to stand out from the other applicants.
At Interview Kickstart, we have you covered.
Interview Kickstart offers interview preparation courses taught by actual FAANG tech leads and hiring managers. We’ve helped thousands of applicants learn how to pass the toughest interviews.
This interview guide will help you develop a deeper understanding of what it takes to successfully pass an interview at Facebook by focusing on the following key areas:
- Facebook’s interview process from the initial technical screening round to the onsite interview.
- The qualities, skills, and abilities that Facebook looks for in candidates, as told to us by current and former Facebook employees .
- Technical and behavioral questions commonly asked in Facebook interviews to help you know what to expect during the interview.
- Facebook’s job-specific requirements and company culture.
Facebook Interview Process
We’ve examined Facebook’s career website and collated experiences of current and former Facebook employees. Based on this, we’ve outlined the interview process for the role of software engineer at Facebook.
Stage 1: Technical Screening
The interviewers will first introduce themselves and explain their roles and tasks at Facebook.
- Career Aspirations (5 to 10 Minutes)
For the next 5-10 minutes, the interviewer asks candidates about their work experience and career aspirations.
- Coding Interview (30 to 35 Minutes)
The applicant will be given one or more coding questions which are short enough to solve and explain in 10 to 30 minutes. In the case of remote interviews, candidates will have to write code using an online collaborative editor. In the case of in-person interviews, candidates will have to write code on a whiteboard. In a coding interview, the interviewer will try to understand an applicant’s approach to problem-solving. The interviewer may add further questions and requirements to the question to test the depth of a candidate’s knowledge
- Questions for the interviewer (5 Minutes)
This is when candidates get a one-on-one opportunity to talk to the interviewer to get valuable information about the role and the company.
Stage 2: Onsite Interview
- Coding interview (45 Minutes)
The onsite coding interview is usually harder than the initial screening interview. In this round, interviewers ask more challenging questions and have a more exacting evaluation process.
During the first five minutes of the interview, candidates introduce themselves and answer brief questions about their background. For the next 30 minutes they are expected to complete one or more coding problems. The last five minutes is when they can ask the interviewer questions about the role.
- Design Interview (45 Minutes)
There are two types of design interviews:
- System design interview
- Product design interview
System design interview: The first part of the interview is spent reviewing systems candidates have designed in the past. Candidates are asked about their approach. Candidates are then asked to design a system from scratch. . An example of a system design question is “How would you architect the backend for a messaging system?” The interview ends with a Q&A session.
Product design interview: As in the system design interview, candidates start by talking about past projects and their learnings from them. They are to solve a product design problem. Examples of product design questions are “How would you design an email server?” or “How would you design a client-server API to build a rich document editor?” The interview will end with a Q&A session.
Stage 3: Behavioral interview (time varies)
The behavioral interview features both behavioral and technical questions. The first part of the behavioral interview focuses on the candidate’s work experience and resume. It also focuses on candidates’ motivations in applying for a job at Facebook. This is to assess whether candidates’ fit in the company.
The second part of the behavioral interview features coding questions. This is similar to, but a quicker version of, the initial coding interview.
What Qualities does Facebook Look For in Candidates?
Lori Goler, Facebook’s VP of People, says Facebook’s values have not changed since 2008.
- They’re bold
When Facebook CEO and co-founder Mark Zuckerberg filed for the company's initial public offering in 2012, he wrote that one of the sayings he and his employees live by is ‘The riskiest thing is to take no risks.’ He also wrote "We encourage everyone to make bold decisions, even if that means being wrong some of the time."
- They focus on impact
"People who thrive here at Facebook are always creating new things and figuring out ways to improve," said Global Head of Recruiting, Miranda Kalinowski. "They have this deep curiosity." Facebook employees are self-driven and committed to furthering the company’s mission, which is to make the world more open and connected.
- They move fast
‘Move fast and break things,’ was one of Zuckerberg's founding mantras. As the company matured, it retained this value, moving as quickly as possible to stay innovative and fuel growth. ‘We're less afraid of making mistakes than we are of losing opportunities by moving too slowly,’ Facebook's values read. ‘We are a culture of builders--the power is in your hands.’
- They’re open
From its open floor plans to its culture of constant feedback, Facebook values workers who embrace transparency and collaboration. "Openness and transparency, building community, collaborating; it’s all part of the way we work together," Goler said.
- They build social value
Goler explained that Facebook is a ‘strengths-based organization.’ The term, coined by management consultant and author Marcus Buckingham, refers to a company that builds upon individuals' talents rather than trying to strengthen their weaknesses. This allows employees to produce meaningful work. At Facebook, this approach reinforces Zuckerberg's mission to provide people across the world the opportunity to express themselves online. "Most people who work at Facebook would tell you that what is most important to them is being in a role that has real impact, and being part of something that is bigger in the world," Goler said.
Are you preparing for interviews at other top tech companies? If yes, check out our Interview Guides for Netflix, Microsoft and Google.
Qualifications for Tech Roles at Facebook
- Own, design, develop, test, and maintain software stack for leading-edge hardware devices and systems to enable Facebook Infrastructure's fast growth.
- Design and develop the code base of software framework for scalability and extensibility, which will enable faster development.
- Actively collaborate with industry partners to build and evolve open source ecosystems to support long term growth of our software stack.
- Take full ownership of driving our vendor partners on active engineering engagement to ensure high quality of software releases.
- Build strong partnership with cross-function infrastructure teams and ensure smooth deployment and operation in our data center environment.
- Bachelor’s degree in Computer Science, Computer Engineering or equivalent combination of education.
- Experience coding in C/C++, and Python for system software development.
- Experience in developing multi-threaded applications on Embedded Linux environments.
- Communication, troubleshooting, and analytical experience.
- Familiar with Linux kernel, IPC, and device driver model.
- Familiar with various hardware elements of latest data center environments.
- Familiar with embedded systems software stack.
Developer Support Engineer
- Provide world-class support to the Facebook Platform developer community.
- Become an expert in our products, our developers and their needs by providing effective technical consultation.
- Manage technical and product issues and escalations, delivering the highest level of developer satisfaction.
- Help scale developer support with Sales and Partnership growth.
- Work directly with developers to resolve technical issues.
- Engage with the operations and engineering teams to build, drive and improve our tools and processes.
- Write production code that will improve our internal tooling and our external support channels
- Build product insights from developer experience/sentiments and work with cross-functional partners to take appropriate action.
- Deliver impactful results through data based investigations.
- Focus on specializing and gaining a deep understanding of our Marketing, Mobile and Messaging Developer Platforms.
- Bachelor’s degree in Computer Science or related field (or equivalent degree and experience)
- 3+ years of experience in software development
- Programming experience in one or more of the following languages: Java, PHP, Objective-C, Python and Ruby
- Communication skills in English
- Demonstrated creative problem-solving approach and great investigation skills
- Experience developing for mobile
If you’re looking for qualifications for other roles at Facebook, follow this link: Facebook.com
Facebook Interview Questions
It is important to note that Facebook, like all top tech companies, has a set of interview questions that they rotate between. Problems are also frequently removed from the rotation, and replaced with new ones on a regular basis.
The most effective and efficient way to prepare for Facebook’s technical and behavioral interviews is to understand the conceptual themes and patterns of questions asked instead of trying to study and memorise commonly asked questions and their solutions.
If you want to ace interviews at Facebook, place emphasis on pattern recognition and strengthening your problem-solving skills. This is the only way to solve problems that you have never seen before and the only way to explain your solutions to the interviewers.
This is a key focus area of our technical interview prep Masterclass at Interview Kickstart.
Sign-up for a free webinar, hosted by our co-founder to learn details of the program and how it can help you ace tech interviews.
Below are some commonly asked questions in Facebook interviews.
- Longest increasing subsequence.
- Find the longest increasing subsequence of a given array of integers, A.
- Unique paths in a grid.
- Given a grid of size m * n, let's assume you are starting at (1,1) and your goal is to reach (m,n). At any instance, if you are on (x,y), you can either go to (x, y + 1) or (x + 1, y).
- Ways to decode.
- A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1,'B' -> 2,...'Z' -> 26. Given an encoded message containing digits, determine the total number of ways to decode it.
- Best time to buy and sell stocks.
- Given an array ‘A’ for which the ith element is the price of a given stock on day i. Design an algorithm to find the maximum profit.
- Regular expression match.
- Implement a wildcard pattern matching with support for ‘?’ and ‘*’ for strings A and B.
- Add two numbers as lists.
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8”
Reverse link list ; Reverse a linked list from position m to n. Do it in-place and in one-pass.
- Tell me about your best collaborative experience.
This is important for interviewers to gauge if you will be a good fit for the prospective role and company culture.
- What do you do to stay motivated?
If you are self-motivated and your goals are aligned with the company’s culture and values e.g. providing excellent service to customers, you’ill be considered a good fit.
- How do you build relationships with coworkers?
Questions like this give interviewers valuable insight into your ability to cultivate and maintain working relationships.
- What would you do if an interviewer didn’t show up for the interview?
This provides insight into how you handle problems on the job.
- What is the one project you're proud of?
This question gives interviewers insights into how you work and how you promote your work. How do you promote yourself? Do you give more credit to yourself or others?
- Why do you want to work for Facebook?
Your answer to this will show if you’ve researched the company before the interview. It will show your plans for growth within the company. You must show why it’s important to you to work at Facebook.
- What is the biggest compliment you’ve received in your current role?
It’s likely that you were appreciated for in your current role and this could be an asset in your new role.
- What will be your biggest challenge in your prospective role?
Identify problems outside of yourself rather than within yourself.
- Tell me about a time that you had a disagreement with your manager.
Just as there are different managerial styles, there are different ways of responding to each managerial style.
- What do you think are Facebook’s challenges in the coming years?
This will show if you’ve done your research, have knowledge about Facebook’s business, and can spot market trends.
- What would an ex-coworker say about you?
This allows you to speak about yourself from a coworker’s. It alleviates discomfort of self-praise during a n interview.
Facebook Interview Tips
To help you successfully pass the interview at Facebook, we’ve collated a few useful interview tips based on information from the company itself.
Coding Interview Tips
- Practice thinking out loud
Facebook pays a lot of attention to the way you solve problems, which can be as important as having the right answer. Thinking out loud gives the interviewer insight into your thinking process as you develop your solution. Moreover, it allows them to give you hints needed to solve the problem.
- Choose a good interview spot
For an online interview, choose a quiet place. Ensure you have a good internet connection and strong phone reception. Use headphones to keep both hands free to code.
- Speak clearly
Ensure you speak clearly. If you can't hear the interviewer, let them know. You don't want to waste the whole interview trying to understand each other.
- Use the programming language you’re best at
It's important to write your solution correctly and use the language you’re most familiar with.
- Manage your time effectively
Spend some time figuring out the ideal solution to the question asked. Don't jump too quickly into brute-forcing the first solution that comes in mind. Start by writing a working solution, then iterate and improve it as you go. Some interviews end without any coding because the interviewee couldn't develop the ideal solution. It's better to have non-optimal but working code than just an idea. Once you have a working solution, you can then try to improve its efficiency.
- Share your reasoning
Make sure you can talk about your solution since you will probably be asked to explain it. Engineering is all about tradeoffs, so be prepared to discuss them.
- Find and fix bugs
Don't wait for the interviewer to find them for you.
- Use hints
Usually, interviewers provide hints to help you if you get stuck.
Design Interview Tips
- Outline your approach
Outline your approach then think about how it can be broken down into subparts.
- Identify your focus area
There usually isn't enough time to discuss every detail of the design. Find interesting areas to focus the discussion on.
- Explain goals and details
Move effortlessly from the goals to the high-level approach to the precise details and back again. A good solution covers both high-level ideas as well as low-level specifics. Talk about what components you’ll use and how they fit together. Also, describe implementation details.
- Explore tradeoffs
In any engineering problem, you will need to make intelligent decisions about tradeoffs. A good solution compares different approaches. It explores the tradeoffs present in any complex engineering problem and makes intelligent decisions about those tradeoffs.
- Drive the discussion
Interviewers try to ascertain if you have the required experience to build large systems. Highlight your ability to anticipate and work around typical problems.
- Be conversational
Ask clarifying questions.
Behavioral Interview Tips
- Familiarize yourself with Facebook’s 5 core values viz. move fast, be bold, focus on impact, be open, and build social value. This is how Facebook works together to make the world more open and connected.
- Be yourself. Be open and honest about your successes and failures.
- Be humble and focus on teamwork, leadership and mentorship qualities.
Facebook Interview Experiences
To get an understanding of what interviewing at Facebook is like, we referred to Facebook’s hiring manager, Ish Baid’s, article to see what he says about candidates and the interview process. Some excerpts from his article are given below.
Facebook’s coding interviews are typically 45-minute long conversations meant to test your knowledge of data structures and algorithms.
What should I do if I don’t know how to approach the problem right off the bat?
“Well, you won’t know what to do if it’s a good interview question. If you did, what would be the point? The goal of a coding interview is to get a grasp of your coding abilities. At Facebook, we referred to this as a signal.
Our goal as the interviewer is always to extract as much signal as possible. This means if we detect that you’ve heard the problem before, it’s our job to switch questions. We want to know how you handle adversity.
If you happen to recite a solution that you memorized from “Cracking the Coding interview,” we’ve learned nothing about your problem-solving skills.” - Ish Baid
- Ask clarifying questions
“Before you can start to tackle the problem, you need to understand the problem. Asking a few clarifying questions can go a long way in setting you up for success. Here are some great clarifying questions to ask:
- Should this be done in place? (No additional memory)
- Can we make any assumptions about the input?
- Do we care more about performance or saving memory?
This will allow you to focus on what’s important and ignore the rest. Knowing what to ignore is equally as important as knowing what to focus on.” - Ish Baid
- Don’t make assumptions
“Too often, candidates make assumptions about the problem (i.e., all integers are positive, arrays are not empty, all input is safe) … big red flag.Never assume that the conditions of the problem are aligned as is convenient for you to solve the problem. Instead, just ask.
Are the integers passed into this problem all positive?
It’s that simple. If yes, then great. You don’t have to check for that. If not, then a simple if-statement is all you need to make your code safe. Often, asking these questions can provide you great hints as to which direction to move in.”
- Plan your solution with pseudocode
“Usually, during these interviews, you’ll be working off a whiteboard. This means you can’t easily insert statements wherever you want. You have to know what you’re going to do before writing code.
Take a deep breath and plan out your code. It could be pseudocode, or it could be a simple drawing, but make sure you know what data structures you’ll be using and what variables you’ll need to keep track of.” - Ish Baid
“Talk out loud. It’s hard to help steer you in the right direction if I can’t tell what you’re thinking.
If you’re going in the wrong direction, I can interject. If you’re in the right direction, I’ll most likely let you keep going.
Small note: This is where interviewer style can be a factor. Some interviewers are more proactive than others when it comes to interjecting.” - Ish Baid
“For some reason, this is the most overlooked step. I’d say 98% of the candidates that I interviewed could have benefited from better testing.
At the start of an interview, candidates are often given their interview problem alongside a sample test case.
When candidates finish writing their solution, they will run through the given test case. The only problem? We give you the simplest possible test case. Likely a test case with no edge cases nor with the capability to properly test your code.
Just because your algorithm can provide the correct output for this test case does not mean it can provide the correct output for every case.
The easiest way to stand out in a coding interview is to … write more tests. Write harder tests. Write comprehensive tests.
More often than not, this will help you catch the bugs without needing me to interject. And that looks very good for you.” - Ish Baid
- What to Do When You Don’t Know What to Do
“So what should you do when you’re asked a question that you don’t know right off the bat?
Take it one step at a time.
Think back and see if this question reminds you of another one you’ve heard before. Many of the coding interview questions I asked were basic algorithm questions that are taught in most data structures and algorithms classes with a twist.
If nothing comes to mind, don’t panic. This is perfectly normal.
Don’t overwhelm yourself trying to come up with the most efficient solution right off the bat. Start with the simplest solution.
From there, think about what’s the bottleneck? What aspect of the algorithm is the most inefficient? What can you do to minimize those inefficiencies?” - Ish Baid
Resume Building Tips
Here are some resume building tips to help you improve your chances of being shortlisted for a Facebook interview.
- Keep the length of your resume to one-page. Recruiters are swamped with dozens, if not thousands, of applicants for each job listing.
- Write no more than five bullet points of work experience for each position you’ve held.
- Demonstrate your understanding of a given language and skill by referencing it multiple times in your resume.
- Since you’re interviewing for a specific position, focus on conveying your core skills relevant for the position.
- Research the company and optimize your resume according to the needs of the position you are applying for.
- Understand the job descriptions for the roles you’re applying to. Identify the keywords and areas of experience mentioned therein, then customize your resume to suit the job role.
- Have someone else review your resume.They may find areas of improvement.
- Your resume does not need to have attention-grabbing colors or creative fonts. Keep it simple. Remember it’s all about readability.
- Consider reaching out to an expert. Every now and then, Interview Kickstart holds ‘Resume Review Workshops’. Check it out by following our social media pages.
- List programming languages you are well-versed in at the top of your resume.
- If you’re a student or a recent graduate, list your education first, followed by work experience, if any. If you are an experienced industry professional, list your work experience above your educational qualifications.
- When describing your work experience, use action-oriented words like ‘designed’, ‘developed’, ‘created’, etc. Your recruiter will be able to better understand your skills and experience with these words
- List the results and impact of your work.
- Use subheadings in your resume to improve readability. Subheadings can include names of your projects and schools or bootcamps you’ve attended.
Preparing for Facebook Interviews
Interview Kickstart specializes in interview preparation. Our staff comprises FAANG tech leads and hiring managers who will teach you how to identify patterns behind coding problems. We also have mock interviews for coding and behavioral interviews with ex-FAANG hiring managers.
Here are some preparation tips for coding and behavioral interviews.
Coding Interview Preparation
- Dedicate time to prepare
It's important for any engineer, even senior ones, to brush up their interview skills, especially their coding skills. An interview tests your knowledge in areas different from your day-to-day job. The first technical interview in the process will have a strong impact on the following ones.
- Practice answering many different coding questions
Practice answering a coding question with the most efficient bug-free solution without using a compiler. Interview Kickstart offers many different questions that you can use to prepare for your interview.
- Practice writing code in a simple text editor
In the interview, you will write your code in a similar environment (like CoderPad) without syntax highlighting or auto-completion.
- Practice coding by hand
Coding interviews will be done on a whiteboard. Practice some of the questions with a whiteboard or pen and paper.
- Practice time management
You'll have limited time to answer coding questions. It’s important you solve them in a timely manner. If possible, have a mock interview with a friend to simulate the interview experience.
- Practice data structures, algorithms, and complexity
You should be able to discuss the big-O complexity of your approaches with the interviewer. Don't forget to brush up on data structures like lists, arrays, hash tables, hash maps, stacks, queues, graphs, trees, heaps,sorts, searches, and traversals (BFS, DFS). Also, review recursion and iterative approaches.
Behavioral Interview Preparation
- Know yourself
Review your resume since the interviewer will certainly ask about key events in your work history.
- Motivation and collaboration
Different interviewers will ask different questions seeking two signals in particular:
- What is the candidate's motivation? Why do they want to work at Facebook? Why are they working as a Software Engineer?
- How do they collaborate with their peers? How do they resolve conflicts?
Support each question with examples.
Are you preparing for interviews at other top tech companies? If yes, check out our Interview Guides for Netflix, Microsoft and Google.
Salaries for Tech Roles at Facebook
- Software Engineer
Here is the average salary for a software engineer at Facebook in Menlo Park, CA from LinkedIn. As you can see, the base salary for a software engineer is $149,000/year and ranges between $110,000/year to $193,000/year. The total compensation is $245,000/year and ranges between $153,000/year to $414,000/year.
Here is the additional compensation for Software Engineers at Facebook. As you can see, the annual bonus has a median annual amount of $15,000/year and ranges between $25,000/year to $30,000/year. The sign-on bonus median amount is $75,000/year and ranges between $25,000/year to $100,000/year. The RSUs median annual amount is $85,000/year and ranges between $38,000/year to $225,000/year.
- Engineering Manager
To get a deeper understanding of Facebook’s work environment, we looked to Glassdoor for reviews from employees at the company.
Facebook received a 4.5-star rating on Glassdoor. 94% of Glassdoor reviewers said they would recommend working at Facebook to a friend. 97% of reviewers approve of the CEO, Mark Zuckerberg, who is rated one of the top CEOs of 2019 on Glassdoor.
This review is from a software engineer currently working at Facebook at its headquarters in Menlo Park, CA. He says that working at Facebook is enjoyable especially during the coronavirus pandemic.
This review is from a software engineer in Facebook’s New York location. He believes that Facebook provides incredible benefits and cares for their employees.
Facebook is a company that prides itself on an amazing work environment and culture. This is why many people love working at Facebook . Facebook’s mission statement with regards to their work culture is, “to live life to the fullest and bring their best selves to work, each and every day.”
Here are Facebook’s five core values as stated on Facebook’s Careers page.
- Be bold
‘The riskiest thing is to take no risks.' In a world that's changing quickly, you're guaranteed to fail if you don't take any risks.’
- Focus on impact
‘To make the most impact, we need to solve the most important problems. We expect Facebook employees to avoid wasting time on minor issues and focus on truly big challenges.’
- Move fast
‘We believe that it’s better to move fast and make mistakes than to move slowly and miss opportunities. Doing so enables us to build more things and learn faster.’
- Be open
“Informed people make better decisions and make a greater impact — so we work hard to ensure that everyone at Facebook can access as much information about the company as possible.”
- Build social value
“At Facebook, we’re trying to bring the world closer together — not just grow our business. Our people focus on creating real value for the world — every day and in everything they do.”
We hope you found this guide useful. Learn more on how to crack the toughest technical interviews by signing up for our free webinar!