Steps:
Call with an external recruiter
Call with their recruiter
Online assignment (an algorithmic task, one frontend task and one backend task)
Hiring manager interview (basically some system design talk)
Live coding (a backend or frontend task)
System design interview (they send a PDF with two tasks to handle).
The interview is lengthy and consists of many steps that are repetitive and feel redundant (e.g. two recruiter calls; online assignment and live coding both an API endpoint development task and hiring manager interview and system design both focused on system design).
Before live coding interview, they ask whether you prefer to take a frontend or backend task. I chose the backend one and they sent a code template for it. When I joined the interview, it appeared that interviewers did not expect the backend task and were not prepared. Their template also had issues with build, which wasted interview time on fixing them.
On the system design interview, the interviewer did not communicate clear enough. The interview feedback felt generic and inadequate. Overall feeling that they might make a rejection decision at earlier stage of the interviews, made me go through the whole process "just in case" and used this interview as a rejection reason with a feedback that is not transparent to see what in fact was wrong.