MetaSoftware Engineer

Meta Software Engineer Interview Questions

Prepare for this exact position with 154 real candidate reports. Review the levels, locations, interview formats, and questions that appeared most often for Meta Software Engineer candidates.

154

role-specific reports

93

questions found

16

levels represented

23

locations represented

Updated 2026-07-30

Search real candidate reports

Meta Software Engineer candidate reports

Search within this position by level, location, interview type, outcome, or a specific question.

154 matching interviews

4 questions
  1. 01

    Describe a conflict you had with another team and how you resolved it.

    Behavioral & Leadership

  2. 02

    Describe a time you collaborated with another team.

    Behavioral & Leadership

  3. 03

    Design and implement a memory allocator class with alloc() and free(id) methods.

    System Design · Hard

Software Engineer · E4/E5

BengaluruMar 2025MixedRejected
8 questions
  1. 01

    Solve two medium-difficulty coding problems

    Coding & Algorithms · Medium

  2. 02

    Solve a medium-difficulty array problem

    Coding & Algorithms · Medium

  3. 03

    Solve a medium-difficulty binary tree problem

    Coding & Algorithms · Medium

Software Engineer · E4

USAMar 2025OnsitePending
1 questions
  1. 01

    Design a system to track the top-K items per user over time.

    System Design · Hard

Software Engineer · E4

USAFeb 2025PhonePending
2 questions
  1. 01

    Merge three sorted arrays without duplicate elements; extend to merging k sorted arrays.

    Coding & Algorithms · Medium

  2. 02

    Find the k closest points to the origin.

    Coding & Algorithms · Medium

Software Engineer

USAFeb 2025PhonePending
2 questions
  1. 01

    Determine if an abbreviation correctly represents a given word according to standard abbreviation rules.

    Coding & Algorithms · Easy

  2. 02

    Return the vertical order traversal of a binary tree, grouping nodes by their column position.

    Coding & Algorithms · Medium

Software Engineer · E4

USAFeb 2025MixedOffer
10 questions
  1. 01

    Solve 1-D candy crush: given a 1-D array, repeatedly remove adjacent identical elements.

    Coding & Algorithms · Medium

  2. 02

    Find the right-side view of a binary tree.

    Coding & Algorithms · Medium

  3. 03

    Design a video streaming system like Netflix that supports watching and resuming videos across devices, with concurrent access, cache invalidation strategy, and rapid video distribution.

    System Design · Hard

Software Engineer · E6

USAFeb 2025OnsitePending
9 questions
  1. 01

    Determine if a contiguous subarray sums to a target value.

    Coding & Algorithms · Medium

  2. 02

    Calculate the sum of all values in a binary search tree within a given range.

    Coding & Algorithms · Medium

  3. 03

    Create a deep copy of a linked list where each node has a random pointer.

    Coding & Algorithms · Medium

Software Engineer · E4

Feb 2025PhonePending
2 questions
  1. 01

    Find the K most frequent elements in an array.

    Coding & Algorithms · Medium

  2. 02

    Find the lowest common ancestor of two nodes in a binary tree.

    Coding & Algorithms · Medium

Most-asked Meta Software Engineer questions

Ranked by how often each question appeared in reports for this exact position. Answers are written by our team.

Check if a string matches a given abbreviation pattern where digits represent consecutive character counts.

asked in 12 reportsmediumO(n + m) time where n = len(string) and m = len(pattern); O(1) space

Use two pointers to traverse the pattern and string simultaneously. For each pattern element: if it's a digit, parse the complete number (including multi-digit cases) and advance the string pointer by that count; if it's a letter, verify it matches the current string character. Edge case: leading zeros are invalid. The key insight is that the pattern fully describes the string structure—digits represent skipped character sequences, not wildcards. Both pointers must reach their ends simultaneously for a valid match.

Discuss your approach to handling conflict in a team.

asked in 12 reports

I view conflict as incomplete context, not interpersonal failure. First, I listen actively to understand the underlying concern—not just the position. Then I reframe around what Meta values: our mission and shared impact. For technical disagreements, I bring data; for process friction, I address it directly and privately before escalating. I'm comfortable with disagreement itself; Meta rewards people who can advocate strongly then commit fully to the group decision. The key: separate the person from the problem, stay mission-focused, and resolve at the lowest level possible.

Implement weighted random selection to pick an index based on probability weights.

asked in 12 reportsmediumO(n) preprocessing, O(log n) per selection; O(n) space

Build a cumulative weight array where each index stores the sum of weights up to that point. To select: generate a random number in [0, total_weight), then binary search the cumulative array to find the first index where cumulative_weight ≥ random_value. This transforms O(n) linear scanning into O(log n) queries after O(n) preprocessing. The key insight is that cumulative weights map the weight distribution to a continuous range we can search efficiently.

Given a directory path and a cd command, return the resulting current directory path.

asked in 11 reportsmediumO(n) time, O(n) space

