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
Online Assessment
2
HR Screening Call
3
Technical Evaluations
4
Behavioral Assessment

What is a Software Engineer at Revolut?

A Software Engineer at Revolut is responsible for building and scaling the core financial technology infrastructure that powers a global financial super-app. Operating in a high-velocity, hyper-growth environment, engineers here design and maintain systems that process millions of transactions daily across multiple currencies. This role requires a rare combination of exceptional coding proficiency, architectural foresight, and a deep understanding of low-latency, highly concurrent systems.

The impact of this position is immediate and highly visible. Whether you are working on core banking ledgers, card issuance pipelines, fraud detection systems, or retail investment products, your code directly affects the financial lives of tens of millions of global users. At Revolut, software engineering is not just about writing code; it is about solving complex distributed systems problems where data consistency, security, and performance are absolute requirements.

To succeed in this role, you must thrive under pressure and enjoy working in an environment that values autonomy, technical ownership, and rapid iteration. The engineering culture is highly demanding, prioritizing technical excellence and pragmatic, production-ready solutions over theoretical perfection. If you are passionate about building robust, fault-tolerant financial systems at a massive scale, this position offers an unmatched arena to test and elevate your engineering skills.

Common Interview Questions

The questions you will face during the Revolut hiring process are highly practical and designed to evaluate your real-world engineering capabilities. They are drawn from actual reported interview experiences and are structured to test your technical depth, coding speed, and architectural reasoning. Use these questions to identify patterns in what Revolut expects from its engineering talent.

Coding & Test-Driven Development (TDD)

This category tests your ability to write clean, maintainable, and thoroughly tested code under tight time constraints. You must demonstrate a strict adherence to OOP principles and TDD.

  • Implement an in-memory load balancer supporting Random and Round-Robin routing algorithms. Ensure the solution is thread-safe and fully covered by unit tests.
  • Design and implement a URL shortening service (TinyURL) focusing on object-oriented design, test-driven development, and basic concurrency handling.

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
Deadlock-Free Account TransfersHard
Tests concurrency, locking strategy, and correctness for financial balance updates and transfers.
deadlocksData Structuresconcurrency
Recently asked
B-Tree vs BRIN for LedgersMedium
Explain how B-Tree and BRIN indexes differ in PostgreSQL, and how each affects read performance and write amplification.
postgresqlperformanceindexes
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 targeted strategy that prioritizes practical coding, system design fundamentals, and a deep understanding of transactional systems. You cannot rely on memorizing algorithmic puzzles; instead, you must demonstrate strong software craftsmanship and architectural maturity.

Role-Related Knowledge – You must possess a flawless command of your primary programming language (Java is highly prominent for backend roles) and its concurrency models. You need to demonstrate a deep understanding of database internals, particularly PostgreSQL, including locking mechanisms, isolation levels, and indexing strategies.

Test-Driven Development (TDD)Revolut places an exceptionally high value on TDD. You should practice writing unit tests before or alongside your implementation, utilizing mocking frameworks effectively, and ensuring 100% test coverage for edge cases and input validation.

System Design & Patterns – You must be highly fluent in modern architectural patterns, specifically Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and distributed transaction patterns like SAGA. You should be able to design systems that guarantee idempotency and data consistency.

Culture & Execution Velocity – Interviewers look for individuals who exhibit extreme ownership, clear communication, and the resilience to perform under pressure. You should be prepared to showcase your ability to write production-ready code quickly and defend your technical decisions confidently.

Interview Process Overview

The interview process at Revolut is rigorous, highly structured, and designed to move quickly. It is optimized to evaluate both your immediate coding capabilities and your long-term architectural potential. The entire process typically takes between two to four weeks, with some locations offering accelerated "One-Day Offer" tracks.

You will begin with an online assessment and an HR screening call, which quickly transitions into intensive technical evaluations. The technical rounds are demanding and time-pressured, focusing on live coding with TDD, deep-dive database discussions, and complex system design scenarios. The process concludes with a behavioral and team-fit assessment to ensure alignment with the company's high-performance culture.

06 · The loop

The interview process, end to end

≈ 3-5 weeks · 4 rounds
1
Online Assessment

Candidates begin with an online assessment to evaluate coding capabilities.

2
HR Screening Call

An initial call with HR to discuss the candidate's background and fit for the role.

3
Technical Evaluations

Intensive technical rounds focusing on live coding with TDD, database discussions, and system design.

4
Behavioral Assessment

Final assessment to evaluate behavioral fit and alignment with the company's culture.

The timeline above outlines the standard progression of stages for the Software Engineer pipeline. Candidates should interpret this as a highly sequential process where each technical round acts as a strict gateway to the next. Depending on the seniority of the role and the specific location, the number of technical rounds or team-fit sessions may vary slightly.

Deep Dive into Evaluation Areas

To pass the technical bar at Revolut, you must demonstrate exceptional competence in three core engineering disciplines. Each area is evaluated through dedicated interview stages that simulate real-world engineering challenges.

