THE FACEBOOK INTERVIEW.

TECHNICAL INTERVIEW PROCESS

Outlined in this post is the interview process at Facebook for software engineers, preparation tips, and what’s different or unique about Facebook’s hiring process as opposed to other tech companies. At the end we’ll provide some sample interview questions asked at Facebook.

 

(keep scrolling FOR A FULL WRITEUP with DETAILS)

THE FACEBOOK INTERVIEW.

 

BACKGROUND

Facebook continues to show signs of growth, so if you’re looking to join Facebook, it’s a good time. Facebook has been expanding, and in 2018, they hired 10,000 people worldwide. For software engineers, Facebook is doing quite a bit of hiring in Seattle, WA, with growth in Redmond and Bellevue, WA as well.

 

As with most companies, Facebook will first conduct a series of phone interviews and then if you make it through, you’ll be brought on-site. There are a few things that separate the interview process at Facebook from other large tech companies, and that’s to do with their on-site process.

 

With so many people wanting to work for Facebook, it starts to beg the question, “what does the interview process look like and how can I increase my chances of being accepted?” Keep reading and you’ll find out.

 

 

BEFORE THE INTERVIEW

RESUME

The first thing you should do is update your resume to be metrics/deliverables driven. Be succinct, show how what you’ve done relates to the position, and tailor it to the job description as it will better demonstrate how you’re a fit for the role. It’s also a good idea to  show how the work you’ve done can translate into their five core values: Move fast, Be bold, Focus on impact, Be open, and Build social value.

 

PREPARATION

Here is our guide on tackling the actual coding interview process with a 12-week plan.

 

CHOOSING YOUR LANGUAGE

Facebook, like most of the other tech giants, doesn’t require that you know any one particular language, but you do need to be proficient in at least one. Acceptable languages include: C/C++, Python, Java, and a few other mainstream languages. It’s best to pick the language you’re most comfortable with and stick to it.

 

 

Prescreen with a recruiter

If the recruiter takes a liking to your resume, they’ll either reach out to you via LinkedIn or email. At this point they’ll ask you when you’re available for a phone call. Judging that you’re brushed up on your coding and technical knowledge, it’s best to schedule this right away.

 

This will be a light 20 minute call, where the recruiter wants to get a better idea of what’s on your resume, how your skills align with the position, and your passion for the company. If all goes well and no red flags are raised, you’ll have the opportunity to go through the technical phone interview.

 

 

Technical phone interview

Once you’ve had your prescreen with the recruiter she/he will set you up with another phone call, which will be with a Facebook software engineer.  

 

This phone call will be around 45-60 minutes long and will consist of four parts: introductions, career aspirations, coding, and questions at the end. You can expect to spend around 10-15 minutes on introductions and career aspirations.

 

After that, you’ll move to the coding portion of the interview where you’ll have around 30-35 minutes to complete 1-2 questions inside of an online collaborative editor, like CoderPad. Be prepared for questions that are vague; the interviewer will want to see your approach, what questions you ask, and how you deal with constraints or requirements.

 

The interview will deal mostly with data structures, algorithms, and time complexity. Here’s what you’ll need to know:

  • Big O complexity of an algorithm you write

 

  • Data structures

    • Lists

    • Arrays

    • Hash tables

    • Hash maps

    • Stacks

    • Queues

    • Graphs

    • Trees

    • Heaps

 

  • Algorithms

    • Searching and sorting

      • BFS

      • DFS

    • Graphs

      • Mergesort

      • Quicksort

      • Binary search

    • Dynamic programming

    • Recursion

 

Tips for your technical phone interview

  • Manage your time effectively

    • Don’t jump right into developing a solution. Spend some time thinking of how you can develop the most optimal solution in the allotted time.

  • Articulate your thought process

    • This is arguably just as important as getting the right answer to the given question

  • Use hints when they’re given

    • If you get stuck, they may give you a hint.

 

 

ON-site

After your first two interviews you’ll come in for another 4-5 interviews lasting 45 minutes each. Typically, you’ll have two coding interviews, two system design, and one cultural. Facebook lays out their interview questions into three categories:

  • Ninja — Coding interview

  • Pirate — System design interview

  • Jedi — Behavioral interview

Ninja interview AKA Coding interview