If the cd command starts with /, treat it as absolute—start from root; otherwise, append it to the current directory. Then normalize by splitting on / and using a stack: push each non-empty directory name, skip . (current), and pop for .. (parent, if stack non-empty). Join the stack with / and prepend /. This stack-based approach elegantly handles all cases: redundant slashes, chains of .., and the boundary condition at the filesystem root.

Calculate the sum of nested integers where each integer's contribution is weighted by its nesting depth.

asked in 10 reportsmediumO(N) time, O(D) space where N = total elements, D = max nesting depth

Use DFS traversal, tracking the current depth as you progress. When encountering an integer, add value × depth to the sum. For nested lists, recurse with depth + 1. The key insight: depth naturally increments during traversal, automatically weighting each contribution by nesting level. An iterative stack-based solution avoids recursion limits and handles arbitrarily deep nesting efficiently.

Find the shortest path in a binary matrix with obstacles.

asked in 10 reportsmediumO(m·n) time, O(m·n) space

Use BFS to find the shortest path in this unweighted graph. Start from (0,0), maintain a queue of cells with their distances. For each cell, explore all 4 neighbors—add them to the queue only if they're in bounds, not obstacles (value 0), and haven't been visited. Mark cells as visited to prevent revisiting. Return the distance when reaching (m-1, n-1), or -1 if unreachable. BFS naturally explores level-by-level, guaranteeing the first path found is shortest.

Answer behavioral questions using the STAR framework about professional experience

asked in 9 reports

Use STAR: Situation (context), Task (challenge), Action (your specific steps), Result (quantified outcomes). Meta prioritizes ownership and measurable impact—always connect your actions to business results with metrics. Emphasize individual contributions over team achievements. Demonstrate learning from failures. Select stories showcasing initiative, cross-functional collaboration, and cultural alignment. Prepare 4-5 diverse examples spanning leadership, conflict resolution, and technical judgment. Avoid generic narratives; use specific details and numbers. Meta evaluates how you think through ambiguity and drive outcomes.

Find the lowest common ancestor of two nodes in a tree given only parent pointers.

asked in 9 reportsmediumO(h) time, O(1) space

Traverse both nodes to the root while tracking their depths. Move the deeper node up until both reach the same depth, then advance both upward simultaneously until they meet. This works because once both nodes are equidistant from the root, they'll reach their common ancestor in the same number of steps. The LCA is where both paths converge.

Merge three sorted arrays into a single sorted array.

asked in 9 reportsmediumO(n) time, O(n) space

Use three pointers (one per array) to track your position in each. At each step, compare the current elements from all three arrays and append the smallest to the result, advancing that array's pointer. When an array is exhausted, continue merging the remaining two. This greedy approach processes each element exactly once, making it optimal.

Sum values in a binary search tree that fall within a specified range.

asked in 9 reportsmediumO(n) worst case, O(h + k) best case; O(h) space

Use DFS with pruning: if node value < low, skip left subtree and go right; if > high, skip right subtree and go left; otherwise add value and explore both subtrees. This exploits BST ordering to prune branches outside the range. Time complexity depends on tree balance and range size: best case O(h + k), worst case O(n) when all nodes fall within range.

Merge overlapping intervals into non-overlapping ones.

asked in 8 reportsmediumO(n log n) time, O(1) space

Sort intervals by start time. Iterate through maintaining the current merged interval—when next interval's start ≤ current end, extend the end. Otherwise, save the current interval and start fresh. The key insight: sorting guarantees no merges are missed, since overlapping intervals must be processed consecutively. Greedy merging is optimal because once sorted, each interval either overlaps the previous or stands alone.

Perform a vertical order traversal of a binary tree.

asked in 8 reportsmediumO(n) time, O(n) space

Use BFS with column indexing: assign root column 0, left child = parent−1, right child = parent+1. Store nodes in a map keyed by column. Process the tree level-by-level via BFS (preserving natural top-to-bottom order within columns), then return columns in sorted order. Key insight: BFS naturally maintains level order, eliminating explicit level tracking.

Find the kth largest element in an array.

asked in 7 reportsmediumO(n log k) time, O(k) space

Implement a min-heap of size k. Iterate through the array: add elements if the heap has fewer than k items, otherwise only add an element if it's larger than the heap's minimum (root). After processing all elements, the heap's root is the kth largest. The key insight is that you only need to maintain k candidates, not sort the entire array. This achieves O(n log k) time and O(k) space. QuickSelect offers O(n) average time, but its worst case is O(n²), making the heap approach more reliable for interviews.

Find the minimum number of characters to remove to make a string of parentheses valid.

asked in 7 reportsmediumO(n) time, O(1) space

Use a single-pass greedy approach: track unmatched opening parentheses with a counter. For each '(', increment it; for each ')', decrement if counter > 0 (matched), otherwise count as a removal. At the end, any remaining unmatched '(' must also be removed. The key insight is that we need only counters, not storage—every '(' without a matching ')' and every ')' without a preceding '(' must be removed.

