# Software Engineer
**Role:** Software Engineer · **Level:** Middle Software Engineer
**Company:** [Revolut](https://scaleengineer.com/companies/revolut)
**Difficulty:** Medium
**Salary:** US$80000 - US$120000
**Experience:** 3 - 5
**Timeline:** ~14 days
This interview process is designed to assess candidates for a Middle Software Engineer position at Revolut. It evaluates technical skills, problem-solving abilities, cultural fit, and experience relevant to the role.
Canonical: https://scaleengineer.com/interviews/revolut/middle-software-engineer-software-engineer
---
## Overall evaluation

- Technical Skills
- System Design
- Behavioral and Cultural Fit

## Questions asked

- Write a function to find the kth largest element in an unsorted array.
- Design a system to handle real-time notifications for a social media platform.
- Tell me about a time you had to deal with a production issue. What was your approach?
- How would you design a rate limiter for an API?
- What are the differences between SQL and NoSQL databases?
- Describe your experience with unit testing and integration testing.

## Preparation tips

### lists

- Review fundamental data structures and algorithms.
- Practice coding problems on platforms like LeetCode or HackerRank.
- Study common system design concepts and patterns.
- Prepare examples for behavioral questions using the STAR method.
- Research Revolut's products, values, and recent news.
- Understand the technologies commonly used at Revolut (e.g., Java, Python, Go, microservices, cloud platforms).

### studyPlan

- {"title":"Data Structures and Algorithms","longDescription":"Weeks 1-2: Focus on core data structures (Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Hash Tables) and algorithms (Sorting, Searching, Dynamic Programming, Greedy Algorithms). Practice implementing these and analyzing their time/space complexity.","shortDescription":"Weeks 1-2: Data Structures & Algorithms fundamentals. Practice coding."}
- {"title":"System Design","longDescription":"Weeks 3-4: Dive into system design principles. Cover topics like API design, database choices, caching strategies, load balancing, message queues, and microservices architecture. Study common design patterns and trade-offs.","shortDescription":"Weeks 3-4: System Design principles and patterns. Study scalability."}
- {"title":"Behavioral Preparation","longDescription":"Week 5: Prepare for behavioral interviews. Reflect on past experiences related to teamwork, problem-solving, leadership, and handling challenges. Use the STAR method (Situation, Task, Action, Result) to structure your answers.","shortDescription":"Week 5: Behavioral questions preparation. Use STAR method."}
- {"title":"Company Research","longDescription":"Week 6: Research Revolut thoroughly. Understand its business model, products, company culture, and recent achievements. Prepare questions to ask the interviewer about the role and the company.","shortDescription":"Week 6: Company research and question preparation."}

## Location differences

- {"location":"London","differences":{"tips":["Be prepared to discuss specific projects and your contributions.","Familiarize yourself with common system design patterns.","Practice explaining your thought process clearly and concisely."],"interviewFocus":["Emphasis on practical application of data structures and algorithms.","Assessment of system design capabilities for scalable applications.","Evaluation of collaboration and communication skills within a team."],"commonQuestions":["How would you design a URL shortener service?","Describe a challenging technical problem you solved recently.","Tell me about a time you disagreed with a team member and how you resolved it."]}}
- {"location":"Berlin","differences":{"tips":["Highlight any experience with distributed systems.","Be ready to discuss trade-offs in different technical solutions.","Showcase your understanding of CI/CD pipelines."],"interviewFocus":["Deeper dive into cloud technologies and infrastructure.","Focus on performance optimization and scalability challenges.","Assessment of code quality and best practices."],"commonQuestions":["How would you optimize a database query for performance?","Discuss your experience with cloud platforms like AWS or Azure.","How do you approach code reviews?"]}}

## Round 1: Coding Round
**Type:** Technical Interview (Coding) · **Difficulty:** Medium · **Duration:** 45 min
Coding challenge focusing on data structures and algorithms.
This round focuses on your core programming skills. You will be asked to solve one or two coding problems, typically involving data structures and algorithms. The interviewer will assess your ability to understand the problem, devise an efficient solution, write clean and correct code, and explain your thought process.
**Interviewers look for:** Logical thinking; Ability to translate requirements into code; Understanding of fundamental data structures and algorithms
**Evaluation criteria:** Correctness of the solution; Efficiency of the solution (time and space complexity); Clarity and readability of the code; Problem-solving approach
**Common rejection reasons:** Inability to articulate thought process clearly.; Incorrect or inefficient algorithmic solutions.; Poor coding practices (e.g., lack of comments, poor variable naming).
## Questions

- Given a binary tree, invert the tree.
- Find the first non-repeating character in a string.

## Preparation tips

- Practice coding on a whiteboard or a shared editor.
- Think out loud and explain your approach before coding.
- Test your code with edge cases.
- Be prepared to discuss time and space complexity.

## Round 2: System Design Round
**Type:** Technical Interview (System Design) · **Difficulty:** Medium · **Duration:** 60 min
Design a scalable system or component.
In this round, you will be asked to design a scalable system or a component of a larger system. This could involve designing a social media feed, a URL shortener, a chat application, or a distributed key-value store. The focus is on your ability to think about high-level architecture, identify bottlenecks, and propose solutions that are scalable, reliable, and maintainable.
**Interviewers look for:** Ability to design complex systems; Understanding of distributed systems concepts; Knowledge of various technologies and their applications; Pragmatic approach to problem-solving
**Evaluation criteria:** Scalability of the proposed design; Robustness and fault tolerance; Clarity and completeness of the design; Trade-off analysis
**Common rejection reasons:** Lack of understanding of system design principles.; Inability to handle scale and performance requirements.; Poor trade-off analysis.; Not considering edge cases or failure scenarios.
## Questions

- Design a system like Twitter's news feed.
- Design a distributed cache.

## Preparation tips

- Study common system design interview questions and patterns.
- Practice drawing system diagrams.
- Be prepared to discuss different database choices, caching strategies, and load balancing techniques.
- Consider the trade-offs of your design decisions.

## Round 3: Behavioral Round
**Type:** Behavioral Interview · **Difficulty:** Easy · **Duration:** 30 min
Assesses cultural fit, motivation, and behavioral competencies.
This round assesses your behavioral competencies and cultural fit with Revolut. You'll be asked questions about your past experiences, how you handle certain situations, your motivations, and your career aspirations. The interviewer wants to understand how you work in a team, how you approach challenges, and whether you align with Revolut's values.
**Interviewers look for:** Enthusiasm for Revolut; Alignment with company values; Good communication and interpersonal skills; Self-awareness and ability to reflect on past experiences
**Evaluation criteria:** Cultural fit; Motivation for the role and company; Teamwork and collaboration skills; Communication clarity
**Common rejection reasons:** Poor communication or interpersonal skills.; Lack of alignment with company values.; Inability to provide specific examples of past experiences.; Negative attitude or lack of enthusiasm.
## Questions

- Tell me about a time you failed and what you learned from it.
- How do you handle constructive criticism?
- Why are you interested in Revolut?

## Preparation tips

- Prepare specific examples using the STAR method.
- Research Revolut's company culture and values.
- Be honest and authentic in your responses.
- Ask thoughtful questions about the team and the role.
