Whatnot

Whatnot Software Engineer Phone Screen Questions

13+ questions from real Whatnot Software Engineer Phone Screen rounds, reported by candidates who interviewed there.

13
Questions
8
Topic Areas
10+
Sources

What does the Whatnot Phone Screen round test?

The Whatnot phone screen typically lasts 45-60 minutes and evaluates core Software Engineer fundamentals. Candidates should expect 1-2 algorithmic problems, basic system design discussion at senior levels, and questions about relevant experience. The goal is to confirm technical competence before bringing candidates onsite.

Top Topics in This Round

Whatnot Software Engineer Phone Screen Questions

## Problem Determine whether a string can become a palindrome by removing at most one character. ## Likely LeetCode equivalent Directly matches Valid Palindrome II (LC 680). ## Tags strings, two_pointers, whatnot

## Problem Given n versions where the first bad version causes all subsequent ones to be bad, find the first bad version using binary search. ## Likely LeetCode equivalent Directly matches First Bad Version (LC 278). ## Tags binary_search, whatnot

## Problem Group a list of strings into anagram clusters, where each cluster contains strings that are anagrams of each other. ## Likely LeetCode equivalent Directly matches Group Anagrams (LC 49). ## Tags hash_table, strings, sorting, whatnot

## Problem Find the K points closest to the origin from a list of 2D coordinates using Euclidean distance. ## Likely LeetCode equivalent Directly matches K Closest Points to Origin (LC 973). ## Tags heap, math, sorting, whatnot

## Problem Search for a target value in a 2D matrix with sorted rows and columns using an efficient traversal. ## Likely LeetCode equivalent Similar to Search a 2D Matrix II (LC 240). ## Tags matrix, binary_search, whatnot

## Problem Find the minimum length substring of a source string that contains all characters of a target string. ## Likely LeetCode equivalent Directly matches Minimum Window Substring (LC 76). ## Tags sliding_window, strings, hash_table, whatnot

## Problem Rate-limit notification delivery, ensuring no more than N notifications are sent within a sliding time window. ## Likely LeetCode equivalent Similar to Design Hit Counter (LC 362) or sliding window rate limiter. ## Tags sliding_window, queue, whatnot, rate_limit

## Problem Count the number of islands (connected groups of 1s) in a 2D binary grid using DFS or BFS. ## Likely LeetCode equivalent Directly matches Number of Islands (LC 200). ## Tags graph, matrix, bfs, dfs, whatnot

## Problem Compute ranking scores for items or users based on weighted criteria and return the top-K ranked results. ## Likely LeetCode equivalent Similar to Top K Frequent Elements (LC 347) with custom scoring. ## Tags heap, sorting, whatnot, ranking

## Problem Compute the dot product of two sparse vectors represented as index-value pairs, efficiently skipping zeros. ## Likely LeetCode equivalent Directly matches Dot Product of Two Sparse Vectors (LC 1570). ## Tags arrays, hash_table, two_pointers, whatnot

## Problem You are given a string and a sequence of transformation rules. Each rule is one of: - `REPLACE a b` — replace all occurrences of `a` with `b` - `REVERSE` — reverse the string - `TRUNCATE n` — keep only the first `n` characters - `REPEAT n` — repeat the string `n` times - `IF len>n THEN rule` — apply `rule` only if current string length > `n` Apply the rules in order and return the final string. ```python def apply_rules(s: str, rules: list[str]) -> str: pass ``` ## Example ``` Input: s = "hello" rules = [ "REPLACE l r", "REVERSE", "IF len>4 THEN TRUNCATE 3", "REPEAT 2" ] Steps: REPLACE l->r: "herro" REVERSE: "orreh" IF len(5)>4: TRUNCATE 3 -> "orr" REPEAT 2: "orrorr" Output: "orrorr" ``` ## Follow-ups 1. How would you add nested conditionals (`IF ... THEN IF ... THEN ...`)? 2. How do you detect rule sequences that could produce exponentially long strings (REPEAT inside a loop)? 3. What parsing technique (recursive descent vs. regex) works best for this grammar?

## Problem Build a content moderation system that flags messages containing unsafe words. Blocklist entries can be: - Exact strings: `"badword"` - Wildcards: `"bad*"` (prefix match) - Phrase patterns: `"buy * now"` (any word in the middle) The filter should be case-insensitive and must not flag safe words that contain the blocked substring (e.g., blocking `"ass"` should not flag `"assistant"`). ```python class ContentFilter: def add_rule(self, pattern: str) -> None: def is_unsafe(self, text: str) -> bool: def get_violations(self, text: str) -> list[str]: # returns matched patterns ``` ## Example ``` filter = ContentFilter() filter.add_rule("spam") filter.add_rule("buy * now") filter.is_unsafe("Buy cheap products now!") -> True # matches "buy * now" filter.is_unsafe("This is spam") -> True filter.is_unsafe("I am not a spammer") -> False # word-boundary safe filter.get_violations("Buy it now or spam") -> ["buy * now", "spam"] ``` ## Follow-ups 1. How do you enforce word-boundary matching efficiently at scale? 2. How would you handle Unicode normalization and leetspeak obfuscation (`sp4m`, `s.p.a.m`)? 3. With 100K rules and 10K messages/second, how do you make this performant (Aho-Corasick, regex compilation)?

