The interview process consists of several stages,
- screening interview with recruiter, with some basic technical questions
- live coding interview, solve a simple problem using best practices, focused on overall code quality and test coverage
- technical conversation, brief live coding and then technical discussion, focused on concurrency and databases
- system design interview, designing a system related to Revolut's domain
Overall, the interviews were challenging but also very interesting. The interviewers were all very professional and polite, asking challenging but fair questions.
The process is time consuming and involves adequate preparation, but it's also a good opportunity to learn and engage with very talented engineers.