Status: 12 YOE
Position: Principal engineer
Location: Bangalore
Date: Sep, 2019
Preparation: Very generic preparation, CTCI + *** a few questions + theory
The Recruiter contacted me on LinkedIn for the position of backend engineer in Revolut, London. I checked about the company, they had their share of problems regarding work-life balance, but I guess the curiosity about the interview process and the charm of London swept me off and I decided to interview.
Step 1: Take home assignment
Design and implement a RESTful API (including data model and the backing implementation) for money transfers between accounts.
They gave me a week to submit the solution and then took a week to review it.
Step 2: Online technical discussion
Discuss the solution and various design choices
My current project architecture and design.
Then they shifted to some theory questions like:
Peer programming in IDE - write a frequency counter and then add constraints like what if it wont fit in memory, what if it can be called by many threads.
In the end they gave me 10 min to ask them questions.
One week later the recruiter came back saying they have decided not to pursue further. They liked the assignment submission and also the theory part is strong but they found me weak in peer programming (specifically Java, as I have never worked in java before but they insisted on me writing code in java)
Takeaways: Java has too strong a pull these days, so decided to polish it a bit with leetcode. But this interview got me interested in interviewing once again, and also was a morale booster, as I was able to finish their assignment and also covered most of the theory.