The process included:
- initial stage with recruiter with following short call to discuss preparation for the live coding stage
- live coding stage
- system design (I did not get here)
- final interview.
I was impressed by the communication as it was very respectful and friendly. Both recruiter and interviewer were extremely polite. The scheduling of interview was also very comfortable and the recruitment team was helpful when I needed to reschedule the interview because of my private issues.
The recruiter helped me a lot to prepare for live coding and I felt quite confident during the interview. The interviewer helped me understand what was expected from me during every step.
Overall impression is very good, however, it seems that Revolut needs you to have quite a specific set of skills and cover specific topics like transaction isolation levels, pessimistic and optimistic locks, concurrency. It makes the interview peedictable and easy to prepare but makes your lack of knowledge of these topics a single point of failure. Also they need you to stick to specific approaches like DDD and if you don't it plays against you.