The entire interview process takes about 3 weeks. First step is a screening interview with the recruiter, who will dive a little deeper than screening interviews normally do, with a real interest in past experience, technical knowledge, etc. The second step is a live code interview, where (in my case) I was asked to implement an algorithm that was supposed to split an undefined number of strings into all possible combinations of sequential characters and then test each combination in an API to check which one should be replaced by some other string. The overall code was tested, discussed and optimised live. It took about 1 hour, and you can choose in which language you want to implement it, depending on the position you are applying for. The next interview is about system design/architecture. They presented me with a real problem that the company has faced in the past, and we had a live discussion on how we could architect a solution for this and how it might affect other aspects of the application all the way up to team topology, QA, CI/CD, etc. The next step is a team fit interview. This was a bit similar to other team fit interviews I've seen in the past, but they managed to adapt the questions as we went along and I got a really good impression of the team. The final step is a 1on1 chat with a head of engineering. You will discuss your general views on ways of working, architecture, technologies, structures, teams, etc. The tone is more relaxed and it's a good opportunity to learn more about what the company expects of you. Then, if everything went well, you will receive an offer and you will have a last meeting to go over it, discuss, negotiate, etc. HR was very helpful in clarifying doubts and open to negotiate benefits and compensation, which is rare.