Live Coding & Test-Driven Development (TDD)

The live coding round is not a standard LeetCode algorithm test. Instead, it simulates a real-world software development task, such as building an in-memory load balancer or a transactional account service. Interviewers evaluate your coding speed, clean code practices (SOLID principles), error handling, and your commitment to TDD.

Be ready to go over:

  • TDD Workflow – Writing failing tests first, implementing the minimum code to pass, and refactoring while keeping tests green.
  • Mocking and Assertions – Using testing frameworks (like JUnit, Spock, or Jest) to mock dependencies and assert expected behaviors.
  • Input Validation – Implementing robust defense mechanisms against bad inputs, null values, and boundary conditions.
  • Advanced concepts (less common) – Writing custom test runners, parameterized testing for complex business rules, and verifying thread safety programmatically.

Example questions or scenarios:

  • "Implement a thread-safe in-memory cache with a Least Recently Used (LRU) eviction policy using TDD."
  • "Create an AccountService skeleton that supports concurrent deposits and withdrawals, ensuring no account balance can drop below zero."

Concurrency, Thread Safety & Database Transactions

As a financial super-app, Revolut cannot afford data corruption or race conditions. This area evaluates your ability to write thread-safe code and configure databases to handle millions of concurrent operations safely and efficiently.

Be ready to go over:

  • Java Concurrency – Utilizing synchronized blocks, ReentrantLocks, Atomic variables, and ConcurrentHashMap.
  • SQL Locking Strategies – Implementing pessimistic locking (SELECT ... FOR UPDATE) and optimistic locking (using version columns).
  • Database Isolation Levels – Understanding Read Committed, Repeatable Read, and Serializable, and their performance trade-offs.
  • Advanced concepts (less common) – Deadlock detection and resolution strategies, MVCC (Multi-Version Concurrency Control) internals in PostgreSQL, and connection pool tuning.

Example questions or scenarios:

  • "Two threads are trying to transfer money between the same two accounts in opposite directions simultaneously. How do you prevent a deadlock?"
  • "Explain how PostgreSQL handles concurrent writes to the same row under the Repeatable Read isolation level."

System Design & Scalability

The system design interview assesses your ability to architect scalable, resilient, and consistent distributed systems. You will be expected to sketch high-level architectures, design database schemas, and detail integration patterns.

Be ready to go over:

  • Domain-Driven Design (DDD) – Defining bounded contexts, aggregates, entities, and value objects for banking domains.
  • Event-Driven Architecture – Implementing CQRS and Event Sourcing to maintain immutable audit logs of financial state.
  • Distributed Consistency – Designing idempotent APIs, handling network partitions, and implementing the Transactional Outbox pattern.
  • Advanced concepts (less common) – Two-Phase Commit (2PC) vs. SAGA/TCC, rate limiting at the API gateway level, and designing for active-active multi-region deployments.

Example questions or scenarios:

  • "Design a high-throughput payment processing ledger that guarantees exactly-once processing and maintains a consistent transaction history."
  • "Architect a system that handles card issuance and activation, ensuring all state transitions are audit-logged and consistent across microservices."
08 · Topic breakdown

What they actually test for

Topic distribution
All topics
JavaTDD (Test-Driven Development)System designConcurrencyCQRS (Command Query Responsibility Segregation)

Key Responsibilities

As a Software Engineer at Revolut, your day-to-day work will directly impact the reliability, speed, and capability of the financial super-app. You will operate with a high degree of autonomy and technical ownership.

  • Design and Implement Core Services – Write clean, robust, and highly concurrent code to implement new features and scale existing services across Revolut's ecosystem.
  • Apply Rigorous Engineering Practices – Champion test-driven development, write comprehensive unit and integration tests, and ensure all code is production-ready and highly maintainable.
  • Architect Distributed Systems – Collaborate with technical leads to design scalable microservice architectures, utilizing DDD, CQRS, and event-driven patterns.
  • Optimize Database Performance – Design efficient database schemas, optimize SQL queries, and manage complex transaction boundaries in PostgreSQL databases.
  • Collaborate Across Teams – Work closely with product managers, operations, and security teams to translate business requirements into highly secure and scalable technical solutions.
  • Maintain System Reliability – Participate in code reviews, monitor production systems, and troubleshoot high-priority performance bottlenecks or system outages.

Role Requirements & Qualifications

