The process started with an initial phone call with a recruiter. Afterwards, I had a semi-technical discussion with an engineering manager. It went well and they moved me forward to a live coding session. Did well in that, and was moved onto a second live coding session, which was followed by the 3rd and last live coding session. Somewhere in between the 3rd and 4th interview, the recruiter called me to discuss salary expectations and the onsite interview.
I passed all 3 coding sessions, and I finished the last one in half the time. The interviewer had to give me another question to fill the time. At the end, he said I did a great job. I felt good about it, and after spending almost a month interviewing with them, I was pretty sure that they'd move me forward to an onsite interview.
Nope.
I emailed the recruiter the day after my 3rd live coding interview for a status update, and didn't hear back for several days. The team decided that my background wasn't a "right fit" for the position. So my background that they knew ahead of time, and also the live coding sessions and discussions that I did well on wasn't good enough.
Overall, pretty terrible and time consuming interview process. I wasted so much time and prioritized them over other companies because I thought I was a good fit. If my background wasn't a good fit, they should have never wasted my time (and theirs) and never interviewed me to begin with, or kept moving me forward through all rounds but the in-person (it seemed like some kind of money saving measure?)
Obviously “not a good fit” is their standard rejection response. Still, it was pretty disrespectful to dismiss me with a single short email after I spent to much time interviewing, with no further feedback.