Level: Senior-Level
Round: Full Journey · Type: Multiple Types · Difficulty: 6/10 · Duration: 240 min · Interviewer: Unfriendly
Topics: Probability, String Manipulation, Algorithms, AI-Enabled Coding, Behavioral Questions, Machine Learning System Design, Recommendation Systems, Feature Engineering, Exploration Strategies, Cold Start, Position Bias, Training/Serving Skew, Feedback Loops
Location: San Francisco Bay Area
Interview date: 2025-12-23
I interviewed for a Machine Learning Engineer role. I received an E5 offer and proceeded to team matching.
Phone Screen:
I had a 45-minute phone screen with two LeetCode medium questions:
The interviewer passed me despite my perceived poor performance. It was likely due to my correct approach, clear communication, and willingness to accept hints.
Virtual Onsite:
The virtual onsite consisted of four rounds over three days.
Round 1: Coding (45 minutes)
Two questions:
I solved both questions quickly, as I had practiced them extensively. This round was straightforward.
Round 2: AI-Enabled Coding (60 minutes)
This round used Meta's new AI-assisted format.
Question: Maze Solver
Four progressive problems:
I had specifically prepared for maze problems beforehand, which helped me complete the later parts smoothly. Most candidates only finished 2-3 parts, while completing all four was considered a top performance.
Round 3: Behavioral (45 minutes)
I used the STAR method to answer several behavioral questions. I rated my performance as 7/10. The content of my stories was good, but the delivery could have been more concise.
Round 4: ML Architecture & Design (45 minutes)
Question: Short video recommendation system (similar to TikTok/Reels)
My solution:
Follow-up questions covered: position bias (using inverse propensity weighting), training/serving skew, and feedback loop issues.
Overall, I felt my performance was strong E5, borderline E6.
LeetCode similar: LeetCode 528, LeetCode 1249, LeetCode 680, LeetCode 215