The process went quite smoothly, and although it did take a while, this was fine for my situation. I applied for an entry level position as a new grad.
Here's my timeline:
1. Initial application - I sent in a cold application with a cover letter
2. 9 days later, first response from recruiter to schedule a 30 minute call about what I'm looking for, background, and answer any of my questions
3. After the interview, I received a link for an online coding challenge, which involved getting some data from an API, and then using the data to send a response. There were 3 hours allotted for the challenge, but I was able to finish in 1.5. It was a pretty fun and interesting challenge as far as coding screens go. I wasn't able to take the challenge for about two weeks after receiving the link, but they told me from the beginning that was fine and to be expected.
4. 5 days after completing the challenge, I received another email from another recruiter to set up a technical video interview with an engineer. If you're not interviewing remotely, this might go a little differently - you might just go onsite and do this interview in person. It was a pleasant, standard interview, the questions were straightforward (think leetcode page 1 algorithms problems). A few questions about background, past projects. Just be thorough, make sure you're comfortable with time complexity analysis and able to critique your own code and take suggestions/criticism.
5. The day after the interview, I got an email from my original recruiter to set up a call, where I was invited for an onsite. I was able to pick two days which worked for me, and they got back to me the next day to confirm with a schedule. There was no time pressure as to when I needed to schedule this, which was nice since I'm still in classes and busy most of the time.
6. Onsite, which involved a quick meeting/tour with the recruiter, who then sat me down in a small conference room where I had two consecutive technical interviews. The first was on systems design, the second on building an SQL query for a relatively complicated operation. It's worth mentioning that I had zero practical SQL experience before this. All I knew was from researching online, because I knew they'd ask about it. This wasn't a problem at all - they really just want to see you working through problems. Specific syntax issues don't matter much. For one part of the query, I just wrote pseudocode. The technical part of this interview only took about 35 minutes, the rest was talking about my past projects, etc. After the interviews, I had another quick meeting with a recruiter to handle any stray questions and get my impressions. In all, the entire thing only took 2.5 hours.
7. The next day, I received a call where I learned they wanted to move forward.
8. After the weekend, a quick call where I was asked what my target salary was.
9. The next day, I received a verbal offer 15% HIGHER than what I'd asked for, which I accepted. I was super impressed by this. I had basically told them an amount where if they offered it to me, I'd accept, and the recruiter actively advocated for me and got me a higher salary.