I applied through a recruiter. I interviewed at Revolut (Kraków) in Jan 2021
Interview
They reached me out on Linkedin and I was told other person will reach out to me. Soon after i've had first phase of interview with HR so ordinary stuff about myself plus things and technologies used by Revolut. At the end there were some technical questions I think just for brief check out of the candidate. Then I was recommended for second phase of interview - livecoding. Before i was told that solutions should be simple and easy, so i kept that in mind. On the livecoding session there was me and amical developer and i was sharing my IDE and talking while resolving "incremental" tasls. He was sending requirements on chat incrementally, so at the beginning there was one task, and later additional "features" were arriving as well .
At the end after few days you receive answer with feedback (in short) "YOU SHOULD USE STRATEGY DESIGN PATTERN AND TDD AND INJECT SEOKEYWORD BY CONSTRUCTOR" xD
So I suggest you all to not do it easy and simple as I did. Obviously you need to align with the interview anwer key.
Interview questions [1]
Question 1
1st phase: ACID, event sourcing, optimistic lock, pessimistic lock, data structures, transaction
2nd phase:
1. given some longUrl + seoKeyword return shortUrl consisting of constant shortUrl string + seoKeyword
2. given some longUrl return shortUrl consisting of constant shortUrl string + 4 random alphanumeric characters
3. Given 2 instances of same service/application how to secure that one instance will use solution from @2 and other instance will use yet another function of shortening url consisting of shortUrl+ some number from 1..n
HR -> Live coding -> Tech -> System design
Overall the before starting the recruitment process it's worth mastering concurrency, DB(especially PostgresSQL), and transaction management. Company seems to be working mostly with Java, Kotlin and a little with Scala
I got contacted by a recruiter. As a first step, I had a call with another recruiter. He was also asking technical questions, but it felt strange. (A bit like talking to a wall.)
I was rejected with a generic message stating that I was not "aligned with the position". This is weird as it was inbound and based on my profile. No feedback, of course.
Waste of time.
Very kind. The questions weren’t easy, but with knowledge of database configurations, concurrency, locks, and some practical experience, you are able to answer them clearly, confidently, and effectively overall. It was good time.