Did the Slack MLE loop earlier this year. The role was on the search and discovery team, so there was a heavy recommendation systems angle. If you're coming from a pure modeling background without recsys experience, you'll want to brush up.
First, the structure. Five rounds total plus a recruiter screen:
Recruiter + HM screen. Normal stuff. The HM asked me specifically about any experience with ranking models and implicit feedback data. If you have this, lead with it early.
Coding round 1 (general SWE). This surprised me. Standard LC medium, nothing ML-specific. Graphs problem, BFS/DFS territory. I think they do this to confirm MLE candidates can actually write clean code. A lot of ML candidates have rusty CS fundamentals. Don't skip this.
Coding round 2 (ML-specific). Python, numpy, implementing things from scratch. I had to implement a cosine similarity function and then optimize it for a batch of vectors. Then they asked me to write a simple gradient descent update step. The bar here felt like: can you connect the math to actual code, or do you just call sklearn?
ML design round. The main event. The prompt: design a search ranking model for Slack's search feature. This is open-ended on purpose. I structured it as: problem framing, data sources and signals, feature engineering, model choice, training setup, serving/latency constraints, metrics and evaluation, A/B testing plan. I talked about transformer-based semantic search, BM25 as a baseline, learning-to-rank (LTR) with LambdaMART as a middle path. They asked hard questions about cold start (what happens for a brand new workspace with no usage data) and feedback loops (how do you avoid reinforcing bad results). Spend real time on this round if you can.
Behavioral round. One from the bar raiser program. Asked about a time I shipped something that failed in production, how I dealt with ambiguity on a past project, and one values question about working in a mission-driven environment. They care about communication here, not just technical chops.
The loop felt well-designed for an MLE role. It wasn't just a SWE interview with 'also you like ML right?' stapled on.
Timeline: recruiter screen to offer was 4.5 weeks. Debrief took longer than expected, about a week and a half. I was told this was normal for ML roles because the hiring committee is larger.
Comp for a senior MLE (L5 equivalent): base in the 200-220 range, RSUs on top. I'm SF-based so YMMV. Did not get counter data from other offers so I can't say how much room there was.