Just finished (and got an offer from) the Hugging Face ML Engineer loop. Writing this up while it's fresh.
Five stages total for me: Recruiter call, 30 min. Standard. They asked about open-source work early and specifically asked which HF repos I'd used in production. Hiring manager intro, 45 min. More technical than I expected. We ended up deep in a conversation about fine-tuning trade-offs and I had to defend some choices I'd made in a past project. Take-home assessment, 72 hours. They give you a dataset and a vague problem statement. The vagueness is intentional. They want to see how you scope it, not just whether you can run a training loop. My submission was about 2,000 words of write-up plus a notebook. I spent maybe 12 hours on it. Technical deep-dive on the take-home, 60 min. Two reviewers. They pushed hard on every assumption I made. Not adversarial, but genuinely curious. One asked me to redesign part of my approach live. Values/team fit, 45 min. Open-ended conversation about working async, disagreeing with collaborators, past open-source involvement.
The take-home is the real filter. Most people I talked to who got rejected said they got feedback that the scoping wasn't clear enough. Spend as much time on the write-up as the code. They read it.