Reddit Experience · Dec 2025

Revolut interview - coding session [Rejected]

SWE Technical Senior Easy
6 upvotes 10 replies

Interview Experience

That was a Python interview for a senior role. The interviewer was nice and answered the questions about the tasks. Rejection letter: `Unfortunately, after much consideration, we have decided not to p

Full Details

That was a Python interview for a senior role. The interviewer was nice and answered the questions about the tasks. Rejection letter: Unfortunately, after much consideration, we have decided not to proceed further with your application, as we require more specific knowledge to be successful in our recruitment process. Tasks were very easy for me. I spent more time asking the interviewer what he wanted to see in my code. Coding session took around an hour. Write a class that will register strings, but no more than 10 of them (raise an error in case of overflow). Make a test for that. Add a method `get` that will randomly return one of the strings. Write a test for that method. Make it possible to switch `get` to round robin. Write a test for that.

My solution was written during an interview. app.py removed redundant spaces from random import choice from typing import Callable from revolut.constants import BALANCER_INSTANCE_LIMIT class BalancerError(Exception): ... class AlreadyRegisteredInstance(BalancerError): ... class OverLimitInstances(BalancerError): ... class EmptyInstancesRegistry(BalancerError): ... class RoundRobinStrategy: def init(self): self._current_index = 0 def call(self, instances: list[str]) -> str: element = instances[self._current_index] self._current_index = ( self._current_index + 1 if self._current_index < len(instances) - 1 else 0 )

return element class Balancer: def init(self, randomizer: Callable = choice): self._randomizer = randomizer self._instances = list() def register(self, url: str) -> None: if url in self._instances: raise AlreadyRegisteredInstance("Instance already registered") if len(self._instances) == BALANCER_INSTANCE_LIMIT: raise OverLimitInstances(f"{BALANCER_INSTANCE_LIMIT}") self._instances.append(url) def get(self) -> str: if len(self._instances) == 0: raise EmptyInstancesRegistry return self._randomizer(self._instances)

About This Question

This is a candidate experience report from a revolut interview for a swe role (senior level) during the technical round reported in 2025.

It covers the following topics: Strings, System Design .

Difficulty rating: Easy

More Revolut Interview Questions