Meta interview prep · updated Oct 2026

Meta Frontend Developer Interview Questions

Frontend Developer 8 questions

Frontend work on apps like Facebook and Instagram means long feeds full of photos and video, comment threads that update live, and chat windows that must feel instant, all on phones and networks of every quality. Meta also created React, so expect questions on how rendering works. Prepare stories about scroll performance, optimistic updates, accessibility and shared components. What to show here: interfaces that feel instant on any phone or network. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.

Behavioral

1. Tell me about a time you made a page feel faster for people on cheap phones or slow networks. How did you know where the time was going?

What they are checking
Checks whether you measure before you optimise and whether you think about users beyond your own fast laptop.
Answer frame
  1. Describe the page and who was affected.
  2. Explain how you measured on a slow device and network.
  3. Share the changes that mattered most.
  4. Give the result and how you kept it from slipping back.
Sample spoken answer

“Our photo gallery page felt fine on office machines, but support tickets said it was slow on phones. I used the browser's throttling settings and a low-end test phone, and recorded a performance profile. Most of the time went to decoding large images and running a big script before first paint. I served smaller images based on screen size, lazy loaded everything below the first screen, and split the script so the gallery code loaded first. The result was your result. We then added a size budget check to the build so the page could not quietly grow again.”

Red flag to avoid

Weak answers list optimisations without any measurement, or only test on a fast connection.

Behavioral

2. Describe a time you built a component that other teams reused in their own screens. What did you learn about designing for people you never meet?

What they are checking
Checks whether you can design a clear component interface and respond to feedback from other engineers.
Answer frame
  1. Describe the component and why it was shared.
  2. Explain the interface you chose and what you left out.
  3. Share a piece of feedback that changed it.
  4. Say how you handled breaking changes.
Sample spoken answer

“I built an avatar component that showed a profile photo with an online dot. Three teams wanted it. My first version had many props for every case I could imagine, and people still used it wrongly. After watching two engineers try it, I cut the props down to size, photo and status, and wrote short examples. One team needed a group avatar, so I made that a separate component instead of adding more options. When I had to rename a prop, I kept the old name working with a warning for a while. The result was your result.”

Red flag to avoid

Weak answers describe a component with endless options, or changed it without telling the teams that depended on it.

Technical

3. A feed lets people scroll through hundreds of posts with photos and video. How do you keep scrolling smooth and memory low as the list grows?

What they are checking
Checks whether you understand list virtualisation, media loading and the cost of keeping many nodes in the page.
Answer frame
  1. Explain why a long list of heavy items slows the page.
  2. Describe rendering only the items near the screen.
  3. Cover media: lazy loading, fixed sizes to avoid layout jumps, pausing video off screen.
  4. Mention keeping scroll position when going back.
Sample spoken answer

“If every post stays in the page, memory grows and each layout pass gets slower. I would render only the posts near the visible area and replace the rest with spacers of the right height. Photos load just before they scroll into view, and each has its size set in advance so the page does not jump. Video plays only when mostly on screen and is paused and released when it leaves. I would measure heights as posts render, since text length varies. When the person opens a post and comes back, the feed restores the same position from saved state.”

Red flag to avoid

Weak answers keep appending items forever, or forget that video off screen still uses memory and battery.

Technical

4. When someone taps like, the heart should fill at once, before the server answers. How do you build that, and what happens if the request fails?

What they are checking
Checks whether you can build an optimistic update with a clean rollback and handle quick repeated taps.
Answer frame
  1. Update local state at once and send the request.
  2. Keep the previous state to restore on failure.
  3. Handle fast repeated taps so requests do not arrive out of order.
  4. Decide how to tell the person when it failed.
Sample spoken answer

“On tap, I update the local state so the heart fills and the count goes up by one, and I send the request in the background. I keep the earlier value. If the request fails, I restore it and show a small message that the like did not save. Quick taps are the tricky part. I would track the latest intended state and only send the final one after a short pause, or tag each request so an old response cannot overwrite a newer tap. When the server answers, I trust its count, since other people may have liked the post too.”