You should expect this coding interview to be harder than what you experienced in the phone portion. You’ll have around 45 minutes in this section; the first five minutes or so will be introductions, then you’ll have around 35 minutes to solve one or two coding challenges on a whiteboard, and the end is reserved for any questions that you may have.

 

As mentioned above, you should study up and be comfortable with varying data structures and algorithms (when to use them, how to use them, the advantages of using one over the other). Here is our guide (12-week plan) on preparing for coding interview questions.

 

Pirate interview AKA System design interview

The design interview is 45 minutes. These almost never involve coding - you'll spend the interview talking and drawing on a whiteboard. As with all interviews, the interviewer will typically save the last five minutes for your questions. The purpose of the interview is to assess your ability to solve a non-trivial engineering design problem. To that end, your interviewer will ask you a very broad design problem and evaluate your solution.

 

Sample system design question:

  • How would you design a video streaming platform like YouTube, Twitch, or Netflix?

Jedi interview AKA Behavioral / Coding interview

The main focus here is on behavioral questions, but if the interviewers feel as though they didn’t get a good understanding of your coding skills then they may toss one shortened version of a coding question into the mix to supplement the coding interviews mentioned above.

 

In this portion of the interview, it's important to have examples that show how you led a team, how you made an impact, etc. Here are some sample behavioral questions:

  • What were some of the best things you’ve built and why?

  • What work are you proud of?

  • What kinds of technologies are you most excited about?

  • What would you change about Facebook if you joined tomorrow?

  • Why Facebook?

 

For this portion of the interview, it’s best to familiarize yourself with Facebook’s 5 core values so you can incorporate them into your answers. The 5 core values are:

  • Move fast

  • Be bold

  • Focus on impact

  • Be open

  • Build social value

 

THE OFFER / NO offer

In the event that you don’t receive an offer, you’ll most likely have to wait six months to a year to re-apply. To avoid waiting another 6-12 months, you can check out our 12-week preparation guide to answer any coding interview question.

 

If you do receive a job offer, you’ll discuss things like salary, start date, etc.

 

 

WHAT'S DIFFERENT

Hiring levels

Facebook software engineers that are hired directly out of college enter in at E3 which is their entry level software engineering role. The levels range from E3 to E9, where E5 is considered an entry-level manager role.

 

System design interview

At many of the big tech companies, system design questions are usually asked to those who have 3-5 years of experience in a software engineering role. At Facebook though, you can expect these questions no matter what level you are interviewing for.

 

Structured interviewing

One nice thing about Facebook’s interviewing process is that they will pair you with interviewers who have either held the position you’re interviewing for or with individuals who work directly with the position you’re interviewing for. This way you can get the most out of your conversations because they have the same domain experience that you have.

Core values and your behavioral interview

Keep in mind that even in the coding challenges that your interviewer will be also evaluating your ability to embody their five core values which are: Move fast, Be bold, Focus on impact, Be open, and Build social value.

 

 

SAMPLE Facebook interview questions

Over the phone:

  • Print a binary tree by vertical level order like 1 2 4 3 5.  Print : 3 2 1 5 4.

  • Reverse a doubly linked list.

  • Check to see if one array is a subset of another.

 

On-site:

  • What is a memory-efficient way to store a vector of integers? Follow-up question: using your proposed data structure, find an algorithm with constant memory usage to calculate the dot product of two vectors.

  • How would you design a video streaming app like YouTube?

  • Given a string and a dictionary HashSet, write a function to determine the minimum number of characters to delete to make a word.

 

Behavioral:

  • If you could change something about Facebook, what would it be?

  • Explain a time you made a design choice that didn't go your way.

  • Why Facebook?

HOW TO BEST PREPARE FOR YOUR INTERVIEW

In our experience, it’s best not to try to memorize specific questions. There are no silver bullets.

The questions that companies ask are always changing, because companies of this size are always trying to stay ahead of the curve and try new things. The questions you face will also depend on the team and the hiring manager.

 

Instead, it’s best to work your way through the fundamentals so you understand the underlying concepts and can answer even new types of interview questions with confidence.

 

map_icon.png

Need help preparing for the interview?

Check out the Definitive Interview Prep Roadmap,

written and reviewed by real hiring managers.