This was via a recruiter who contacted via email and talked over the phone a few times that took more than an hour discussion overall (I think for getting better understanding about the opportunity and myself).
Then had a phone interview twice, one with HR manager and once a tech manager, both of which was just checking experience and they explained what they do (which I appreciated a lot since it wasn't on their website nor anywhere online).
Then on-sight interview with 5 or 6 persons including 2 engineering managers and a CTO. 1 coding challenge (C++ AND Python). The same tech manager gave me a short tour in their facility, which was helpful again and impressive. The whole process took 5 hours.