JS Guide
HomeQuestionsTopicsCompaniesResources
BookmarksSearch

Built for developers preparing for JavaScript, React & TypeScript interviews.

ResourcesQuestionsSupport
HomeQuestionsSearchProgress
HomeCompaniesMeta

Meta

Meta's frontend engineers build experiences for Facebook, Instagram, WhatsApp, and Threads. They are heavy users of React (which they created) and focus on performance at scale.

Big Tech
JavaScript
TypeScript
React
React Native
GraphQL
Relay
Careers pageCompensation data

30

Questions

21

Day Plan

3

Stages

12

Topics

Frontend Roles

Software Engineer (Frontend)

E3-E5

Develops, designs, and tests web and mobile applications across Meta's products. Architects efficient and reusable frontend systems using React, JavaScript, and TypeScript.

Front End Engineer

E3-E5

Dedicated frontend role building user interfaces for Facebook, Instagram, WhatsApp, and Threads. Deep focus on React, performance optimization, and design systems.

Software Engineer, Product

E3-E6

Full-stack product engineer working closely with designers and PMs to ship user-facing features. Frontend-heavy with some backend work in Hack/PHP or Python.

Interview Process

Based on publicly available information. Actual processes may vary by team and role.

1

Recruiter Screen

20-30 minutes

Brief call to discuss your background and the role.

2

Technical Phone Screen

45 minutes

Coding exercise focused on practical frontend implementation.

JavaScript
React
DOM manipulation
3

Onsite / Virtual Loop

4-5 hours

Typically 4 rounds for E5: 1 coding, 1 AI-assisted coding (with AI models available in CoderPad), 1 system design, 1 behavioral. Structure may vary by level.

Coding
AI-assisted coding
System design
Behavioral

Total process duration: 3-5 weeks

Meta interviews are practical and implementation-focused. As of late 2025, Meta has introduced AI-assisted coding rounds where candidates use AI tools (GPT-4o mini, Claude Haiku, Llama) in CoderPad alongside traditional coding.

Study Plan

21-day study plan across 3 phases

1
JavaScript & DOM
Days 1-7
Closures
Promises
Event loop
this keyword
Debounce/throttle
Currying

Questions to practice:

  • What is a closure in JavaScript and why are they useful?
  • What are Promises in JavaScript and how do they work?
  • Explain the JavaScript Event Loop and how it handles asynchronous operations.
  • How does the 'this' keyword work in JavaScript?
  • How do debounce and throttle work, and when would you use each?
  • What is currying and partial application in JavaScript?

Topics to study:

Closures
Event Loop & Runtime
Currying & Partial Application
2
React Deep Dive
Days 8-14
Hooks
State management
Context
Custom hooks
Reconciliation
Concurrent features

Questions to practice:

  • Explain the useState and useEffect hooks and their common patterns.
  • What is state in React and how is it different from props?
  • What is React Context and when should you use it?
  • What are custom hooks and how do you create them?
  • How does React's reconciliation algorithm work?
  • What are React's concurrent features and how do Suspense and transitions work?

Topics to study:

Hooks
Context API
State
React Internals
Concurrent React
3
Performance & Patterns
Days 15-21
React optimization
Memoization
Code splitting
Component patterns
TypeScript

Questions to practice:

  • Explain React.memo, useMemo, and useCallback. When should each be used?
  • Explain common React patterns: Compound Components, Render Props, and Custom Hooks.
  • What are common React performance optimization techniques?
  • How does code splitting work and when should you use it?
  • What is TypeScript and what benefits does it provide over JavaScript?
  • What are generics in TypeScript and how do you use them?

Topics to study:

Performance Optimization
Advanced Patterns
React Performance Optimization
TypeScript Fundamentals

Questions to Practice (30)

Questions relevant to preparing for frontend interviews at Meta, based on their known tech stack and common frontend interview patterns.

What is a closure in JavaScript and why are they useful?

javascript
mid

Explain the JavaScript Event Loop and how it handles asynchronous operations.

javascript
mid

What is the difference between microtasks and macrotasks in JavaScript?

javascript
mid

What is currying and partial application in JavaScript?

javascript
mid

What is requestIdleCallback and how does it compare to other scheduling APIs?

javascript
senior

How do WebSockets work and when would you use them over HTTP?

javascript
senior

What is state in React and how is it different from props?

react
junior

What is the Virtual DOM and how does it work?

react
junior

Explain the useState and useEffect hooks and their common patterns.

react
mid

What is React Context and when should you use it?

react
mid

What are custom hooks and how do you create them?

react
mid

What is useRef and when should you use it?

react
mid

How would you implement a useLocalStorage custom hook?

react
mid

How would you implement a useFetch custom hook?

react
mid

How do React component lifecycle methods map to hooks in functional components?

react
mid

