The entire process took around 3 weeks, and consisted of:
1. A few programming tests (a general one and one in my choice of language) to be solved without a time restriction. Unlike the Hackerrank tests I've done in the past, the focus was not just on getting the right answer out, but on the logic and fundamenals of programming. I spent an equal time writing functions and explaining my reasoning and understanding of time-complexity etc.
2. A non-technical Skype interview with someone who explained the history of the company, what their product is, what the role would be etc. I had the opportunity to share more information about myself and explain why I was interested in the role.
3. Face-to-face interviews at the office. Each interview was about an hour long.
i) The first interview was non-technical and focused on the specifics of the role and whether I would be a good fit for the company.
ii) I then had several programming interviews (essentially one with someone from every team). The interviewer would give me a small problem, ask me to walk them through how I would go about solving it, and then gradually make the problem more and more complex. On the whiteboard, I would write out the logic in pseudocode, talk through the pros and cons of my algorithm, and then finally write the functions to solve the whole problem. I appreciated that there was less focus on syntax and more on logic. When I would get stuck, the interviewer would discuss the problem with me and help me see it from a different angle. I definitely felt like they were trying to see how much I knew, rather than catch me out on things I didn't know.
iii) I also had a few machine learning / computer vision interviews where I was given a problem and asked what algorithm I would use to solve it, how the algorithm worked etc. I also had the chance to discuss the ML projects I had been working on at uni.
iv) I also had lunch with the team. They were very friendly and welcoming.
4. One final technical Skype interview with a developer.
Although the interviews were quite challenging, the impression I got was they wanted to be sure that you were the right fit for the company, and that the company was the right fit for you. I accepted my offer and have been working there for a month now, and am very happy with my new role!