← Back to Directory

Meta interview notes, page 5 of 238

FAANG / Big Tech

Most of these Meta write-ups come from Software Engineers (1,194), then Data Scientists (489) and Product Managers (453). The most reported rounds are the technical phone screen (1,190), the product sense round (466), the system design round (255) and the behavioral / leadership round (205).

2377 interview notes · updated Jul 2026

Meta·Data Scientist·Technical Phone Screen

Sep 2025
A Meta DS interview that was essentially one long A/B testing case study on a hashtag recommender system. The depth they expected was real, covering everything from randomization unit choice to power calculations with intraclass correlation adjustments. Left feeling like I'd taken an exam.
  • How would you choose the randomization unit for an A/B test on a hashtag recommender, and how does cross-session interference affect that choice?
  • How would you structure the treatment and control groups, plan the rollout ramp, and prevent cross-over or contamination in this experiment?
  • Define a primary success metric and at least three guardrail metrics for this hashtag recommender experiment.
  • Walk through the sample size calculation for this experiment: baseline follow rate 4%, two-sided alpha 0.05, power 0.80, minimum detectable effect of +5% relative, with user-level randomization and an intraclass correlation of 0.02 across repeated sessions. Show the formulas and adjustments.
  • What bias controls would you put in place for this experiment, including variance reduction techniques, novelty effect handling, sequential monitoring, and network interference diagnostics?

“This is where I stumbled first.”

View Post

Meta·Data Scientist·Take-home Assignment

Sep 2025
Meta Data Scientist take-home style question, heavy SQL with some tricky edge cases around versioning and idempotency. The kind of problem that looks manageable on paper until you're actually writing CTEs for 45 minutes and second-guessing every join.
  • Write SQL using CTEs to produce a per-profile snapshot table showing engagement metrics (views, likes, like rate) and profile quality signals (photo count, bio length) for profiles that have a final approved review on their latest version as of a given snapshot timestamp, excluding deleted profiles.
  • Aggregate the per-profile snapshot to country-level metrics: number of approved profiles, percent with at least one photo, percent with a bio of 10 or more characters, total 7-day views and likes, and overall 7-day like rate.
  • Write validation queries to: flag profiles where the final review references a non-latest version, detect profiles with more than one final review, surface events that arrived after the snapshot cutoff, and ensure reruns produce the same result by time-bounding all event aggregations to the snapshot.

“This one took me longer than I expected to set up cleanly.”

View Post

Meta·Data Scientist·Technical Phone Screen

Sep 2025
Meta data scientist technical screen, one question, all SQL. The problem looked like a reporting query at first glance but had enough edge cases baked in that I ended up rewriting my approach halfway through.
  • Using PostgreSQL, write a single query that returns one row per UTC calendar date for the last 7 days (always exactly 7 rows), with columns for date, calls initiated, completion rate, drop rate, and median duration in seconds. Only include calls where neither the caller nor callee is an employee. A call's date is determined by when it started. Median is over completed calls only, using percentile_cont(0.5), and excludes durations of zero or less. Dates with no activity should still appear with zeros or nulls.

“I started writing a straightforward group-by and got maybe 60% of the way there before realizing I'd completely forgotten to generate the date spine.”

View Post

Meta·Data Scientist·Technical Phone Screen

Sep 2025
SQL-heavy technical screen for a DS role at Meta. Four interconnected tasks all built on the same three-table schema, escalating from a basic aggregation to a comparative summary and a business interpretation layer. Pretty brutal if you're rusty on window functions.
  • Given a shops table and a listings table, write SQL to compute each shop's visibility rate (average of is_visible across its listings), returning only shops with at least 5 listings and ranking them by visibility rate descending, breaking ties by total listing count descending.
  • Define 'new shop' as created within the last 30 days and compute an activity score per shop over a specific date window using weighted event type counts from a shop_events table. Write SQL returning one row per shop with shop_id, is_new flag, visibility_rate (NULL if fewer than 1 listing), and activity_score (0 if no events).
  • Using the per-shop output from the previous query as a base, produce a 3-row summary table comparing new shops vs existing shops across mean activity score, median activity score (using an analytic function), and share of active shops (fraction with activity score above zero).
  • From the same dataset, identify the top 5 new shops by activity score where visibility rate is below 0.5, to surface shops that are active but underexposed. Also explain your assumptions around NULL vs 0 and how you'd guard against survivorship bias in this analysis.

“Straightforward GROUP BY with a HAVING filter, but I almost forgot the tie-breaking on total listings.”

View Post

Meta·Data Scientist·Technical Phone Screen

