I did HF's final round for two different roles about 8 months apart. The process shifted a bit between the two. Writing this up as a comparison because the internet info is mostly from 2023 and things have changed.
First loop (ML engineering role, early 2025): Four sessions in one day, all Zoom. Coding, system design, ML depth, behavioral. The ML depth round had me walk through model evaluation approaches and explain a paper I'd read recently. The system design was inference-focused.
Second loop (more applied ML / platform-adjacent, early 2026): Split across two days, three sessions total. They moved the behavioral to be first on day 1, then coding + system design on day 2. Said they changed it so candidates could "warm up" with conversation before the technical rounds. Honestly it helped.
What changed and what stayed the same: The behavioral got more structured between loops. First time it felt very freeform. Second time they had a clear rubric they were working from, I could tell by the follow-up questions. That's not a complaint, just an observation.
The ML depth component both times leaned heavily on practical knowledge. Not "explain backpropagation" but "what went wrong in a model training run you debugged" or "how did you evaluate this tradeoff in production."
Debrief timing: First loop: offer in 6 business days. Second loop: 4 business days. Both faster than any FAANG loop I've done.
What actually mattered: Being concrete. HF interviewer feedback after my first failed loop (I asked for it) was that my answers were solid but too theoretical. They wanted to hear about real systems I'd built and broken, not how I'd approach a hypothetical. Took that seriously the second time.
The onsite vibe is low-ego compared to bigger shops. No one tried to trick me or ask deliberately obscure questions. The hard parts were hard because the problems were genuinely complex, not because they were designed to be confusing.