## Problem You have a table of user events: `(user_id, event_name, ts)`. A **funnel** is an ordered list of event names that a user must complete in sequence (though non-funnel events may occur in between). For each user, determine whether they completed the funnel and, if so, the time elapsed from the first to last funnel step. ```sql -- events: user_id VARCHAR, event_name VARCHAR, ts TIMESTAMP -- Example funnel: ['view_product', 'add_to_cart', 'checkout', 'purchase'] SELECT user_id, MIN(CASE WHEN event_name = 'view_product' THEN ts END) AS step1_ts, MIN(CASE WHEN event_name = 'add_to_cart' AND ts > MIN(CASE WHEN event_name = 'view_product' THEN ts END) THEN ts END) AS step2_ts -- ... continue for each step FROM events GROUP BY user_id; ``` ## Example ``` user_id | event_name | ts alice | view_product | 10:00 alice | browse | 10:05 <- not in funnel, skipped alice | add_to_cart | 10:10 alice | purchase | 10:30 <- skipped checkout; funnel incomplete bob | view_product | 09:00 bob | add_to_cart | 09:05 bob | checkout | 09:10 bob | purchase | 09:15 -> completed in 15 min ``` ## Follow-ups 1. How do you define and handle funnel re-entry (user completes the funnel twice)? 2. What query pattern works best for this in BigQuery (ARRAY_AGG + filtering vs. self-joins)? 3. How would you compute funnel conversion rates by user segment (e.g., mobile vs. desktop)?

What to Expect in the Whatnot Phone Screen Round

The Whatnot Software Engineer Phone Screen round has a specific calibration purpose distinct from other rounds in the loop. Across 13+ verified reports on LeakCode for this exact round type, the consistent expectations: clear scoping of the problem before diving into a solution, explicit reasoning about complexity, structured handling of edge cases, and the ability to discuss trade-offs between two reasonable approaches.

Reports tagged with the Phone Screen round at Whatnot show recurring patterns in difficulty and topic distribution. The Phone Screen round is typically 45-60 minutes; the interviewer is calibrated against a specific rubric. The discriminator between candidates who advance and candidates who do not is rarely the final correctness of the answer. It is the path: did you clarify, did you verbalize your approach, did you handle edge cases, and did you communicate throughout.

How To Prepare for This Specific Round

Filter the questions below to the most recent reports (past 6-12 months). Questions tagged for this exact round type from this exact company at this exact role level are the highest-signal data available. Older reports may reference questions that have since rotated out of the company's pool.

Practice 4-6 representative problems from this set under timed conditions. The goal is not memorization (companies rotate questions); the goal is to internalize the patterns the interviewer typically reaches for and the depth of follow-up to expect. Reports on LeakCode also tag the typical follow-up depth at this round type, which is the discriminating signal between hire and no-hire calibration.

Phone Screen Round Timing and Format

The Phone Screen round at Whatnot typically runs 45-60 minutes. Use the first 2-3 minutes to clarify requirements; you should never start coding or designing without verifying the input/output format, constraints, and edge cases out loud. Use the next 5-7 minutes to verbalize your approach before writing any code. The middle 20-30 minutes are implementation. Reserve the final 10 minutes for testing with concrete examples and discussing optimization or trade-offs.

Time budget discipline is one of the most reliable senior-vs-junior discriminators in this round. Strong candidates verbalize where they are in their budget out loud ("I've used about 20 minutes, I have 15 minutes left for testing and one optimization"). This signals engineering maturity to the interviewer and creates positive feedback they can capture in writing.

Common Failure Modes in This Round

Reports tagged "no hire" at Whatnot Software Engineer Phone Screen commonly cite: coding silently without verbalizing approach, jumping to implementation before clarifying requirements, missing edge cases (empty input, single element, very large input), producing working code that the candidate cannot refactor when asked, and failing to test their solution with concrete examples before declaring done.

The single most predictive failure mode in 2025-2026 reports: not asking clarifying questions. Interviewers at all FAANG companies are explicitly trained to weight this dimension. Strong candidates ask 3-5 clarifying questions even on problems that look obvious; weak candidates dive into code immediately. The clarifying-question check is often the first signal recorded in the interviewer's notes.

See All 13 Questions from This Round

Full question text, answer context, and frequency data for subscribers.

Get Access