Received cold-call email from their internal recruiter.
Initial phone conversation with said recruiter, where he gave a surface-level description of the position.
One week later, I had a semi-technical phone screen with a couple of potential team members, where I was asked about my past experiences, was asked a few basic questions on domain knowledge (JavaScript, Angular 2+, Node), and was given a more detailed explanation of the job duties.
One week after that, I had a about a two-hour onsite interview with the same team members that interviewed me over the phone. On top of additional domain knowledge questions (JS, Angular, Node, SQL), I was also asked to go to a line-by-line walkthrough of some code for their product. Also had a brief interview with members of the data science team.
At the end of the onsite interview, the recruiter told me that they are interviewing other candidates for the same position and that I should expect an answer by next week. I ended up waiting about four weeks. The recruiter was courteous enough to give me weekly updates, at least.
After that fourth week, the recruiter finally called me and basically said that I was chosen above all the other candidates for the position, and we discussed salary numbers. However, he said I that I to go back onsite for a final behavioral interview a week later.
The behavioral interview lasted about 45 minutes, and I gave honest, no BS answers to a panel of about six people. Apparently, it was not good enough, because a week later, the recruiter gave me the email of the company not moving forward with my candidacy.
To conclude, the technical interviews were fine -- not difficult as long as you have domain knowledge of the aforementioned technologies -- but the lying about the waiting time for interviewing other candidates and the virtual rescinding of the offer was as much of a waste of my time as it was of theirs.