Revolut logo
RevolutSoftware Engineer
Updated · Reviewed by the Dataford team

Revolut Software 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
Initial Screening
2
Hands-on Technical Validation
3
Theory Questions
4
System Design Round

What is a Software Engineer at Revolut?

A Software Engineer at Revolut is responsible for building high-throughput, low-latency financial systems that power banking, trading, crypto, and payment services for tens of millions of global users. Operating in an environment with strict reliability requirements and massive scale, engineers here do not merely write code; they build production-grade financial infrastructure designed to process high-concurrency transactions flawlessly.

In this role, you will work on core banking features, risk and fraud detection pipelines, distributed ledgers, or payment gateways. Engineering at Revolut centers heavily on high-concurrency Java, Kotlin, and Scala backends, supported by robust transactional databases like PostgreSQL. You will design systems where thread safety, exact ledger balancing, data isolation, and low-latency response times are fundamental constraints rather than optional enhancements.

The work demands high ownership and precision. Because you will directly influence systems handling real money across multiple currencies, you are expected to write code ready for production from day one—complete with strict Test-Driven Development (TDD), domain-driven architectures, and thorough edge-case validation.

Common Interview Questions

Interview questions at Revolut are designed to test core engineering practices under tight time constraints. Rather than purely abstract algorithmic puzzles, the technical assessments lean heavily toward practical backend challenges, concurrent programming, and production-ready system architecture.

Concurrency & Multi-threading

This category evaluates your ability to handle race conditions, design thread-safe execution flows, and ensure data integrity in parallel environments.

  • How do you implement a thread-safe money transfer service between two accounts without causing deadlocks?
  • Explain the difference between optimistic and pessimistic locking, and when you would use each in a relational database.

Access the full Revolut Software Engineer prep plan

  • Every Software Engineer question, updated weekly
  • Model answers with full code walkthroughs
  • Recent, real interview reports
Get my prep plan
03 · Question bank

The questions most likely to come up

Sorted by relevance to this company
Simplified Banking Transaction SystemEasy
Simulate deposits, withdrawals, and transfers with hash maps while rejecting invalid transactions atomically.
Coding
Recently asked
PostgreSQL Isolation Levels for PaymentsMedium
Explain PostgreSQL isolation levels and how they prevent dirty reads, non-repeatable reads, and phantom reads in payment workflows.
acid propertiestransactionsdata integrity
Recently asked
Access the full Revolut Software Engineer prep plan
Everything you need to walk in ready.
Get my prep plan

Getting Ready for Your Interviews

Preparing for an interview at Revolut requires a shift from standard LeetCode grinding to mastering practical backend engineering, TDD, and concurrent programming. You will be evaluated on your speed, operational rigor, and ability to deliver production-ready code under pressure.

Domain Knowledge & Backend Fundamentals
You must possess a deep understanding of core backend principles, specifically multi-threading, concurrency primitives, and relational database internals. Interviewers expect clear explanations of locking mechanisms, transaction isolation levels, and concurrency models (especially within JVM ecosystems like Java or Kotlin).

Production-Quality Execution
Writing functional code is only the baseline at Revolut. Interviewers evaluate whether your solution is modular, maintains clear abstraction boundaries, adheres to Domain-Driven Design (DDD), and includes comprehensive unit test coverage written via Test-Driven Development (TDD).

System Design & Scale Dynamics
For architecture rounds, you need to demonstrate how to build systems that handle failure gracefully. You will be evaluated on your understanding of distributed consensus, idempotency mechanisms, event-driven architectures (CQRS/Event Sourcing), and handling unreliable external dependencies.

Velocity & Technical Ownership
The interview process moves fast and tests your efficiency. You are expected to manage your time tightly, write working code quickly, ask clarifying questions up front, and justify your design trade-offs without defensive reasoning.

Interview Process Overview

The hiring process at Revolut is fast-paced, highly structured, and rigorous. It typically spans three to four weeks from initial contact to offer, designed to evaluate both practical execution skills and core engineering depth.