Sep 2025
Meta data scientist interview with a heavy SQL focus. The main question was a multi-part fraud detection problem that required chaining several CTEs together and outputting a composite risk score. Technically dense and not the kind of thing you can wing.
  • Given tables for users, logins, friend requests, messages, posts, and devices, write a single SQL query that computes three fraud feature flags for the past 7 days and returns only users whose weighted risk score is at least 0.5. The flags are: login from 3+ distinct countries within any rolling 24-hour window, messaging 3+ distinct recipients within 5 minutes of account creation, and sending 20+ friend requests with an acceptance rate under 10%.

“This wrecked me a little.”

View Post

Meta·Data Scientist·Technical Phone Screen

Sep 2025
Meta data scientist technical screen, basically one massive SQL problem that kept growing in scope. The question was about detecting latent demand for a group calling feature and it went deep fast, recursive CTEs and all.
  • Given only a 1:1 calls table and a users table, use SQL to estimate latent demand for a group call feature by identifying 10-minute windows where 3 or more distinct users are connected through overlapping or back-to-back 1:1 calls. Build an undirected edge view first, then explain when to use UNION vs UNION ALL and the deduplication pitfalls involved.
  • Using the undirected edge view, sessionize calls into rolling 10-minute windows and write a recursive CTE to find connected components across those sessions.
  • For each day in the last 7 days, output the number of loop sessions, unique users involved in loops, and an 'unmet connectivity' metric per session defined as n*(n-1)/2 minus the observed unique pairs, then aggregate that metric per day.
  • Calls with connected=0 should be excluded from the main edge graph, but describe how you would incorporate them as failed attempts in a sensitivity variant of the analysis.

“The UNION vs UNION ALL piece sounds like a throwaway but it actually matters here.”

View Post

Meta·Data Scientist·Technical Phone Screen

Sep 2025
Meta DS interview that was basically a two-hour SQL gauntlet. Three interconnected questions all built on the same schema, so if you misread the tables early on you were toast for the rest. Felt like a product analytics case study more than a traditional coding round.
  • Given a schema with feed impressions and likes, write a query that computes daily like-through-rate (distinct likers divided by distinct viewers) by platform and app version over a two-week window, then flags any segment where the rate drops by 5 or more percentage points on the last day compared to its prior 14-day average.
  • Build a daily funnel query for two consecutive dates showing feed viewers, users who received a like impression, and users who actually liked a post, with stage-to-stage conversion rates at each step.
  • Write a data quality check that compares likes per session across platforms and app versions to catch logging regressions like a sudden zero on a specific version. How would you incorporate an outages table to avoid flagging real outages as logging bugs?

“This was the hardest of the three.”

View Post

Meta·Software Engineer·Onsite - Coding / Algorithms

Apr 2026
Meta's AI-Enabled Coding round is a gauntlet of 4-5 progressive maze solver tasks where you're expected to drive the AI rather than just let it run. The bar for a strong signal is reaching the keys-and-doors problem; the bomb variant is basically extra credit. Explanation follow-ups after every AI-generated block will make or break you.
  • There's a bug in the maze printer where the path symbol overwrites the start and end markers in the output. Fix the display logic so S and E always take visual priority.
  • The BFS search in the maze solver runs forever. Why, and how do you fix it?
  • The maze now has directional gate cells marked with > and <. Movements through those cells must follow the indicated direction. Update the neighbor logic to enforce this.
  • Add keys and doors to the maze. Lowercase letters are keys, uppercase letters are locked doors. You can only pass through a door if you've already picked up the matching key. How do you update the search state?
  • A bomb glyph has been added to the maze. Stepping on it destroys all walls within a fixed radius. Implement a helper that computes the affected area, and decide how to fold wall destruction into the search state.
  • Alternatively: each cell has an energy cost. Find the path from start to exit that minimizes total energy consumed.

“Sounds trivial but I spent way too long on it because one of the test cases in the starter project is intentionally broken.”

View Post

Meta·Software Engineer·Onsite - Coding / Algorithms

Apr 2026
Meta SWE coding round with a deliberately underspecified compiler IR problem where the whole trick is that the cost constants aren't in the prompt, they're buried in the unit test assertions. Felt like a puzzle more than a coding problem, and apparently at least one person's AI model crashed mid-session which sounds like a nightmare.
  • Implement a function `extract_time_and_mem_cost(instruction_file)` that parses a toy compiler IR file of straight-line three-address code and returns the total time and memory cost. The per-operator costs are not given anywhere in the prompt.

“The thing that trips people up is spending the first 20 minutes asking the interviewer what each operator costs, and the interviewer just kind of...”

View Post

Meta·Software Engineer·Technical Phone Screen

Apr 2026
Meta coding round, tree problem that looked familiar until it wasn't. The twist on the classic right side view question tripped me up a bit.
  • Given the root of a binary tree, return the nodes visible from the right side and the nodes visible from the left side, both ordered from bottom to top.

“I recognized the right side view part immediately and started coding before fully reading the prompt.”

View Post