Taro Logo

Software Engineer Interview Experience - Poland

November 22, 2022
Negative ExperienceNo Offer

Process

The first call is easy – basic questions: HashMap and its pessimistic time complexity when it degrades, data structures used to implement efficient indexes in databases (name them, without explanation), ACID (just what it means, without deep explanation), etc. The first call is to determine if you have any knowledge to proceed with the process.

The second call is live coding, and this is where Revolut has trouble in their interview process. You are asked to write a Load Balancer. If you are an experienced Software Engineer, you'll know that this can be a whole project on its own. There are entire books and research fields about Load Balancers.

But okay, you are trying to play their game, so you have a ton of questions to clarify requirements and sketch at least a raw MVP for that topic:

  • Does he want you to implement Level 4 or Level 7 LB?
  • Is there any specific LB strategy he wants you to implement?
  • Are there any restrictions regarding the hardware you'll operate on?
  • What is the domain the LB will be working in?
  • And a lot more.

Then you'll realize that the interviewer is annoyed by your questions, and he wants you to write the damn thing. In real-life work, you will get yourself into a lot of trouble trying to write the code without clarifying your doubts first, but here you are expected to show bad practices to get the job.

When you figure out that he's not helpful with your questions and he wants you to just write the code, you start to understand that he wants you to simply wrap HashMap and expose "meaningful" methods, not to write a Load Balancer. Unfortunately, at this point, you've wasted time being a professional Software Engineer and doing your craft, so you don't have much time left. The interviewer is rushing through topics he wanted to cover, but he has already decided about your future in this company – you are not delivering a "quick and precise" implementation, so you are not a good fit.

Of course, you'll get the email with the rejection and the feedback, which unfortunately is not precise at all. For example, we had a discussion about strategies for dealing with methods that can fail. I responded that we should aim for using exceptions for such cases and not return codes – I wanted to show that I know what Clean Code is and that I read a lot of Uncle Bob's books. In the feedback I got: "We should always use exceptions and not return codes." Yes, that's exactly what I said; I even mentioned that this is one of the Clean Code rules. We all know that the next time their recruitment team will be going through the list of potential candidates, they will reject a candidate which tried to use return codes instead of exceptions – which I didn't, but imprecise feedback suggests that I did.

There were more cases like this, but this is already too long. To sum up, I feel like the Revolut process is not well thought through. Their interviewers are probably regular developers who are trying to help the company, but are not very well trained in interviewing. The more experienced you are, the weirder questions like "Write a Load Balancer" become. Like, do they even know what they are asking for? And if they say that they didn't REALLY expect the candidate to write an LB, then they need to be more precise with their questions.

Questions

What is the average time complexity of getting a value in a HashMap?

What is the pessimistic time complexity of getting a value from a HashMap, and why?

Name a few tree-like data structures:

  • Binary Search Tree
  • AVL Tree
  • Red-Black Tree

Name a few self-balancing tree data structures:

  • AVL Tree
  • Red-Black Tree
  • B-Tree

Which data structures are used to implement effective database indexes?

What does ACID mean in Database Systems?

Was this helpful?

Interview Statistics

The following metrics were computed from 15 interview experiences for the Revolut Software Engineer role in Poland.

Success Rate

20%
Pass Rate

Revolut's interview process for their Software Engineer roles in Poland is very selective, failing most engineers who go through it.

Experience Rating

Positive27%
Neutral7%
Negative67%

Candidates reported having very negative feelings for Revolut's Software Engineer interview process in Poland.

Revolut Work Experiences