Meta Coding Interview: What They Actually Ask (2026)
Meta's coding interview has a distinct character that surprises candidates who've only prepared for Google or Amazon. It's faster, more focused on correctness over elegance, and places a different kind of emphasis on communication. Knowing the difference before you walk in (or log in) is worth weeks of preparation.
The Meta Interview Process
A standard Meta (Facebook) SDE loop:
- Initial recruiter call (15–30 min)
- Technical phone screen (45 min) — 2 coding problems
- Virtual on-site — 4–5 rounds:
- 2 coding rounds
- 1 behavioral/values round
- 1 system design round (SDE-2+)
- Sometimes a product sense round
Meta is notable for scheduling two problems per coding round, not one. Each problem is typically Medium difficulty. This is a meaningful difference from Google, which usually runs one medium-to-hard problem per round with significant follow-up depth.
Meta Interview Process Flowchart
flowchart TD
A["Apply Online / Referral"] --> B["Recruiter Call - 15-30 min"]
B --> C["Phone Screen - 45 min"]
C --> D{"Pass?"}
D -->|"No"| E["Reapply in 6 months"]
D -->|"Yes"| F["Virtual On-site Loop"]
F --> G["Coding Round 1: 2 problems in 45 min"]
G --> H["Coding Round 2: 2 problems in 45 min"]
H --> I["Behavioral / Values Round - 45 min"]
I --> J["System Design Round - 45 min (SDE-2+)"]
J --> K["Product Sense Round (optional)"]
K --> L["Debrief"]
L --> M{"Decision?"}
M -->|"All Pass"| N["Offer"]
M -->|"Mixed"| O["Team-Level Decision"]
M -->|"Fail"| E
Meta's Coding Interview Format
Meta's 45-Minute Coding Round Format
Structure: Problem 1 (Medium) → Problem 2 (Medium)
Per Problem Time Budget:
| Phase | Time | What to Do |
|---|---|---|
| Clarify | 2-3 min | Ask questions, confirm inputs/outputs |
| Approach | 3-5 min | Discuss solution strategy |
| Code | 12-15 min | Write clean, working solution |
| Test | 2-3 min | Walk through examples, edge cases |
Evaluation Criteria:
- Correctness
- Code Quality
- Communication
- Speed
Code Examples: Meta-Style Problems with Solutions
Example 1: Two Sum (Hash Map Pattern)
This is the quintessential Meta problem. The hash map pattern appears in dozens of variants.
Python:
def two_sum(nums, target):
"""
Given an array of integers and a target, return indices of
two numbers that add up to the target.
Time: O(n) | Space: O(n)
"""
seen = {} # value -> index
for i, num in enumerate(nums):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return [] # No solution found
# Example usage
print(two_sum([2, 7, 11, 15], 9)) # Output: [0, 1]
print(two_sum([3, 2, 4], 6)) # Output: [1, 2]
JavaScript:
function twoSum(nums, target) {
const seen = new Map();
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (seen.has(complement)) {
return [seen.get(complement), i];
}
seen.set(nums[i], i);
}
return [];
}
// Example usage
console.log(twoSum([2, 7, 11, 15], 9)); // Output: [0, 1]
console.log(twoSum([3, 2, 4], 6)); // Output: [1, 2]
Key insight for Meta: State the time complexity upfront: "This is O(n) time and O(n) space using a hash map." Meta interviewers value quick recognition of optimal patterns.
Example 2: Number of Islands (BFS/DFS on Grid)
This problem tests graph traversal fundamentals. Variations appear frequently at Meta.
Python:
from collections import deque
def num_islands(grid):
"""
Count the number of islands in a 2D grid.
An island is formed by 1s connected horizontally or vertically.
Time: O(m * n) | Space: O(min(m, n)) for BFS queue
"""
if not grid:
return 0
rows, cols = len(grid), len(grid[0])
count = 0
def bfs(r, c):
queue = deque([(r, c)])
grid[r][c] = '0' # Mark visited by sinking
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
while queue:
row, col = queue.popleft()
for dr, dc in directions:
nr, nc = row + dr, col + dc
if (0 <= nr < rows and 0 <= nc < cols
and grid[nr][nc] == '1'):
queue.append((nr, nc))
grid[nr][nc] = '0'
for r in range(rows):
for c in range(cols):
if grid[r][c] == '1':
count += 1
bfs(r, c)
return count
# Example usage
grid = [
['1', '1', '0', '0', '0'],
['1', '1', '0', '0', '0'],
['0', '0', '1', '0', '0'],
['0', '0', '0', '1', '1']
]
print(num_islands(grid)) # Output: 3
JavaScript:
function numIslands(grid) {
if (!grid.length) return 0;
const rows = grid.length, cols = grid[0].length;
let count = 0;
function bfs(r, c) {
const queue = [[r, c]];
grid[r][c] = '0';
const dirs = [[0, 1], [0, -1], [1, 0], [-1, 0]];
while (queue.length) {
const [row, col] = queue.shift();
for (const [dr, dc] of dirs) {
const nr = row + dr, nc = col + dc;
if (nr >= 0 && nr < rows && nc >= 0
&& nc < cols && grid[nr][nc] === '1') {
queue.push([nr, nc]);
grid[nr][nc] = '0';
}
}
}
}
for (let r = 0; r < rows; r++) {
for (let c = 0; c < cols; c++) {
if (grid[r][c] === '1') {
count++;
bfs(r, c);
}
}
}
return count;
}
Key insight for Meta: Always ask whether you can modify the input. If so, modify in place (O(1) space). If not, use a visited set (O(m*n) space).
Example 3: Longest Substring Without Repeating Characters (Sliding Window)
A classic Meta sliding window problem that tests string manipulation skills.
Python:
def length_of_longest_substring(s):
"""
Find the length of the longest substring without
repeating characters.
Time: O(n) | Space: O(min(n, alphabet_size))
"""
char_index = {} # char -> last seen index
max_length = 0
left = 0
for right, char in enumerate(s):
if char in char_index and char_index[char] >= left:
left = char_index[char] + 1
char_index[char] = right
max_length = max(max_length, right - left + 1)
return max_length
# Example usage
print(length_of_longest_substring("abcabcbb")) # Output: 3
print(length_of_longest_substring("bbbbb")) # Output: 1
print(length_of_longest_substring("pwwkew")) # Output: 3
JavaScript:
function lengthOfLongestSubstring(s) {
const charIndex = new Map();
let maxLength = 0;
let left = 0;
for (let right = 0; right < s.length; right++) {
const char = s[right];
if (charIndex.has(char) && charIndex.get(char) >= left) {
left = charIndex.get(char) + 1;
}
charIndex.set(char, right);
maxLength = Math.max(maxLength, right - left + 1);
}
return maxLength;
}
Key insight for Meta: The sliding window pattern is extremely common. Practice recognizing when to expand/shrink the window based on conditions.
Example 4: Binary Tree Level Order Traversal (BFS Pattern)
Tree traversal via BFS is a Meta staple. This pattern extends to many follow-up questions.
Python:
from collections import deque
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def level_order(root):
"""
Return level-order traversal of a binary tree as a list of lists.
Time: O(n) | Space: O(n)
"""
if not root:
return []
result = []
queue = deque([root])
while queue:
level_size = len(queue)
level = []
for _ in range(level_size):
node = queue.popleft()
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result
# Example usage
# 3
# / \
# 9 20
# / \
# 15 7
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)
print(level_order(root)) # Output: [[3], [9, 20], [15, 7]]
JavaScript:
function levelOrder(root) {
if (!root) return [];
const result = [];
const queue = [root];
while (queue.length) {
const levelSize = queue.length;
const level = [];
for (let i = 0; i < levelSize; i++) {
const node = queue.shift();
level.push(node.val);
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
result.push(level);
}
return result;
}
Key insight for Meta: Meta often follows up with "find the right side view" or "zigzag traversal." Master the base BFS pattern and these variations become straightforward.
Meta's coding interviews favor:
- Arrays and strings: Two Sum variants, substring problems, prefix sums
- Trees and graphs: BFS/DFS, tree traversal, connected components
- Dynamic programming: Most often 1D DP, occasionally 2D
- Hash maps and sets: Frequency counting, existence checking
- Sorting and searching: Custom sort, binary search variants
Meta's problems are more commonly well-known LeetCode-style problems or close variants compared to Google's tendency toward more novel problem designs. This means LeetCode preparation translates more directly to Meta interviews.
The catch: because the problems are more standard, the evaluation shifts heavily to execution. Can you implement it cleanly and quickly? Do you handle edge cases? Is your code readable?
Meta's Speed Expectation
Meta's two-problems-per-round format creates a different time pressure than you'll encounter anywhere else.
Approximate time budget per problem:
- 2–3 min: Clarifying questions
- 3–5 min: Approach discussion
- 12–15 min: Coding
- 2–3 min: Testing
That's 20–25 minutes per problem in a 45-minute round. If you spend 35 minutes on the first problem, the second becomes almost impossible.
The practical implication: If you're not reaching the coding phase within 5 minutes, you need to commit to an approach and start implementing. Meta values candidates who execute well over candidates who spend a long time finding the perfect approach.
Meta's Behavioral Round: Core Values
Meta's behavioral round is explicitly structured around their core values:
- Move fast
- Build for everyone
- Focus on long-term impact
- Be bold
Unlike Google's "Googleyness" which is more open-ended, Meta interviewers often tie questions directly to these values.
Common Meta behavioral questions:
- "Tell me about a time you had to move fast on an important decision."
- "Describe a project where you had to balance speed and quality."
- "Tell me about a time you influenced a decision you disagreed with."
- "When have you built something that had unexpected impact beyond your team?"
Prepare 4–5 STAR stories that emphasize speed, impact, and initiative.
Meta's Engineering Values
Meta's culture is built on three core engineering values that directly influence how interviews are structured and what interviewers evaluate. For deeper insight into their engineering culture, check Meta's engineering blog.
1. Move Fast
Meta's famous motto isn't just marketing — it's embedded in their engineering culture. In interviews, this translates to:
- Speed matters: Don't spend 15 minutes discussing edge cases before writing a line of code
- Bias toward action: Start coding once you have a reasonable approach
- Iterate quickly: Get a working solution first, then optimize
What this looks like in practice:
Wrong: "Let me think through all possible edge cases..."
Right: "I'll start with the base case, get it working,
then handle edge cases."
2. Focus on Long-Term Impact
Meta values engineers who think beyond the immediate task. In interviews, this means:
- Mention scalability: "This solution handles 1M rows in O(n) time"
- Consider maintenance: Write code that other engineers can understand
- Think about users: "This approach works for the common case and degrades gracefully"
3. Build Awesome Things
Meta wants engineers who are excited about building products that impact billions. In behavioral rounds:
- Show passion for building: Talk about side projects, hackathons, or creative solutions
- Demonstrate user empathy: Explain how your technical decisions served users
- Highlight innovation: Describe times you went beyond requirements
What Meta Interviewers Look For
| Criteria | What They Evaluate | How to Demonstrate |
|---|---|---|
| Problem Solving | Can you break down ambiguous problems? | Ask clarifying questions, identify edge cases early |
| Coding Speed | Can you implement quickly and correctly? | Practice timed coding, know common patterns cold |
| Code Quality | Is your code clean and maintainable? | Use meaningful names, proper structure, handle edge cases |
| Communication | Can you explain your approach clearly? | Think aloud, explain trade-offs, ask for feedback |
| Testing | Do you verify your solution works? | Trace through examples, consider edge cases, test manually |
| Optimization | Can you improve time/space complexity? | Analyze Big-O, suggest optimizations if time permits |
| Cultural Fit | Do you embody Meta's values? | Show speed, impact, and boldness in your stories |
| Technical Depth | Do you understand underlying data structures? | Explain why you chose specific structures, discuss trade-offs |
Real Meta Interview Walkthrough
Let's walk through a realistic Meta coding interview scenario:
The Problem
Interviewer: "Given an array of integers, find two numbers that sum to a target. Return their indices."
Step 1: Clarify (2 minutes)
You: "Can I assume there's always exactly one solution?" Interviewer: "Yes, exactly one valid answer." You: "Can I use the same element twice?" Interviewer: "No, the two elements must be at different indices." You: "What about negative numbers?" Interviewer: "Yes, the array can contain negatives."
Step 2: Approach (3 minutes)
You: "I'll use a hash map to store values we've seen. For each number, I check if its complement (target - current) exists in the map. This gives O(n) time and O(n) space."
Interviewer: "Sounds good, go ahead."
Step 3: Code (12 minutes)
def two_sum(nums, target):
seen = {}
for i, num in enumerate(nums):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return []
Step 4: Test (3 minutes)
You: "Let me trace through an example. With [2, 7, 11, 15] and target 9:
- i=0, num=2, complement=7, not in seen, add {2:0}
- i=1, num=7, complement=2, found at index 0, return [0, 1]"
Interviewer: "Correct. What if the array is [3, 3] and target is 6?"
You: "Good edge case. Let me check — i=0, num=3, complement=3, not in seen yet, add {3:0}. i=1, num=3, complement=3, found at index 0, return [0, 1]. Works correctly."
Total time: ~20 minutes
Key takeaway: Meta rewards candidates who move efficiently through each phase without getting stuck.
Common Meta Interview Mistakes
1. Over-Optimizing Before Coding
Mistake: Spending 15 minutes discussing how to optimize from O(n²) to O(n log n) before writing any code.
Why it hurts: Meta values speed. Get a working solution first, then discuss optimizations if time permits.
Fix: "I'll start with a brute force approach to make sure I solve it, then optimize."
2. Ignoring the Two-Problem Format
Mistake: Spending 35 minutes on the first problem, leaving only 10 minutes for the second.
Why it hurts: Both problems are equally weighted. A partial second solution looks worse than two complete solutions.
Fix: Practice with a timer. If you're not coding within 5 minutes, commit to an approach and start.
3. Not Talking Through Your Approach
Mistake: Going silent while thinking, then suddenly presenting a solution.
Why it hurts: Meta interviewers can't evaluate what they can't see. Silence makes them nervous.
Fix: Think aloud: "I'm considering two approaches... Option A uses a hash map, Option B uses sorting. Let me think about the trade-offs..."
4. Forgetting to Test Your Code
Mistake: Presenting code and saying "I think it works" without tracing through examples.
Why it hurts: Meta interviewers expect you to verify your solution. Not testing suggests you don't care about correctness.
Fix: Always trace through at least one example and one edge case before saying you're done.
5. Choosing Wrong Data Structures
Mistake: Using an array when a hash map would be O(1) lookup, or using recursion when iteration would be simpler.
Why it hurts: It suggests you don't have strong fundamentals in data structures.
Fix: Before coding, state: "I'll use a hash map here because we need O(1) lookups."
6. Not Asking Clarifying Questions
Mistake: Assuming constraints and jumping into coding without confirming requirements.
Why it hurts: Real engineering requires understanding requirements first. This is a red flag.
Fix: Always ask: "What are the input constraints? Are there edge cases to handle? Can I modify the input?"
Meta vs Google vs Amazon Comparison
| Factor | Meta | Amazon | |
|---|---|---|---|
| Problems per coding round | 2 (both Medium) | 1 (Medium-Hard + follow-ups) | 1-2 (Medium) |
| Speed emphasis | High — fast execution | Medium — depth preferred | Medium — balanced |
| Problem novelty | Standard LeetCode-style | Novel/creative combinations | Standard +Leadership |
| Behavioral focus | Core values explicit | "Googleyness" — open | Leadership Principles |
| System design | SDE-2+ only | All levels | Senior+ only |
| Interview length | 45 min per round | 45-60 min per round | 45-60 min per round |
| Loop rounds | 4-5 | 4-5 | 5-7 |
| Hiring decision | Team-level debrief | Cross-functional HC | Bar Raiser involved |
| Reapplication wait | 6 months | 6-12 months | 6-12 months |
| Coding language flexibility | Any (Python preferred) | Any (Java/Python common) | Any (Java preferred) |
| LeetCode relevance | Very high | Moderate | High |
| Behavioral weight | 20-25% of loop | 15-20% of loop | 30-40% of loop |
Level-Specific Preparation
Meta uses E3 (Entry), E4 (Mid), E5 (Senior), E6 (Staff) levels. Preparation varies significantly:
E3 (Entry Level — New Grad)
- Coding difficulty: Easy to Medium
- Focus: Basic data structures, simple algorithms
- System design: Not required
- Behavioral: Basic teamwork and learning ability
- Key topics: Arrays, strings, hash maps, basic trees, simple recursion
Preparation tip: Focus on LeetCode Easy/Medium problems. Master the fundamentals before moving to advanced topics.
E4 (Mid Level — 2-4 years experience)
- Coding difficulty: Medium
- Focus: Algorithm design, optimization
- System design: Basic design (API design, simple architectures)
- Behavioral: Project ownership, cross-team collaboration
- Key topics: Trees, graphs, DP, sliding window, binary search
Preparation tip: Practice solving two Medium problems in 40 minutes. Start basic system design (URL shortener, chat system).
E5 (Senior — 5+ years experience)
- Coding difficulty: Medium to Hard
- Focus: System thinking, scalability, mentorship
- System design: Complex distributed systems
- Behavioral: Leadership, technical influence, cross-org impact
- Key topics: All E4 topics + advanced DP, system design, code review skills
Preparation tip: Practice system design extensively. Be ready to discuss trade-offs at scale. Your behavioral stories should demonstrate leadership and impact.
Quick Reference by Level
| Level | Coding Difficulty | System Design | Behavioral Focus | Prep Time |
|---|---|---|---|---|
| E3 | Easy-Medium | None | Teamwork | 4-6 weeks |
| E4 | Medium | Basic | Project ownership | 6-8 weeks |
| E5 | Medium-Hard | Complex | Leadership | 8-12 weeks |
| E6 | Hard | Staff-level | Org-wide impact | 12+ weeks |
Behavioral Round at Meta
Meta's behavioral round differs significantly from other FAANG companies:
How It Differs from Google
| Aspect | Meta | |
|---|---|---|
| Structure | Explicitly tied to core values | More open-ended "Googleyness" |
| Question style | "Tell me about a time you moved fast" | "Tell me about yourself" |
| Evaluation | Direct mapping to values | Holistic personality assessment |
| Preparation | 4-5 value-aligned stories | Broader story collection |
How It Differs from Amazon
| Aspect | Meta | Amazon |
|---|---|---|
| Framework | Core values (Move Fast, etc.) | 16 Leadership Principles |
| Depth | Moderate — 2-3 follow-ups | Deep — 5-6 follow-ups per story |
| Bar Raiser | No dedicated Bar Raiser | Yes — dedicated role |
| Story count | 4-5 stories cover all questions | 8-10 stories needed |
For Amazon-specific behavioral practice, see our Amazon behavioral interview questions guide.
Meta's Core Values to Prepare For
- Move Fast: "Tell me about a time you shipped quickly under pressure"
- Focus on Long-Term Impact: "Describe a decision that benefited the team months later"
- Build Awesome Things: "What's something you built that you're proud of?"
- Be Bold: "When did you take a risk that paid off?"
- Be Open: "Tell me about a time you received difficult feedback"
- Build Social Value: "How did your work impact users or society?"
For comparison, Amazon uses a different behavioral framework based on Leadership Principles — see our Amazon behavioral interview questions for the full breakdown.
STAR Framework for Meta
Use the STAR method but emphasize the Impact aspect:
- Situation: Brief context (1-2 sentences)
- Task: Your specific responsibility
- Action: What YOU did (not the team)
- Result: Quantified impact with metrics
Example:
"In Q3, our checkout flow had a 15% drop-off rate (Situation). I was responsible for reducing this (Task). I implemented a one-click checkout with cached payment info and ran A/B tests (Action). We reduced drop-off to 8%, increasing revenue by $2M annually (Result). This aligned with our 'Move Fast' value because we shipped in 2 weeks instead of the planned 6 weeks."
Quick Reference Cheat Sheet
Meta Interview Day Checklist
□ Bring: Laptop, charger, water, notepad
□ Test: Video/audio 30 minutes early
□ Environment: Quiet room, good lighting, clean background
□ Mindset: Two problems per round, speed matters
□ Communication: Think aloud, explain trade-offs
□ Testing: Always trace through examples before finishing
Pattern Recognition Cheat Sheet
| Problem Type | Pattern | Time | Space |
|---|---|---|---|
| Two Sum variants | Hash Map | O(n) | O(n) |
| Substring problems | Sliding Window | O(n) | O(k) |
| Matrix traversal | BFS/DFS | O(mn) | O(mn) |
| Tree problems | Recursion/BFS | O(n) | O(h) |
| Interval problems | Sort + Sweep | O(n log n) | O(n) |
| Binary search | Divide & Conquer | O(log n) | O(1) |
| DP problems | Memoization | O(n) | O(n) |
Common Meta Follow-Up Questions
- "Can you optimize the space?" — Usually yes, use in-place modification
- "What if the input is streamed?" — Use sliding window or online algorithms
- "How would you handle duplicates?" — Use sets or frequency maps
- "What's the time complexity?" — Always analyze before coding
- "Can you do it without extra space?" — Consider in-place sorting or bit manipulation
Meta-Specific LeetCode Problems to Master
- Two Sum (LC #1) — Hash map pattern
- Valid Parentheses (LC #20) — Stack pattern
- Merge Two Sorted Lists (LC #21) — Linked list basics
- Binary Tree Level Order Traversal (LC #102) — BFS on trees
- Number of Islands (LC #200) — Grid DFS/BFS
- Climbing Stairs (LC #70) — Basic DP
- Longest Substring Without Repeating Characters (LC #3) — Sliding window
- Product of Array Except Self (LC #238) — Prefix/suffix
- Find Minimum in Rotated Sorted Array (LC #153) — Modified binary search
- Word Break (LC #139) — DP + trie
Specific Preparation for Meta
Must-practice problem types
- Two Sum and variants (hash map pattern)
- Binary tree LCA, path sum, level order traversal
- Number of islands and connected components (BFS/DFS on grid)
- Longest substring without repeating characters (sliding window)
- Decode ways (DP)
- Clone graph
- Word break (DP + trie)
- Meeting rooms and interval problems
Practice tempo
The biggest Meta-specific prep gap: most candidates practice at Google's pace (one hard problem, lots of thinking). For Meta, add timed sessions where you solve two Medium problems back-to-back in 40 minutes. This builds the tempo intuition you need. Common coding interview mistakes include spending too long on the approach before coding.
Practice for Meta's Specific Format
InterviewSkool lets you practice at the pace Meta expects — fast, two-problem rounds where execution under time pressure is the differentiator.
Start a Meta-style mock interview →
Frequently Asked Questions
Does Meta look at your GitHub or personal projects?
Recruiters sometimes look at GitHub during screening. Once you're in the technical loop, interviewers evaluate only your interview performance — not your portfolio. A strong GitHub profile can help you get the first phone screen; it doesn't affect your loop evaluation.
What's Meta's reapplication policy after failing a loop?
Typically 6 months. Meta tracks previous performance in their system. If you had a near-pass experience, mention this to your recruiter when reapplying — they sometimes have discretion on whether to fast-track you to the on-site or require a full phone screen again.
Is Meta's interview getting harder or easier over time?
Meta's interview bar has remained relatively stable over the past few years, though like all FAANG companies the applicant pool has grown more competitive post-2020. The two-problem-per-round format has been consistent for several years. What's changed: Meta now places more explicit emphasis on the behavioral round following their internal culture reset under the "Year of Efficiency."