Interview prep

Facebook SWE Interviews: Ultimate Guide

Let's get tactical on what the Facebook interview looks like for engineers, and dive into what the role and promotion trajectory look like if you get hired.

Hoping to work as a software engineer at Facebook? Look no further. Here's your complete guide to getting hired and how to succeed once you land the job.

We'll break this article down into 4 parts:

  1. Resume prep and applying
  2. The interview process in 3 steps
  3. What the job is like
  4. How promotions work

Crafting the Perfect Resume

Facebook headquarters campus. Photo credit: NYT

The first step is getting through the resume screen, so before you even apply, you must perfect your resume.

How you present your education and experience matters — you may not have a CS degree from Stanford or be a former SWE at Google, but you can present your background in a way that stands out.

Formatting is crucial

Let's start with formatting. As a general rule of thumb, your resume should fit on 1 page. Unless you have 10+ years of experience in this role, don't make your resume longer than this. Think about how many resumes a recruiter looks at on a daily basis — they're probably not going to spend more than 30 seconds scanning yours.

The most important sections to include:

  • Education: Include your school, major, and GPA.
  • Work experience: If you have experience at other top companies, make sure you highlight it. Facebook loves to hire candidates with previous experience at competitor companies, particularly Amazon and Google. If your experience isn't at well-known companies, relate it to the job description and include specific data points that show how you've added value to the company.
  • Projects: This is the section to showcase anything you've done on the side — especially if you have limited professional experience. It can be a chance to show off your creativity, passions, and initiative.
  • Technical skills: This is where you'll include your programming languages (more on this below).

👉 Want more help with formatting your resume? Read next: Which resume outline should you use?

Experience must be specific

Now, let's talk about content. Remember, your recruiter won't look at your resume for very long, so it must stand out. The best way to achieve a stand-out resume is to be specific. Anyone can pull generic responsibilities from a job description and put them into their resume, and though it is a great idea to incorporate some keywords from the job description into your experience, you must be specific about what you've done.

So, how can you be specific? Incorporate data points and describe your achievements in a way that shows how you've added value and impacted the company in a positive way.

FANG tends to be data-driven, so you'll want to incorporate numbers to quantify what you've done. Maybe you developed an IOS application for your company and increased your customer base by 10%. Facebook likes to see specific data showcasing what you've done, so you should show off your achievements with numbers. Doing so also paints a picture of the value your company gained from your work.

👉 A helpful resource: How far back should your resume go? Strategies for every career stage

A ton of programming languages isn't the way to impress

Including every programming language under the sun should cover all of your bases and impress your recruiter, right? Wrong.

Listing a ton of different languages on your resume doesn't show expertise in anything. It's highly unlikely that you're an expert in every language, and listing them all will likely cause a recruiter to not take you seriously. Only list what you're truly good at — sometimes less is more.

Here are some of the languages Facebook SWEs use:

  • Front-end: Javascript, React, and Flow
  • Back-end: Hack, PHP, C++, Java, ERLang, D, XHP, and Haskell

Time to apply

Once you've perfected your resume, you're ready to apply! You can find open roles at Facebook on the Careers Page and apply directly through the site filtering by area of work, location, category, etc. The application is very straightforward and the only required document to upload is your resume.

The 3 Stages of the Interview Process

Photo credit: Business Insider

Facebook's interview process for its SWE roles typically takes around 4-8 weeks. Let's walk through each of the 3 interview rounds.

1. Recruiter chat

An HR recruiter will give you a call for a quick chat. This portion of the interview process is straightforward and is mostly to see if you're a fit for the role.

This will primarily consist of...

  • A discussion about your resume and past experience
  • A chance for you to learn more about Facebook
  • A few behavioral questions, to establish a baseline for your personality

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.

Here are some of the most common questions:

  1. Tell me about yourself.
  2. Why do you want to work for Facebook?
  3. Why this role?
  4. What is your day-to-day like in your current role?
  5. What are your preferred programming languages?

2. Technical screen & coding interview