Red flag to avoid

Weak answers wait for the server before updating the screen, or ignore what happens when a request fails.

Technical

5. In a React comment thread, typing in the reply box makes every comment re-render and the input lags. How do you find the cause and fix it?

What they are checking
Checks whether you understand why components re-render and can use profiling tools instead of guessing.
Answer frame
  1. Record a profile to see which components render on each keystroke.
  2. Find where the input state lives and what depends on it.
  3. Move state down or split components so typing touches less.
  4. Memoise only where the profile shows it helps.
Sample spoken answer

“I would open the React profiler and type a few letters to see what renders. Usually the draft text is stored in a parent that also renders the list of comments, so each keystroke re-renders the whole thread. The cleanest fix is to move the draft state into the reply box component, so only that box updates. If the list still re-renders because of new function or object props, I would make those stable with useCallback or useMemo, and wrap the comment item in memo. Then I profile again to confirm the list is quiet while typing.”

Red flag to avoid

Weak answers wrap everything in memo without profiling, or cannot explain why a parent state change re-renders children.

System Design

6. Design the browser side of a chat window: live messages, a typing indicator, and sending while the connection drops in and out.

What they are checking
Checks how you manage a live connection, local state, and unsent messages in the client.
Answer frame
  1. Choose the connection type and how to reconnect.
  2. Model messages locally with a temporary id and a status.
  3. Queue unsent messages and retry in order.
  4. Handle gaps after reconnect and keep typing signals cheap.
Sample spoken answer

“I would use a web socket for live messages, with reconnect that waits a little longer after each failure. Each message typed gets a temporary id and a status of sending, so it appears at once. It goes into a local queue, and when the server confirms, the temporary id is replaced by the real one. If the connection drops, the queue waits and retries in order. After reconnecting, the client asks for anything newer than the last message it has, to fill gaps. Typing signals are sent at most every few seconds and expire on their own if no update follows.”

Red flag to avoid

Weak answers assume a perfect connection, or lose the message a person typed when the network drops.

Scenario

7. After a redesign of the story viewer, people who use a screen reader report they cannot move to the next story or close the viewer. What do you do?

What they are checking
Checks whether you treat accessibility as a real defect and know how to test and fix keyboard and screen reader use.
Answer frame
  1. Reproduce with a screen reader and keyboard only.
  2. Find the missing roles, labels and focus handling.
  3. Fix and test with real assistive tools.
  4. Add checks so it does not return.
Sample spoken answer

“I would treat it as a bug that blocks people, not as polish. First I would turn on a screen reader and use only the keyboard to see what happens. My guess is the new viewer uses plain clickable elements with no role or label, and focus stays on the page behind. I would make the controls real buttons with clear labels, move focus into the viewer when it opens, keep it inside, and return it on close. The escape key should close it. After testing with two screen readers, I would add an automated accessibility check and a keyboard test to the release checklist.”

Red flag to avoid

Weak answers call it a rare case to fix later, or test only with automated tools and never with a screen reader.

Why this company

8. Why do you want to build user interfaces for social apps at Meta?

What they are checking
Checks whether you care about the craft of fast, accessible interfaces used on every kind of device.
Answer frame
  1. Name what you enjoy in frontend work.
  2. Tie it to feeds, stories or chat at Meta.
  3. Mention your experience with the tools.
  4. Say what you hope to learn.
Sample spoken answer

“I like frontend work where the details decide whether something feels good, like a feed that scrolls without a stutter or a like that responds the instant you tap. Apps like Facebook and Instagram have to do that on old phones and weak networks, which is a harder and more interesting target than a fast laptop. I have built most of my work in React, which came from Meta, and I would like to work close to the people who think deeply about rendering. I want to learn how large teams keep an interface fast while many people change it every day.”

Red flag to avoid

Weak answers say they like the apps as a user and say nothing about the engineering.

Salary questions come last

No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.

For the call itself

The questions above are the prep. On the real call, ClapAssist helps with the ones you did not practice.

ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.

Download with 10 free minutes
Mac and Windows · Stays out of screen share · No card