Revolut logo
RevolutBackend Engineer
Updated Research-backed

Revolut Backend Engineer interview questions & guide 2026

Every question Revolut interviewers actually ask, the frameworks that win the room, and the language hiring managers respond to.

4 rounds · ≈ 3-5 weeks
1
Automated Coding Assessment
2
Coding Tasks Interview
3
Architectural Discussions
4
Team-Fit Assessments

What is a Backend Engineer at Revolut?

Backend Engineers at Revolut build and scale the financial engine driving a global super-app used by tens of millions of customers. The architecture processes millions of transactions daily across payments, multi-currency accounts, crypto, trading, credit, and fraud prevention. In this role, your code directly influences high-throughput, low-latency financial infrastructure where data integrity, system availability, and transaction correctness are non-negotiable.

Engineering at Revolut is defined by extreme scale and operational independence. Operating primarily on Java 21, PostgreSQL (via jOOQ), Redis, Kubernetes, Docker, and GCP, backend teams build resilience through microservice architectures applying Clean Architecture, Domain-Driven Design (DDD), and CQRS patterns. Instead of relying heavily on heavy monolithic frameworks like Spring, backend engineers at Revolut are expected to write production-grade, highly optimized, and thread-safe idiomatic Java with zero reliance on framework magic.

You will be responsible for building systems that cannot fail—implementing transactional integrity across microservices, handling high concurrency in distributed account balances, and ensuring zero-downtime deployments. If you thrive in a fast-paced environment where product features transition rapidly from design to global deployment, Revolut offers an environment with immense strategic reach and high technical density.

Common Interview Questions

Interview questions at Revolut focus on practical domain implementation, strict understanding of core language fundamentals, distributed system mechanics, and data persistency layer internals. Rather than abstract algorithmic puzzles, expect production-focused scenarios that evaluate concurrency, database isolation, object-oriented design, and system architecture.

`

03 · Question bank

The questions most likely to come up

Sorted by relevance to this company
Load Balancer for Ten ServersMedium
Route requests across 10 servers with round-robin scheduling while skipping unhealthy servers.
ArraysAlgorithmsedge cases
Database Consistency Under ConcurrencyMedium
Audit account balances against posted ledger entries using aggregation and NULL-safe balance calculations.
deadlocksacid propertiesdata integrity
Recently asked
Access the full Revolut Backend Engineer prep plan
Everything you need to walk in ready.
Get my prep plan

`

Object-Oriented Design & Live Coding

Evaluates your ability to write clean, maintainable, extensible, and fully tested production-ready code in your local IDE using Test-Driven Development (TDD) and SOLID design principles.

  • Implement a thread-safe Load Balancer that registers up to 10 unique backend instances with routing strategies and comprehensive unit test coverage.
  • Write an end-to-end URL Shortener service focusing on object-oriented domain boundaries, persistence abstractions, and thread-safety.
  • Design a complete domain model and implementation for a Parking Lot system using Clean Architecture principles.
  • Code an in-memory Frequency Counter service under strict time constraints, ensuring optimal space and time complexity.

Concurrency, Multithreading & Core Java

Tests your knowledge of the Java Memory Model, thread synchronization, lock contention, and race condition prevention under heavy parallel execution.

  • Implement a money transaction transfer function between two accounts that remains safe against race conditions and thread deadlocks.
  • Compare the execution characteristics, memory overhead, and trade-offs of using synchronized blocks versus explicit ReentrantLock instances.
  • Explain the behavior and guarantees provided by volatile, atomic variables (AtomicInteger), and thread-safe collections in Java.
  • Describe Garbage Collection mechanics in modern Java: What constitutes a GC root, and how do allocation rates impact latency?

Databases, Transactions & Persistence

Focuses on database engine internals, transaction guarantees, locking strategies, and relational schema optimization.

  • Explain all four ANSI SQL isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable) and how PostgreSQL handles concurrency using MVCC.
  • Analyze the trade-offs between pessimistic locking (SELECT ... FOR UPDATE) and optimistic locking (@Version pattern) in high-throughput financial transactions.
  • How do database indexes (B-Trees vs Hash indexes) accelerate lookups, and what are the performance impacts on write operations?
  • How would you diagnose slow queries in production, configure the slow query log, and optimize execution plans for a database scaling beyond 100 million users?

Distributed Systems & System Design

Evaluates your capacity to design high-availability, fault-tolerant financial systems with clear domain boundaries, logging, monitoring, and async messaging.

  • Design a card issuance and tracking system for a mobile banking platform, covering state machines, event-driven integrations, and delivery tracking.
  • How would you architect a fault-tolerant RESTful Money Transfer API enforcing idempotency, event consistency, and auditable transaction logging?
  • Explain how CQRS (Command Query Responsibility Segregation) and event sourcing can be leveraged in high-scale ledger architecture.

Getting Ready for Your Interviews

Preparing for an engineering interview at Revolut requires demonstrating senior-level execution speed, deep fundamental engineering knowledge, and an uncompromising stance on code quality.

