Here's a breakdown of the interview process:
I had a positive experience with the Recruiter and the pair programming session with a Senior Engineer, receiving rather good feedback. However, the final interview with four Senior Engineers was challenging.
The feedback from the recruiter was somewhat frustrating. He mentioned a couple of errors I made during the interview, which I agreed with. However, he then stated I didn't answer some questions, while I distinctly remember answering them. This was quite infuriating, but ultimately, it is what it is.
In the Systems Design interview, the situation was even less clear. While they didn't provide definitive correct/incorrect answers, they indicated I wasn't able to provide enough justification for my solutions. Yet, during the interview, when I asked if my approach was reasonable, they responded positively, saying, "yes, good." I consistently sought confirmation if my solutions were what they were looking for.
I suspect if I had elaborated further on my solutions, they might have criticized me for being too detailed.
Based on my 15 years of experience, the team appears to be rather average in terms of both confidence and quality of excellence.
For potential candidates, I would suggest securing a good referral if you're keen on joining this team. Even if you're sufficiently skilled, they might not connect with you and may note in your feedback that you failed to answer questions you actually answered correctly.
Bottom Line:
The interview itself is not difficult, but the interviewers are highly subjective. They might treat you as if you don't know fundamental concepts like encapsulation, even if you have decades of experience and a solid computer science educational background. Therefore, be prepared to project confidence. If you appear hesitant, they may claim you answered questions incorrectly, even if you provided accurate responses.
Their attitude seems to be, "We know better, but we won't tell you what's wrong; you're just wrong."
I believe the truth lies somewhere in the middle, especially considering they likely hire around 40 new people per month. The engineers may simply be fatigued by the interview process.
Personally, I've decided not to apply again. It feels like it's now a matter of luck, heavily dependent on whether it's a "good day" for the interviewers.
What is CQRS?
What is the difference between procedural and object-oriented approaches?
Why do we need encapsulation in OOP systems?
Java concurrency mechanisms for moving money between accounts in memory, and using a DBMS.
Design an ATM system that would notify the bank when the ATM is low on money.
How to lock an object with ORM in Java? How does it work under the hood?
The following metrics were computed from 2 interview experiences for the Revolut Senior Software Developer role in Russia.
Revolut's interview process for their Senior Software Developer roles in Russia is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having mixed feelings for Revolut's Senior Software Developer interview process in Russia.