Front end engineer interviews at Facebook 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, and can help you land a front end engineer job at Facebook. We have put together the ultimate guide to help you maximize your chances of success.
Here's an overview of what we will cover:
- Process and timeline
- Example questions
- Preparation tips
What's the Facebook front end engineer interview process and timeline? It usually takes takes around two months and follows these steps:
1.1 What interviews to expect
- Application and referrals
- Recruiter phone screen
- Technical screening
- Onsite interviews
Let’s take a look at each of those steps in a bit more detail.
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 front end 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 phone screen
If you get past this first HR screen, the recruiter will then help schedule a technical screen with a Facebook engineer.
One great thing about Facebook is that they are very transparent about their recruiting process. Your recruiter will therefore 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.3 Technical screening
If you make it past the HR screen you’ll have one or two initial 45-minute technical screenings which usually take place online. Your interviewers may start with a few behavioral questions but most of the time will be spent on coding questions (i.e data structures and algorithms, etc.)
You'll use a simple online code editor without syntax highlighting or auto-completion for these phone interviews (e.g. CoderPad) and it's a good idea to get used to using one of them beforehand.
1.1.4 Onsite interviews
If you make it past the technical screening you’ll be invited to the real test: a full day of “onsite” interviews at a Facebook office. As you can see in this extremely helpful guide from Facebook, you can expect four, 45-minute interviews, including:
- Coding interviews (x2), with questions on data structures and algorithms, and with a practical focus on what you might encounter building user interfaces at Facebook.
- Design/architecture interview, where you'll be asked how you would build web application products and how you'd handle UI components.
- Career and coding interview, where you can expect behavioral questions about your background and motivation as well as some more coding questions.
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 the position of Facebook front end engineer you'll face three types of interviews:
- Design and architecture
Now let’s take a look at what you can expect from each interview. We’ve analyzed scores of candidates’ interview reports on Glassdoor and Rooftop Slushie 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.
As we’ve mentioned, coding interviews will make up a major part of your interview process at Facebook, first during the technical screening and then with two, 45-minute coding interviews when you get onsite.
We’ve analyzed the data on Glassdoor to provide you with some real examples of questions that Facebook has asked in front end engineer interviews.
Example coding questions asked in Facebook front end engineer interviews
Take an array of N elements in the form "property1: value1; property2: value2;...;propertyX: valueX;" for some N and any X. There is also another array of M elements of the form "property: value". Write an algorithm to remove every element in the N length array that has a "property: value" pair in the M length array.
If you have 500 revisions of a program, write a program that will find and return the FIRST bad revision given a isBad(revision i) function
- Implement a simple store class with set(Node, value), get(Node) and has(Node) methods, which store a given Nodes with corresponding values
- Explain the concept of ES6 Promises to a 5-year-old
- What are the advantages of using ES6 maps over objects?
- What about using ES6 sets over arrays?
- Write an emitter class:
// 1. Support subscribing to events. sub = emitter.subscribe("event_name", callback); sub2 = emitter.subscribe("event_name", callback2);
// 2. Support emitting events. // This particular example should lead to the "callback" above being invoked with "foo" and "bar" as parameters. emitter.emit("event_name", foo, bar);
// 3. Support unsubscribing existing subscriptions by releasing them. sub.release(); // "sub" is the reference returned by "subscribe" above
- Given a grid of characters, output a coded message
- Implement a square root function
- How many times would “addEventListener('scroll', handleScroll);” run as the user looks at their News Feed? And what would be user experience if the “handleScroll” function takes 100ms to execute? Secondly, how could you implement debouncing? Say you wanted the “handleScroll” function to be called only after 200ms has passed between scroll events?
- Given two identical DOM tree structures, A and B, and a node from A, find the corresponding node in B
- Using HTML and CSS, show how you would create an image that would display another image (aligned to the bottom, right) when the user hovers over the image. E.g. the Facebook "edit profile picture" icon
- Design a poll widget
- How would you ensure that clicking on this picture would go to a specific link?
To see more example coding questions asked by Facebook in engineering interviews, check out our software engineer interview guide, where we’ve included example questions that also have links to free solutions.
Facebook front end engineers design user interfaces that billions of people around the world will interact with. They need to have a strong understanding of web browsers, the DOM, performance, and API design.
In this interview you’ll typically be asked a quite open-ended question about how you would design the front end architecture of a common application. You should drive the conversation by asking clarifying questions, discussing the pros and cons of various approaches and describing the utility of each component that you propose to use.
We analyzed candidates' interview reports on Glassdoor and Rooftop Slushie to find some real example questions that you can practice with. Let’s take a look.
Example design and architecture questions asked in Facebook front end engineer interviews
- How would you implement a news-feed (which has only posts of text and pictures)?
- How would you implement a photos album?
- Design and code a Pinterest style UI, where cards stack top/down and scroll infinitely
- Design a component to support rich text content creation across products, with the following critical features: block-level styling (list items, blockquotes, etc.), inline-level styling (bold, italic)
- Design a general purpose typeahead component
For more help on how you should approach this interview, we recommend reading the following guide on how to answer system design questions. You should find it very useful, just bear in mind that the design and architecture questions you face will have more of a UI focus.
The name 'career interview' is slightly unclear. In practice, it consists of behavioral and resume questions in the first part, with a coding interview in the second. This coding interview is simply to supplement the main coding interview which we've already discussed, focusing on HTML and CSS. In this section we're going to focus on the behavioral part of the interview.
The behavioral questions will aim to test your capacity to communicate clearly, work with others efficiently, build trust and relationships, etc. This is important because Facebook engineers usually work in cross-functional teams with other engineers, product managers, designers, data analysts, etc.
You'll need to show that you have a capacity for conflict resolution, empathy, motivation, initiative, perseverance and self-improvement, and that you can deal with ambiguity.
Below we've listed some frequent behavioral questions that Facebook tends to ask, according to data from Glassdoor. We’ve included questions taken from software engineer interviews, as well as front end ones, because they tend to be very similar in this round. To dig deeper into them, check out our articles on how to answer behavioral interview questions and the "Why Facebook?" question.
Example behavioral questions asked in Facebook engineer interviews
- Tell me about a difficult problem that you had to solve
- Why Facebook?
- Tell me about yourself
- Tell me about a recent / favorite project and some of the difficulties you had
- Tell me about the greatest accomplishment of your career
- Tell me about a time you struggled to work with one of your colleagues
- Tell me about a time you had to resolve a conflict in a team
- Tell me about a time you were given feedback that was constructive
- Tell me about a time you had to step up and take responsibility for others
- Tell me about a time you struggled on one of your software projects
- Tell me about your worst boss and why they were bad
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.
3.2 Practice by yourself
First of all, for a great overview of what to expect and some invaluable tips, you’ll want to read Facebook’s own guide to the front end engineer interview process. Then you’ll want to start digging a bit deeper into each of the three types of interviews you’ll be facing (coding, design and architecture, and career) and start 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 you can also access Facebook-specific questions using the premium tier. If you haven’t already, you should also take a look at our Facebook software engineer interview article for useful example coding questions and additional information.
For the design and architecture interview (which Facebook themselves say is the hardest one to prepare for) we recommend studying our system design interview guide. It covers a step-by-step method for answering system design questions (which are very similar to the design and architecture questions you’ll face, but with a back end perspective) and provides several example questions with solutions.
For the career interview, we recommend learning our step-by-step method for answering behavioral questions. In addition, you'll want to write down your answers to the example questions we gave you in the previous section.
Finally, a great way to practice answering interview questions is to interview yourself out loud. This may sound strange, but it will significantly improve the way you communicate your answers during an interview. Play the role of both the candidate and the interviewer, asking questions and answering them, just like two people would in an interview. Trust us, it really helps!
3.3 Practice with peers
Practicing by yourself will only take you so far. One of the main challenges of coding interviews is communicating what you are doing as you are doing it. As a result, we strongly recommend practicing live coding interviews with a peer interviewing you.
A great place to start is to practice with friends if you can. You can also sign up to the software engineer waitlist on our free mock interview platform. We'll let you know as soon as we've activated the software engineer category so that you can start practicing with other candidates.
3.4 Practice with ex-interviewers
The main benefit of practicing with peers is that it's 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 an engineer 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.
Here's the good news. We've already made the connections for you. We’ve created a coaching service where you can practice 1-on-1 with ex-interviewers from leading tech companies like Facebook. Learn more and start scheduling sessions today.
If you have any questions about Facebook front end engineer interviews, don't hesitate to post them below and we'll be more than happy to answer them. All questions are good questions, so go ahead!