Level: Mid-Level
Round: Onsite · Type: Multiple Types · Difficulty: 6/10 · Duration: 240 min · Interviewer: Unfriendly
Topics: Machine Learning System Design, Behavioral Questions, Permutations, Sorting, AI, Dynamic Programming
Location: San Francisco Bay Area
Interview date: 2026-01-15
Interview Rounds Overview
I'm sharing my onsite interview experience.
ML System Design: I received a common question: nearby location recommendation for potentially moving mobile phone users. Another question I hadn't seen before was notification recommendation ranking. These notifications come from various products such as new products, friends' new updates, and advertiser-generated ads.
Behavioral (BQ): I was asked to talk about my most proud project. Then, a series of questions followed, such as challenges, how I handled being pushed back, and dealing with people who are hard to work with. I was also asked about past failures, constructive feedback I received, and my future plans to improve myself.
Coding: The first coding question was: Given a sequence of numbers, find the second-largest permutation that can be formed. For example, [1, 2, 3, 4, 5] -> 54312, [1, 1, 5] -> 151 The second question was: Given m increasing sequences, output the first K numbers in ascending order.
AI Enabled Coding: Find the subset of words with the maximum unique characters without duplicates. I think this question is tricky because "sonnet" and "opus" cannot provide the optimal solution to handle the third and fourth test cases. The third test case has several thousand words, and the fourth has over ten thousand words. Meta always says they don't test dynamic programming, but I think I still need to review it. Otherwise, if the agent is too naive and I can't provide a dynamic programming approach, I'll fail.