Role-Related Domain Knowledge – You must demonstrate mastery over Java 21 core runtime fundamentals, clean concurrency, memory semantics, and relational database mechanics. Revolut frequently evaluates your ability to write production-ready code without heavy magic frameworks like Spring, meaning you must deeply understand underlying HTTP abstractions, manual dependency injection, and direct SQL/database interactions via modern toolsets like jOOQ.

Architectural Integrity & Problem Solving – You are expected to design system components that gracefully handle concurrency, race conditions, edge-case network partitions, and cascading infrastructure failures. Interviewers evaluate how rigorously you decompose ambiguous domain constraints into modular domain models while evaluating trade-offs explicitly.

Production Quality & Rigor – Revolut sets an exceptionally high bar for unit testing, TDD, clean OOP structures, and failure handling. Submitting code without proper assertions, clear separation of concerns, or defensive edge-case checking is one of the most common reasons candidates are rejected.

Culture & High Performance – The culture demands speed, autonomy, extreme ownership, and clear technical communication. You must articulate your technical choices clearly, defend architectural trade-offs using data and concrete technical principles, and show a focus on customer outcomes and system reliability.

Interview Process Overview

The backend engineering selection process at Revolut is fast-paced, highly rigorous, and heavily weighted toward practical live coding and technical fundamentals. The loop is designed to simulate actual on-the-job execution: writing production-grade code in your native environment, solving real system concurrency bottlenecks, and designing mission-critical distributed services.

The hiring workflow transitions rapidly from initial screening into live domain engineering challenges. Throughout every technical interaction, interviewers look for candidates who can produce clean, extensible code backed by unit tests without relying on external frameworks to solve structural or concurrency problems for them.

06 · The loop

The interview process, end to end

≈ 3-5 weeks · 4 rounds
1
Automated Coding Assessment

Initial assessment to filter candidates based on baseline technical proficiency.

2
Coding Tasks Interview

Interviews focusing on specific coding tasks to evaluate technical skills.

3
Architectural Discussions

Broader discussions about system architecture and design principles.

4
Team-Fit Assessments

Interviews to assess cultural fit and collaboration with the team.

The timeline above reflects the standard progression for backend engineering roles. Live coding and technical discussion rounds move fast; interviewers often challenge your design assumptions live, so staying composed and driving towards functional, tested code is critical.

Deep Dive into Evaluation Areas

Live Coding & Software Craftsmanship

This phase tests your execution speed, test-driven design discipline, and code quality. You will be assigned a domain problem—such as building a load balancer or a URL shortener—and given roughly 45 minutes to implement a complete solution.

Be ready to go over:

  • Object-Oriented Design & Clean Architecture – Decoupling domain logic from persistence or network layers using interfaces, strict encapsulation, and clean boundaries.
  • Test-Driven Development (TDD) – Writing descriptive, comprehensive JUnit/AssertJ tests covering main flows, dynamic limits, boundary scenarios, and concurrent executions.

Access the full Revolut Backend Engineer prep plan

  • Every Backend Engineer question, updated weekly
  • Model answers with full code walkthroughs
  • Recent, real interview reports
Get my prep plan
08 · Topic breakdown

What they actually test for

Topic distribution
All topics
JavaSQLConcurrencySystem DesignLoad balancer design

Key Responsibilities

Backend Engineers at Revolut spend their time designing, shipping, and running critical infrastructure components across the business's product line.

You will design and build highly available, scalable, and secure RESTful APIs and microservices running on GCP and Kubernetes. You will write performant, clean Java logic utilizing jOOQ for database persistence, ensuring high execution performance with minimal latency overhead.

Collaboration across multi-disciplinary teams is essential. You will work side-by-side with Product Owners, Operations, Frontend/Mobile Engineers, and Reliability Engineers to launch financial products globally. Engineers own their services from inception to production deployment, including writing telemetry integrations, continuous integration pipelines, and handling operational monitoring.

You will refactor legacy pathways, optimize sluggish database queries, eliminate lock contention bottlenecks, and ensure systems adhere strictly to local financial regulations, risk frameworks, and security standards.

Role Requirements & Qualifications

Candidates must demonstrate strong foundational engineering depth, clear analytical thinking, and effective live execution.

Technical Qualifications

  • Language Mastery: Exceptional knowledge of core Java (Java 17/21), including collection internals, multithreading semantics, java.util.concurrent, and memory management.
  • Database Engineering: Strong proficiency in relational databases (PostgreSQL preferred), raw SQL execution, index optimizations, isolation levels, and transactional locking mechanics.
  • Persistence Frameworks: Hands-on experience with modern persistence abstractions like jOOQ or direct JDBC/SQL mapping over heavy ORM frameworks like Hibernate.
  • Testing Mastery: Passion for code reliability, demonstrated through extensive experience with unit testing libraries (JUnit 5, AssertJ, Mockito) and Test-Driven Development (TDD).
  • Distributed Architecture: Demonstrated experience designing RESTful APIs, event-driven pipelines, and distributed microservices deployed via Docker and Kubernetes.