The process transitions from an initial screening directly into hands-on technical validation. You will face live coding environments where you write code in your IDE, handle real-world backend scenarios, and answer targeted theory questions on databases and concurrency. System design rounds focus on real-world banking domain challenges rather than abstract concepts.

06 · The loop

The interview process, end to end

≈ 3-5 weeks · 4 rounds
1
Initial Screening

The process begins with an initial screening to assess candidate fit.

2
Hands-on Technical Validation

Candidates engage in live coding environments to solve real-world backend scenarios.

3
Theory Questions

Candidates answer targeted theory questions on databases and concurrency.

4
System Design Round

Focus on real-world banking domain challenges rather than abstract concepts.

The timeline above reflects the typical progression for engineering roles. Early stages focus on execution speed and fundamentals, while later stages evaluate architectural depth and cultural alignment with Revolut’s high-ownership environment.

Deep Dive into Evaluation Areas

Concurrency & Low-Level System Design

Concurrency is a core evaluation area at Revolut. Because financial systems process thousands of parallel payment operations, engineers must write code that eliminates race conditions and avoids deadlocks.

Be ready to go over:

  • Thread Synchronization – Mechanics of synchronized, explicit ReentrantLock, ReadWriteLock, and atomic variables in the JVM.
  • Deadlock Prevention – Resource ordering strategies and lock timeout mechanisms when acquiring multiple locks across shared accounts.

Access the full Revolut Software Engineer prep plan

  • Every Software 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
ConcurrencyTransaction isolation levelsLocking mechanismsTransaction managementProduction-quality coding standards

Key Responsibilities

As a Software Engineer at Revolut, your daily responsibilities center on building and maintaining resilient backend services that drive financial operations.

You will design and implement high-volume microservices using Java, Kotlin, or Scala. A significant portion of your work involves writing clean, maintainable domain code backed by relational databases like PostgreSQL. You will write robust unit and integration tests using TDD practices to ensure that system updates do not introduce regressions into live financial pipelines.

Collaboration is cross-functional and fast-paced. You will work closely with Product Managers, Operations teams, and System Architects to translate complex regulatory and product requirements into clear engineering deliverables. You will also participate in peer code reviews, contribute to architectural discussions, and take end-to-end ownership of your services from development to production monitoring and observability.

Role Requirements & Qualifications

Candidates applying for the Software Engineer position at Revolut are expected to demonstrate strong engineering fundamentals, technical mastery in backend ecosystems, and clear ownership habits.

Technical Skills

  • Must-have: Proficiency in backend technologies, specifically Java, Kotlin, or Scala. Strong proficiency with relational databases (especially PostgreSQL), SQL transaction isolation, and database locking mechanics.
  • Must-have: Deep understanding of multi-threaded programming, concurrency control, and thread safety. Experience writing unit tests via Test-Driven Development (TDD).
  • Nice-to-have: Hands-on experience with Event Sourcing, CQRS, Kafka, Docker, Kubernetes, and cloud infrastructure (AWS/GCP). Familiarity with Domain-Driven Design (DDD) principles.

Background & Soft Skills

  • Must-have: Strong problem-solving skills under time pressure and the ability to articulate architectural decisions clearly. High ownership mindset with a focus on delivering production-ready solutions.
  • Nice-to-have: Prior experience in fintech, core banking, high-frequency trading, or large-scale distributed systems platforms.

Frequently Asked Questions

Q: How difficult are the technical interviews at Revolut?
The coding problems themselves are generally medium-level in algorithmic difficulty, but the overall bar is high due to tight time limits and strict criteria around code quality, TDD, concurrency, and production readiness.

Q: Which programming language should I use during live coding?
Java and Kotlin are the predominant languages used in Revolut’s backend stack and are highly recommended. However, you can generally use another language you are comfortable with, provided you can demonstrate solid concurrency handling and TDD.

Q: What is the main point of failure for candidates in technical rounds?
Candidates most often struggle by rushing to write code without setting up proper tests, ignoring edge cases, failing to explain concurrency trade-offs, or lacking deep knowledge of database isolation levels and locking mechanisms.

