The process I went through had 5 steps and took about a month:
1- Applied through their website a few questions that allowed me to go into greater detail than a regular cover letter (tell me about a time when... type of questions)
2- Had a 1 hour phone interview with the recruiter + a senior developer where I briefly talked about myself and my recent experience. They send you a post explaining exactly what they will want to talk about a few days before the interview.
3- Take home test where I had to integrate an API with software that the job posting was talking about. They allow you to change the industry/company focus of your test since they are not soliciting free work.
4- A 2-hour topgrading interview with the recruiter + a senior dev + a director that I found to be pretty intense as an introvert. We went into detail about my work experience and the people I worked with. Each time mentioning specific examples of challenges that I faced and how I overcame them. They also provided me with useful feedback about my test.
5- A pretty intense round of reference checks where they talked for ~15-20mins to each reference. I was told they ask about how it is working with me + strengths and weaknesses.
In the end I was offered a job at a lower level from what I applied but with a higher salary, which I understood after meeting my team and seeing how knowledgeable everyone was.
Overall I would not qualify this as a "difficult" experience but one that takes a big time commitment.