Others have gone into detail, but I'll hit on the basics:
* Phone screen.
* 90-minute test where you have to solve three programming problems.
* Second phone screen.
* 15-80+ (!!) hour take-home project where you are supposed to create an app that has full client polish. On your own time. Unpaid.
* Third phone screen to walk you through the product.
The 90 minute test was annoying, but within reason for an interview process. I've been through eight hours of interviews on white boards in the past, so cranking through 90 minutes wasn't too bad.
The three problems to solve weren't hard to solve, but in two cases there were "tricks" that you had to come up with in the 90 minutes in order to score 100%. I came up with one just as the timer expired (too late to code!), and the other after talking the problem over with my wife (who is not even a programmer!) for five minutes. The fact that you're isolated during the test makes it unrealistic; in any real environment you'd have a chance to talk things through, and you could step away from a problem and think about it more creatively for five minutes instead of feeling pressure to work on one or another task.
I did complete all three problems and got nearly 100% on their test cases, but I missed some performance enhancements because I didn't think of the tricks to reducing them to O(n) while on the test. And I passed, so I can't complain too much about this phase.
The shocker was the next part: A "full project" that was supposed to be submitted as if to a client. I understand why they WANT this, but my time is valuable, even if I'm between projects, and I have a hard time feeling like they respect my time if they're going to ask this of me. But I decided to make a learning experience out of it and produce a product in an environment that I wasn't familiar with, so that I could at least be learning something and not entirely wasting my time to prove to them that after 30 years of development experience, I can actually code.
I actually assumed they wanted people to create a demo, like an MVP, to show to a client, not a complete product ready to be released, because OF COURSE that takes a lot of time, and OF COURSE that's way too much to ask of an applicant. But what they wanted was a full product, as if I were being paid for it. The reviewer told me that the person he'd just interviewed and put in 80 hours (and you're limited to 2 calendar weeks, so he was working at least full time for two weeks) to ensure that it had as much polish as possible. They also cared more about the form of the REST API than the actual product I'd created, and cared not the slightest that I'd created it in a far more reasonable ~15 hours on a platform I'd never used before. No, they have their process, and you apparently need to waste two weeks of your time in order to pay your dues to qualify as a Toptal developer. They don't get the top 3%, they get the top 3% of desperate developers.
It may be great for someone less experienced. For a full 80 hours I would typically bill $12-20k, though, and it doesn't sound like Toptal's top wages come close to that, so no, I'm not going to invest yet more hours to try to prove to them that I can in fact create polished end products for insufficient pay. Was only interviewing because of a short project drought, but I can pick up a non-remote job that pays better than Toptal's top wages if I get desperate, so I'd rather not waste more time on them.
Writing this made me feel a bit better, though. ;) And I did learn that I should spend more time asking what the REAL expected requirements are; I could have saved a LOT of time if I'd just asked how much work they really wanted me to put in, and I could have just said no from the start.