Q: What is the typical timeline from the initial screen to an offer?
The hiring process at Revolut is efficient and typically takes between three to four weeks. Feedback is generally provided rapidly between stages.

Other General Tips

  • Master TDD mechanics: Practice writing unit tests before or alongside your implementation logic. Interviewers value candidates who write clean, well-tested code over those who churn out unverified scripts.
  • Brush up on PostgreSQL internals: Be ready to explain the differences between pessimistic and optimistic locking, index structures (B-Tree vs. BRIN), and transaction isolation levels in detail.
  • Set up your local IDE environment in advance: Ensure your preferred IDE, test runners, and dependencies are pre-configured before live coding sessions to avoid losing time on setup errors.
  • Communicate your design trade-offs proactively: When designing a system or writing code, explain why you chose a specific structure, data type (such as BigDecimal for currency), or locking mechanism.

Summary & Next Steps

A Software Engineer role at Revolut offers an exciting opportunity to work on large-scale financial software processing millions of operations daily. The engineering culture values velocity, strong technical depth, and rigorous execution. Success in the hiring process requires mastering backend fundamentals—specifically concurrency, database mechanics, TDD, and clean architecture design.

To give yourself the best advantage during preparation, approach your study deliberately: practice writing production-grade code quickly, review database internal structures, and refine your system architecture frameworks. You can explore additional interview insights, real candidate experiences, practice questions, and preparation resources on Dataford to refine your study plan.

14 · Compensation

What this role pays

6 reports
USUSD
Estimated total compLow confidence · 6 data points
$0k-$0k
Median $18k / year
Base salary · 100%Stock (RSU) · 0%Cash bonus · 0%
25thEntry / smaller markets
$18k
50thTypical offer
$18k
90thTop performers / major metros
$18k
Breakdown by component
Base salary
100% of total
$18k$18k
$18k
median
Stock (RSU)
0% of total
$0$0
$0
median
Cash bonus
0% of total
$0$0
$0
median
Aggregated from 6 self-reported salaries via Glassdoor. Estimates only. Verify against your offer.

The compensation data above reflects standard target packages for software engineering roles. Base pay, equity, and variable performance bonuses vary depending on candidate seniority, location, and demonstrated technical expertise during the interview process. Focused preparation on concurrency, TDD, and system design will help you demonstrate the technical depth needed to secure a competitive offer.

15 · The role

Inside the Software Engineer guide at Revolut

18 · FAQ

Revolut Software Engineer interview FAQ

Answered from real candidate and compensation data
How many interview rounds does Revolut have for a Software Engineer, and what does each stage test?
Revolut’s Software Engineer loop includes an Online Assessment, an HR Screening Call, Technical Evaluations, and a final Behavioral Assessment. The technical portion focuses on live coding with TDD, plus database discussions and system design. The behavioral stage is meant to check fit with the company’s culture.
How hard are Revolut Software Engineer interviews compared to other roles?
Candidates most commonly report the difficulty as average for Revolut Software Engineer interviews. The process is still structured to test practical coding and architectural reasoning through live coding, TDD, database topics, and system design.
What topics are most important for Revolut Software Engineer technical interviews?
Expect heavy emphasis on Java, TDD, and system design, with additional focus on concurrency and transactional correctness. The prep-relevant topic list also includes CQRS, DDD, and deadlock avoidance, including concurrency with transactions in the banking domain.
Do Revolut Software Engineer interviews include TDD and live coding?
Yes. Technical Evaluations include live coding with TDD, and they are designed to evaluate your ability to produce production-ready, well-tested solutions under time constraints.
What are the public example questions for Revolut Software Engineer interviews?
Two public sample questions are “Deadlock-Free Account Transfers” and “Leading a High-Impact Delivery.” These reflect the role’s focus on concurrency and deadlock avoidance, plus end-to-end delivery in behavioral discussions.
How much does Revolut pay Software Engineers, and what should I expect in terms of base vs total?
Candidate and job-posting reports show compensation ranging from about $112k base up to about $165k total. Pay can vary by level and location, so you should match your expectations to the specific level being offered.