Soft Skills & Operational Fit

  • High Autonomy: Ability to drive ambitious technical projects independently with minimal direct management supervision.
  • Direct & Technical Communication: Capacity to explain architecture trade-offs succinctly and take feedback constructively during peer code reviews.
  • Pragmatic Problem Solving: Focus on practical engineering solutions over speculative over-engineering.
Must-Have vs. Nice-to-Have Skills

+-------------------------------------+-------------------------------------+
| MUST-HAVE                           | NICE-TO-HAVE                        |
+-------------------------------------+-------------------------------------+
| - High Java core/concurrency fluency| - Experience with jOOQ              |
| - TDD & Unit testing rigor          | - Knowledge of GCP ecosystem        |
| - Strong PostgreSQL & transaction DB| - DDD & CQRS production experience  |
| - Deep object-oriented design (OOP) | - Financial/Fintech platform background
+-------------------------------------+-------------------------------------+

Frequently Asked Questions

Q: How difficult are the live coding interviews compared to standard LeetCode assessments? The live coding assessments at Revolut rarely focus on esoteric dynamic programming algorithms. Instead, they test practical software engineering—building complete, object-oriented services (like a Load Balancer or URL shortener) with clean thread-safety, proper structure, and full unit test suites within 45 minutes.

Q: Can I use frameworks like Spring Boot during the live coding rounds? No. Revolut explicitly discourages or forbids heavy framework magic (like Spring) during live coding evaluations. You are expected to demonstrate core Java fluency, direct instantiation, explicit object relationships, and clean low-level implementation logic.

Q: How fast does the interview process move from start to offer? The process at Revolut moves quickly. Stages are typically completed within 2 to 3 weeks. Feedback is usually returned within a few days of completing a technical loop.

Q: Are candidates allowed to use AI tools during live interviews? Policies regarding AI assistants vary depending on the team and current trial guidelines. However, even when AI tools are permitted, you will be rigorously tested on your manual ability to review, debug, write core functions, explain execution trade-offs, and prove thread safety. Relying blindly on generated output without understanding the underlying semantics will lead to rejection.

Other General Tips

  • Prepare Your Local IDE Setup: Before the live coding interview, ensure your local development environment (IntelliJ IDEA or Eclipse) is pre-configured with JDK 17+, Maven/Gradle, JUnit 5, and AssertJ dependencies. Do not waste precious interview minutes troubleshooting build file configurations.
  • Enforce TDD Explicitly: Begin your live coding exercises by defining interface behaviors and immediately writing failing unit tests before implementing core method logic. This signals senior-level engineering discipline.
  • Master Concurrency Primitives: Practice writing lock-free and lock-based thread-safe code from scratch. Understand the performance implications of ConcurrentHashMap, explicit locking primitives, and atomic variables.
  • Brush Up on Relational Locking: Review PostgreSQL-specific isolation behavior, deadlock generation conditions, and locking syntax (SELECT ... FOR UPDATE).
  • Be Direct and Concise: Revolut values direct, structured communication. Keep your explanations focused on technical facts, trade-offs, and measurable outcomes.

Summary & Next Steps

Targeting a Backend Engineer position at Revolut means preparing for a high-intensity, practical technical evaluation. Success depends on your core language knowledge, your discipline in writing clean, thread-safe Java code under time constraints, and your understanding of transaction mechanics in distributed systems.

The compensation structure at Revolut reflects the competitive bar set for backend engineers. Base salary levels scale with demonstrated technical depth and seniority, complemented by equity options and performance bonuses tied to corporate and individual deliverables.

Focus your preparation on building production-ready code in your local IDE, sharpening your concurrency and SQL isolation fundamentals, and practicing system design for real-world financial architectures. Candidates seeking additional practice problems, actual interview case breakdowns, and tailored prep modules can explore comprehensive technical insights on Dataford to refine their interview execution strategy.

Approach your upcoming interviews with confidence, drive, and structured technical precision. Focus on execution speed and test-driven quality, and you will set yourself up for success in Revolut's backend engineering loop.

16 · FAQ

Revolut Backend Engineer interview FAQ

Answered from real candidate and compensation data
How many rounds is the Revolut Backend Engineer interview process?
Candidates report 4 stages: Automated Coding Assessment, Coding Tasks Interview, Architectural Discussions, and Team-Fit Assessments. The interview process section above breaks down what each stage covers.
What topics come up in the Revolut Backend Engineer interview?
Revolut Backend Engineer interviews most often cover Java, SQL, Concurrency, System Design, and Load balancer design, based on topics extracted from real candidate reports.
What questions does Revolut ask Backend Engineer candidates?
Recent candidates report questions like "Load Balancer for Ten Servers" and "Database Consistency Under Concurrency". The question bank above tracks 20 questions for this role, ranked by how often they come up in Revolut interviews.