Build an autocomplete/typeahead search component in React that fetches suggestions from an API with debouncing, keyboard navigation, and highlighted matching text.

react
mid

Build an infinite scroll component in React using Intersection Observer that loads more items as the user scrolls, with loading states and race condition handling.

react
mid

Explain React.memo, useMemo, and useCallback. When should each be used?

react
senior

How does React's reconciliation algorithm work?

react
senior

What are React's concurrent features and how do Suspense and transitions work?

react
senior

Explain common React patterns: Compound Components, Render Props, and Custom Hooks.

react
senior

What are Higher-Order Components (HOCs) in React, and why are they less commonly used today?

react
senior

How would you design and implement a reusable Pagination component in React?

react
senior

How does list virtualization (windowing) work in React and when should you use it?

react
senior

Explain React's hydration process and common hydration mismatch issues.

react
senior

Explain React's diffing algorithm in detail. How does it achieve O(n) complexity?

react
senior

Implement a basic version of useState from scratch.

react
senior

Implement a basic version of useEffect from scratch.

react
senior

What is TypeScript and what benefits does it provide over JavaScript?

typescript
junior

What are common React performance optimization techniques?

performance
mid

Recommended Topics (12)

Closures

A closure is a function that retains access to variables from its outer (enclosing) scope even after the outer function has returned, enabled by JavaScript's lexical scoping.

Event Loop & Runtime

JavaScript is single-threaded with one call stack — the event loop enables async behavior by processing microtasks (promises) before macrotasks (setTimeout) between each cycle of the call stack.

Currying & Partial Application

Currying transforms a function with multiple arguments into a sequence of single-argument functions, while partial application fixes some arguments upfront and returns a function expecting the rest.

Hooks

Hooks let functional components manage state (useState), run side effects (useEffect), access refs (useRef), and extract reusable logic into custom hooks — all following strict rules about call order.

Context API

Context provides data to any descendant component without passing props through every level — it solves prop drilling but is not state management, and context value changes re-render all consumers.

State

State is internal, mutable data owned by a component — updates must be immutable (creating new objects, not mutating existing ones) and are batched asynchronously in React 18+ for performance.

Performance Optimization

React.memo skips re-renders when props haven't changed, useMemo caches computed values, and useCallback caches function references — but these are targeted optimizations, not defaults for every component.

React Internals

React's reconciliation algorithm diffs virtual DOM trees in O(n) using two heuristics — different element types tear down the subtree, same types compare attributes — while the Fiber architecture makes this work interruptible so the browser stays responsive during large updates.

Concurrent React

Concurrent rendering lets React interrupt and prioritize work — Suspense provides declarative loading states, useTransition marks updates as non-urgent, and useDeferredValue defers expensive re-renders.

Advanced Patterns

React patterns evolved from mixins to HOCs to render props to hooks — compound components share implicit state for flexible APIs, while custom hooks have replaced most logic-sharing patterns.

TypeScript Fundamentals

TypeScript is a typed superset of JavaScript that compiles to plain JS — it catches type errors at compile time rather than runtime, enables intelligent IDE tooling (autocomplete, refactoring, go-to-definition), and has become the industry standard for production JavaScript applications.

React Performance Optimization

React performance optimization involves preventing unnecessary re-renders with memoization, virtualizing long lists, splitting context providers, and profiling with React DevTools to identify actual bottlenecks before optimizing.

Interview Tips

  • Meta created React — expect deep questions about React internals and patterns
  • Practice building UI components from scratch (forms, autocomplete, infinite scroll)
  • System design questions often involve social features (news feed, chat, notifications)
  • Be prepared to discuss trade-offs between different state management approaches
  • Behavioral rounds focus on Meta's values: move fast, be bold, build social value
  • Meta now includes an AI-assisted coding round — you'll have access to AI models in CoderPad, but you must verify, explain, and debug AI-generated code
  • Practice building real UI components: forms, autocomplete, infinite scroll, and data tables

Job Search Tips

  • Apply through metacareers.com — Meta's official careers portal
  • Referrals are highly valued and dramatically boost your chances — reach out to current employees via LinkedIn or mutual connections
  • Tailor your resume to highlight frontend work and link to a portfolio or GitHub with React projects
  • Meta hires year-round, but new grad roles typically open in late summer — check metacareers.com regularly and apply as soon as roles are posted
  • E3 is entry-level and E5 is the 'core level' all engineers are expected to reach — know which level you're targeting
  • Meta's AI-assisted coding rounds are now standard for E6 and below — practice explaining and debugging AI-generated code

Interview information is curated from publicly available sources and may not reflect current processes.

All company names and trademarks are the property of their respective owners. JS Guide is not affiliated with, endorsed by, or sponsored by any of the companies listed. Use of company names is for informational and educational purposes only.