The first round was a pleasant talk with HR. HR asked several basic technical questions, and a coding interview session was arranged.
During the coding interview, the task was a bit confusing for me. However, the interviewer was very friendly, and with follow-up questions, I implemented some simple functionality. The task was not difficult, but it required focus on TDD and test coverage for all edge cases. I made several minor mistakes because I was nervous, but the interviewer was understanding, and after he pointed them out, I was able to fix them quickly.
The next round was a technical interview. I had to implement a task related to concurrency. Eighty percent of the following questions pertained to this task, and we discussed possible solutions using locking mechanisms in Java and on a database level, including transaction isolation.
Other questions related to microservice architecture.
There were two interviewers, both very professional and easy-going.
As a result, I received a rejection because other candidates aligned better for the job position.
I believe this was a fair decision, as I struggled to answer some questions during the technical interview.
Write some concurrent code. How could we implement this using Java concurrency mechanisms?
Using database locking mechanisms?
What if we change transaction isolation level?
What are the benefits and the downsides of each approach?
The following metrics were computed from 3 interview experiences for the Revolut Senior Java Developer role in Russia.
Revolut's interview process for their Senior Java Developer roles in Russia is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Revolut's Senior Java Developer interview process in Russia.