The next step, similar to Google, is to do 1-2 technical phone screens lasting 45 minutes each. This interview will be conducted by 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.

Here's how the interviews are broken down...

  • For the 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 background or aspirations.
  • The next 30-35 minutes will be spent on coding in an online collaborative editor. You'll be solving 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 of this interview is to understand your approach to problem-solving. You will be given the freedom to solve the problem any way you choose and the interviewer may add some additional constraints as you go.

Facebook recommends the following for interview preparation...

  • Write 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 by coding by hand: Coding interviews will be done on a whiteboard. Practice some of the questions with a whiteboard or pen and paper to help prepare.
  • Practice under time pressure: You will have a limited time for the coding question, so it will be important to finish it in time. If possible, have a mock interview with a friend in the industry to simulate the interview experience. Or, practice with us.
  • Go over data structures, algorithms and complexity: Be able to discuss the big-O complexity of your approaches. Don't forget to brush up on your data structures like lists, arrays, hash tables, hash maps, stacks, queues, graphs, trees, and heaps. Also review sorts, searches, and traversals (BFS, DFS). Finally, recursion and iterative approaches are important to study as well.
  • Use the programming language you're best at: It's important to write your solution correctly and in time, so use the language you are most familiar with.
  • Think out loud: Make sure you can talk about your solution; you will probably be asked to explain them. Engineering is all about tradeoffs, so be prepared to discuss them.

3. Onsite loop

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).

Jedi

This is the behavioral interview. You will be asked questions about conflict, projects you worked on, times you showed leadership, what motivates you, and more. Here are examples of questions you might encounter:

  • What were some of the best things you've built?
  • What are you proud of?
  • What could you have done better?
  • What were some excellent collaborations you've had?
  • Tell me about a time when you advocated for and pushed your own ideas forward despite opposition?
  • How do you deal with conflict?
  • How do you like to give and receive feedback?
  • What kinds of technologies are you most excited about?
  • Why Facebook?

👉 Want to see if you could pass the Jedi interview? Practice more questions today.

Ninja

This is the coding component of the interview. In order to get hired, it's essential that you ace this interview. It 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 want to have mastered prior to your interviews.

Pirate

This is basically the system design interview. It's 45 minutes long 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 arrive at a solution and analyze your thought process.

System design

There are two potential interview scenarios here: improving 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:

Improving:

Pick a project you've worked on in the past. How would you change it if you had to do it all over again?

Starting from scratch: Make sure you practice on examples that are representative of complicated, high-scale systems similar to Facebook

How would you build Twitter?

To solve these questions...

Use a framework. These questions will be intentionally broad, so the interviewer isn't looking for you to have the "right" answer. They want to see how you think. Facebook recommends answering methodically, starting with requirements and working your way down to implementation.

Example from Facebook...

How would you architect the backend for a messaging system?

Requirements questions that might apply:

  • Define the number of users
  • Estimate the number of messages sent and read
  • What are the latency requirements for sender->receiver message delivery?
  • Talk about storage solutions for the messages
  • What operations does this data store need to support?
  • How do you push new messages to clients? Do you push at all, or rely on a pull based model?

Product Design

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 design version.

Here's a question Facebook shares as 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:

  • How does the client request data on the document from the server, especially as the document gets large enough that we wouldn’t want to download it in a single request?
  • How do we represent the rich document aspects like bold and italics in our API response?
  • How do we design the system so that new features can be added on the server without breaking older clients?

Here, you also 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 discusses all the tradeoffs you might have to make.

4. Offer

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.

What's the Job Like?

The Bootcamp

Photo credit: Facebook Engineering

If you're hired at Facebook, you'll start out with the SWE Bootcamp: a 6-8 week program for new hires to get familiar with the company's culture and internal tools.

This is also when you get to pick your team! The experience tends to be a fun one for new hires as teams often try to woo you with offsites, dinners, etc. While it can be easy to get caught up in the excitement of it all, remember that you'll be joining this team for the long haul and want to make sure it's a good fit.

So you've chosen a team — what happens now?