Revolut maintains an incredibly high hiring bar. Successful candidates must demonstrate exceptional technical mastery alongside a pragmatic, execution-focused mindset.

  • Technical Skills

    • Flawless proficiency in at least one core backend language, with a strong preference for Java/JVM languages.
    • Deep understanding of relational databases, specifically PostgreSQL, including transaction management, indexing, and performance tuning.
    • Mastery of concurrency, multi-threading, and asynchronous programming models.
    • Strong experience with testing frameworks and a proven track record of practicing TDD.
    • Familiarity with modern architectural patterns, including DDD, CQRS, Event Sourcing, and microservices.
  • Experience Level

    • Solid background in software engineering, typically requiring 3+ years of experience for mid-level and 6+ years for senior roles.
    • Prior experience building high-throughput, low-latency distributed systems or working in fintech, banking, or transactional environments is highly advantageous.
  • Soft Skills

    • Exceptional problem-solving abilities and the capacity to reason about complex systems under pressure.
    • Clear, concise, and professional communication skills, with the ability to defend technical decisions constructively.
    • A strong sense of ownership, self-motivation, and adaptability to a rapidly changing, fast-paced corporate environment.
  • Nice-to-Have Skills

    • Experience with cloud infrastructure (GCP/AWS), containerization (Docker, Kubernetes), and CI/CD pipelines.
    • Familiarity with frontend technologies (React, TypeScript) for full-stack and product-focused engineering teams.

Frequently Asked Questions

Q: How difficult is the Software Engineer interview at Revolut? The interview process is widely considered difficult to highly challenging. The difficulty stems not from obscure algorithmic puzzles, but from the rigorous focus on production-ready code, TDD, concurrency, and real-world database design under tight time constraints.

Q: Can I use any programming language for the live coding interview? While Revolut uses Java extensively across its backend, you can typically use your preferred programming language for the live coding rounds. However, you must be highly proficient in your chosen language's concurrency models and testing frameworks.

Q: What is the culture like for engineers at Revolut? The engineering culture is fast-paced, demanding, and highly performance-driven. It operates on a philosophy of extreme ownership, where engineers are given significant autonomy but are held strictly accountable for the quality and delivery of their work.

Q: How long does the entire recruitment process take? The process is highly streamlined and typically takes between two to four weeks from the initial application to the final decision. Revolut recruiters are highly proactive, and you can expect rapid feedback after completing each stage.

Other General Tips

To maximize your chances of success, keep these practical, insider tips in mind as you prepare for and navigate the Revolut interview process.

  • Commit to TDD Fully – Do not treat TDD as an afterthought. Write your tests first, structure your code around testability, and ensure you cover edge cases and validation. Failing to write tests or ignoring mock frameworks is a common reason for rejection.
  • Over-Communicate, But Keep Moving – Explain your thought process as you code, but do not let it slow down your implementation. The interviewers want to see working, clean, and tested code by the end of the hour.
  • Master SQL Locking and Isolation Levels – You will be asked deep, practical questions about database transactions. Be ready to explain exactly how to prevent concurrent modification anomalies using PostgreSQL-specific mechanisms.
  • Do Not Guess Validations – During coding tasks, proactively ask about required validations and edge cases. If the interviewer gives vague guidance, implement robust defensive checks anyway to demonstrate strong code ownership.
  • Show Alignment with "Never Settle"Revolut's core value is "Never Settle." In your behavioral interviews, highlight instances where you went above and beyond to optimize a system, refactor technical debt, or deliver a highly challenging project under tight deadlines.

Summary & Next Steps

The Software Engineer position at Revolut is an extraordinary opportunity to work on some of the most sophisticated, high-scale financial technology systems in the world. The role offers immense technical challenges, rapid career growth, and the chance to build products that redefine how millions of people manage their money.

To succeed in this highly competitive interview process, focus your preparation on the core pillars of software craftsmanship: rigorous Test-Driven Development, flawless concurrency management, deep database knowledge, and scalable system design. Treating the interview as a highly professional knowledge check and practicing under realistic time constraints will give you a decisive advantage.

Prepare thoroughly, write clean code, and approach each round with confidence and technical precision. For additional real-world interview insights, salary data, and community experiences, explore the resources available on Dataford to fine-tune your preparation strategy.

14 · Compensation

What this role pays

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

The salary data shown above represents the competitive compensation packages offered by Revolut for engineering talent. Candidates should interpret these ranges as highly dependent on geographic location, technical seniority, and performance during the interview process. Revolut evaluates candidates rigorously to determine their internal leveling, making exceptional preparation directly impactful on your final 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 rounds is the Revolut Software Engineer interview process?
Candidates report 4 stages: Online Assessment, HR Screening Call, Technical Evaluations, and Behavioral Assessment. The interview process section above breaks down what each stage covers.
How much does a Software Engineer at Revolut make?
Reported compensation for Software Engineer roles at Revolut ranges from roughly $112k base to $165k total per year, varying by level, team, and location.
What topics come up in the Revolut Software Engineer interview?
Revolut Software Engineer interviews most often cover Java, TDD (Test-Driven Development), System design, Concurrency, and CQRS (Command Query Responsibility Segregation), based on topics extracted from real candidate reports.
What questions does Revolut ask Software Engineer candidates?
Recent candidates report questions like "Deadlock-Free Account Transfers" and "B-Tree vs BRIN for Ledgers". The question bank above tracks 20 questions for this role, ranked by how often they come up in Revolut interviews.