← Meta Interview Insights

Meta·Data Scientist·Technical Phone Screen·Intermediate

Intermediate
Jul 2026

Summary

Meta data scientist interview with a couple of SQL questions built around Instagram's video call data. Nothing too crazy on the surface, but the second question had a few moving parts that tripped me up a bit.

Questions Asked (2)

Q1

Using video call logs from the past 7 days, how many users initiated a call with more than 3 distinct people?

Product Analytics & MetricsData Modeling
Author's notes

Seemed straightforward but I almost forgot to filter by the date range properly.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the definitions of 'initiated a call' and 'distinct people' to ensure alignment. Then, outline a SQL-based approach: filter call logs to the last 7 days, group by caller and callee to get unique pairs, count distinct callees per caller, and filter for counts >3. Finally, count the number of callers meeting the criteria.

Pro tip: Mention edge cases like calls with the same person multiple times, calls that were missed or declined, and time zone considerations. Also, discuss how you would validate the results and handle data quality issues.

1. Clarify Definitions

Confirm what 'initiated a call' means (e.g., caller side) and 'distinct people' (unique callee IDs). Ask about time zone and whether to include all call types.

2. Filter and Deduplicate

Filter logs to the past 7 days based on call start time. Deduplicate caller-callee pairs to ensure each pair is counted once.

3. Aggregate and Count

Group by caller ID and count distinct callee IDs. Then filter for counts greater than 3.

4. Count Users

Count the number of distinct caller IDs that meet the condition.

5. Validate and Discuss

Consider edge cases (e.g., calls to self, group calls) and validate results with sanity checks. Discuss potential data quality issues.

Key Points to Mention

  • Definition of 'initiated a call' (caller vs. callee)
  • Handling of duplicate calls to the same person
  • Time zone and date range considerations
  • Exclusion of calls to self or invalid callee IDs
  • Treatment of group calls or conference calls
  • SQL implementation using COUNT(DISTINCT) and HAVING clause

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Of French users who were daily active yesterday, what percentage appeared in at least one video call (as either caller or recipient)?

Product Analytics & MetricsData Modeling
Author's notes

This one got me.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Clarify the metric definition: 'daily active' likely means users who opened the app on the target day, and 'video call' includes both 1:1 and group calls where the user is caller or recipient. Then outline a SQL-based approach: filter French users active yesterday, join with call logs on user_id and date, and compute the percentage of distinct active users who appear in at least one call.

Pro tip: Mention that you would validate the metric by checking edge cases like users who initiated calls but didn't connect, and consider using a left join with a flag to avoid double-counting users in multiple calls.

1. Clarify definitions and assumptions

Confirm what 'daily active' means (e.g., opened app, logged in) and what constitutes a 'video call' (e.g., initiated, connected, duration threshold). Also clarify 'French users' (e.g., country = France, locale = fr_FR).

2. Identify data sources and tables

Locate tables for user activity (e.g., daily_active_users), user attributes (e.g., country), and call events (e.g., video_call_logs with caller_id, recipient_id, call_start_time).

3. Write SQL query to compute the metric

Use a CTE to get distinct French users active yesterday, then left join to call logs on user_id (as caller or recipient) and call date = yesterday, and finally calculate the percentage of users with at least one call.

4. Validate and handle edge cases

Check for duplicates, nulls, and timezone issues. Consider whether calls spanning midnight should count, and whether group calls require special handling (e.g., multiple recipients).

5. Present results and interpret

Report the percentage and provide context, such as comparing to overall daily active users or previous days, and discuss potential limitations.

Key Points to Mention

  • Definition of 'daily active' and 'video call' (e.g., connected call vs. attempted call).
  • Use of DISTINCT to avoid double-counting users in multiple calls.
  • Handling of group calls where a user can be both caller and recipient.
  • Timezone considerations for 'yesterday' and call timestamps.
  • SQL techniques: LEFT JOIN, CASE WHEN, COUNT(DISTINCT), subqueries/CTEs.
  • Potential data quality issues: missing call logs, bot users, or test accounts.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.