Given a string, determine if it is a valid palindrome allowing at most one character deletion.

asked in 7 reportsmediumO(n) time, O(1) space

Use a two-pointer approach from both ends. When characters match, move inward. On the first mismatch, the key insight is you only need to try two deletions: remove the left character and check if the remaining substring is a palindrome, OR remove the right character and check. If either succeeds, return true. This works because once you find a mismatch, you must use your one deletion there or the strings can't match. A helper function validates if a substring is palindromic by comparing characters inward.

Implement a function to compute x raised to the power of n.

asked in 6 reportsmediumO(log n) time, O(1) space (iterative)

Use binary exponentiation (exponent halving) instead of naive multiplication. If n is even, compute x^(n/2) recursively and square the result; if odd, multiply x by x^(n-1). For negative exponents, compute x^|n| then return 1/result. Handle n=0 (return 1) and negative numbers. The key insight: each recursion halves n, reducing iterations from n to log(n). Implement iteratively with bit manipulation for space efficiency.

Find the lowest common ancestor of two nodes in a binary tree

asked in 5 reportsmediumO(n) time, O(h) space

Recursively traverse the tree checking both left and right subtrees. When you find a node where both target nodes exist in different subtrees, that's the LCA. If both exist in one subtree, recurse into that subtree only. The key insight is that a single DFS pass suffices—you're finding where the paths to both nodes diverge. This works because trees have exactly one path between any two nodes.

Implement a calculator that evaluates arithmetic expressions with proper operator precedence.

asked in 5 reportsmediumO(n) time, O(n) space

Use a single-pass stack-based approach: parse tokens left-to-right, immediately applying multiplication and division (higher precedence) to the top of the stack, while deferring addition and subtraction. When you encounter a lower-precedence operator, resolve any pending higher-precedence operations first. Maintain a stack of accumulated values and sum them at the end. This naturally respects precedence rules without building an expression tree.

More reported questions

  1. 01

    Implement a Least Recently Used (LRU) cache data structure

    asked in 8 reports
  2. 02

    Find the K most frequent elements in an array.

    asked in 6 reports
  3. 03

    Merge three sorted arrays into a single sorted array

    asked in 6 reports
  4. 04

    Merge two sorted arrays into a single sorted array.

    asked in 6 reports
  5. 05

    Return the right-side view of a binary tree (with a variant).

    asked in 6 reports
  6. 06

    Design a cloud storage system like Dropbox or Google Drive.

    asked in 5 reports
  7. 07

    Given an array of integers and a target sum, find the total number of continuous subarrays whose sum equals the target.

    asked in 5 reports
  8. 08

    Add two non-negative integers represented as strings and return their sum as a string.

    asked in 4 reports
  9. 09

    Clone a directed graph.

    asked in 4 reports
  10. 10

    Determine if a string can be segmented into dictionary words.

    asked in 4 reports
  11. 11

    Find the K closest points to the origin in a 2D plane.

    asked in 4 reports
  12. 12

    Implement a solution for the Buildings with Ocean View problem.

    asked in 4 reports
  13. 13

    Create a deep copy of a linked list where each node has a random pointer.

    asked in 3 reports
  14. 14

    Design a scalable social media platform similar to Instagram.

    asked in 3 reports
  15. 15

    Design a system for Instagram image uploads and feed service.

    asked in 3 reports
  16. 16

    Design a ticket booking system that prevents concurrent bookings of the same seat and handles high-traffic events.

    asked in 3 reports
  17. 17

    Design Facebook Messenger

    asked in 3 reports
  18. 18

    Find if any contiguous subarray sums to a multiple of k.

    asked in 3 reports
  19. 19

    Find local minima in an array (variation of find peak element).

    asked in 3 reports
  20. 20

    Find the k closest points to the origin.

    asked in 3 reports
  21. 21

    Find the largest island area when you can convert one water cell to land.

    asked in 3 reports
  22. 22

    Find the next lexicographically greater permutation of an array.

    asked in 3 reports
  23. 23

    Implement a solution for the Sum Root to Leaf Numbers problem.

    asked in 3 reports
  24. 24

    Remove all adjacent duplicate characters by repeatedly bursting groups of identical characters until none remain.

    asked in 3 reports
  25. 25

    Sort a string according to a custom character ordering.

    asked in 3 reports
  26. 26

    Write a method to determine if a string is a palindrome, considering only alphabetic characters.

    asked in 3 reports
  27. 27

    Calculate the dot product of two sparse vectors.

    asked in 2 reports
  28. 28

    Count the maximum number of islands in a grid

    asked in 2 reports
  29. 29

    Describe a conflict with a teammate and how you resolved it.

    asked in 2 reports
  30. 30

    Describe a conflict you had with a colleague and how you resolved it.

    asked in 2 reports