I applied to a position they had announced online.
Phone interview with HR, followed by on-site with HR and a team lead. They gave a very good impression of the company and how they work. Impressive offices!
Then a (very simple and quick) take-home programming task. After that, a second, slightly more advanced programming test on-site, supervised by a developer. This was performed on a company laptop with a full-screen IDE and no documentation available. Had I known that was the format of it, I would probably have been more mentally prepared for it. As it was, I kind of blanked for the entire first half of the test. After that, another on-site checkin with HR, references, etc. I also got to know that despite blanking completely on the last test, apparently my solutions were on par with those of other developers there.
A week later they phoned me to tell me I didn't have the experience they looked for. This came as a surprise, and I wish they had been more upfront about their hesitation before I committed to all those on-sites. About a week passed between each on-site.