I applied through a recruiter. The process took 1 week. I interviewed at Revolut (London, England) in Jul 2020
Interview
Convinient and interested HR with basic Java questions, simple but complex task on live code session. But strange system of taking a decision after that: done 2 of 3 task, discussed all solution features, but it wasn't enough time to complete the last one. Interviewer told that it is good result, but after 3 days HR wrote me that I wouldn't have the next step, sorry :)
A lot of stages including live coding tasks, common engineering problems discussion and system design task.
After the passing technical stages there were 3 culture fit interviews with different teams.
Interview questions [1]
Question 1
Build a top-level design for a system responsible of temporary debit card issuance.
Smooth polished process. Average tech level of interviewers. Narrow minded persons. Probably their managers asked them not to think. Process is good. Culture is poor, if you are not following their way, you would be declined.
I applied through a recruiter. I interviewed at Revolut (Madrid) in Oct 2025
Interview
The overall interview process was well-structured and professional, consisting of four stages over about three weeks. Each stage had a short preparation call with a recruiter which I found very helpful. Communication was timely and polite throughout.
1. Initial Call:
A short introductory call with the recruiter to discuss background, motivations, and basic role details. Discussed CQRS, Event-Sourcing, DDD in high level terms.
2. Stage 1 – Technical (Load Balancer Design):
Implement load balancer with Random/Round Robin algorithms in TDD style. Covered concurrency handling, locking mechanisms, and TDD approach. Focus was on covering all scenarios with tests and SOLID.
3. Stage 2 – Coding + Database (Account Skeleton & Postgres):
Involved implementing an thread safe account service given a skeleton and answering a lot of detailed questions about Postgres — isolation levels, indexes (BTree vs BRIN), transactions, and performance optimizations. Replication, sharding and partitioning. DDD, CQRS, Event Sourcing was covered again
4. Stage 3 – System Design (Apartment Booking System):
Full system design round: designing an appartment booking platform with a 3rd party API that may be unreliable. Expected to discuss service decomposition, consistency, and avoiding double-bookings through idempotancy. TCC, SAGA patterns mentioned, transaction outbox was asked.
5. Stage 4 – Behavioral:
Final round covering previous projects, decision-making, and collaboration style. Asked to describe in dept best project delivered end to end.
The process was thorough and technically challengin, but there was a lack of transparency around the internal leveling system. Despite being evaluated at a senior level throughout, the final offer corresponded to a mid-level grade, which led to a significant compensation mismatch.
Also worth a mention that even though there was very good feedback after each step during the end offer discussion there was suddenly bad feedback for each stage some of which I personally find absurd (no mention of VPN during System Design even though there was mention of OAuth2 protocol). Even if unintentional I feel as if this a "bait and switch" scenario. Further for such a challenging technical interview I feel that the compensation was not adequate.
Interview questions [4]
Question 1
1. implement LoadBalancer using TDD style with Random/RoundRobin strategies