Facebook Seattle office. Photo credit: Built in Seattle

In general, Facebook is rated highly in terms of employee satisfaction. Employees say that Facebook cares about its employees and the culture is one that encourages support and growth. Employees also say most teams have a great deal of autonomy and opportunity for interesting projects — of course, this is heavily dependent on which team you choose.

One employee wrote on Hacker News:

"In some heavily organized groups, you can easily get bored by being a small cog in a large company. Or you may be happy to be able to coast by working less than 40 hours a week while cashing a fat paycheck. In less structured groups, you may love the opportunity to create your own projects and jump from group to group. Or you may get stuck without any interesting project and have difficulty switching to a better role."

Facebook tends to get a bad rap for its work-life balance, though this is heavily dependent on your team. More often than not, employees have negative things to say about the work-life balance with many claiming you'll work 50-60 hours/week, or 60+ if your team is behind on meeting a performance goal or close to a tight deadline. Aside from sheer hours, employees also report the work can be mentally draining and demanding.

On Glassdoor, an employee explains:

Facebook's culture is demanding and fast paced. The greatest aspect of working at Facebook is that everyone is very motivated and very smart. The problem with this is that they all expect the very same of you.

It should be clear by now that your experience at Facebook will be greatly dependent on which team you join, but don't let that scare you. If you choose a team that's not right for you, Facebook supports you in joining a new one, so you're definitely not locked in.

How Promotions Work

Photo credit: Office Snapshots

While you can absolutely switch teams once you've made your selection, reducing the number of times you need to do so will greatly shorten your promotion timeline (after all, building trust amongst your peers and becoming an expert in your area are key factors in getting promoted). This is to say that if you hope to move up the ladder early on, you should take Bootcamp all the more seriously — it's perhaps the best time to compare a bunch of different teams.

Facebook promotions are known for being relatively fast compared to other top tech companies, like Google. On the other hand, the quick promotion trajectory is often attributed to the fast-paced work environment and lack of work-life balance (an area where Google is rated better).

One employee noted on Blind:

"There are clear career expectations for each level and, if your manager does their job - you get the right guidance for what you need to accomplish and get promoted shortly after meeting the bar."

Let's take a look at the promotion trajectory for SWE at Facebook:

  • E3 to E4: You have 33 months to get to E4, and Facebook will let you go if you can't make it. On the flip side, it is generally not too difficult for employees to uplevel on this timeline.
  • E4 to E5: You also have 33 months to get to E5, and Facebook will let you go if you can't make it. The E4 to E5 timeline is also generally not too difficult for employees.
  • E5 to E6: This is where things get tough. To transition from E5 to E6, you must not only be very strong technically but you also need to demonstrate strong leadership capabilities. The majority of SWE remain at E5.
  • E6+: To move above E6, you have to earn a reputation in your area. Most people don't make it beyond this level.

Now that you know the timeline and expectations for promotions for SWE at Facebook, you should understand Facebook's performance review process. Starting in 2022, performance reviews will take place once/year rather than twice/year.

A stack ranking system is used for performance reviews — managers are asked to grade their employees on a bell curve. To receive their final performance grade, employees must also complete a self-assessment and receive peer feedback.

👉 For a more in-depth look at the Facebook performance review process, read: Behind Performance Reviews + Bonuses at Facebook

The information provided herein is for general informational purposes only and is not intended to provide tax, legal, or investment advice and should not be construed as an offer to sell, a solicitation of an offer to buy, or a recommendation of any security by Candor, its employees and affiliates, or any third-party. Any expressions of opinion or assumptions are for illustrative purposes only and are subject to change without notice. Past performance is not a guarantee of future results and the opinions presented herein should not be viewed as an indicator of future performance. Investing in securities involves risk. Loss of principal is possible.

Third-party data has been obtained from sources we believe to be reliable; however, its accuracy, completeness, or reliability cannot be guaranteed. Candor does not receive compensation to promote or discuss any particular Company; however, Candor, its employees and affiliates, and/or its clients may hold positions in securities of the Companies discussed.