The interview was placed in their office in Vienna, AT. It consisted of 4 steps (~1h each), total of 4 hours:
- Team fit interview
- Whiteboard coding challenge
- Architectural challenge
- Pair Programming challenge
The Team Fit interview was pretty simple, with questions on how you work together to how you handle high demand projects. My opinion here is that the interviewer was waiting for answers if you were willing to “give the extra mile” and work over the hours to finish the high demanding projects. The interviewer seemed satisfied about the “high demand projects” topic when I answered that in previous companies I worked on weekends to get the projects done in time. In general, the same old default questions that one could find in any interview - teamwork, communication skills, good relationship with teammates, etc. Giving simple default positive questions is enough to make the interviewer happy.
The Whiteboard coding challenge is a simple algorithm challenge that you need to write specifically with their programming language (Kotlin, Java). In an attempt to make this step faster, I tried to write in simple Pseudocode and explain each step with performance implications. In the end, it didn’t matter, and I had to write in Kotlin. A simple question that one can find in any Coding Challenge interview book or websites of coding challenge.
The Architectural challenge was indeed a challenge. First of all, the English-speaking interviewer with a strong accent together with my strong accent, we both had a hard time understanding each other. After getting used to each other speaking, it was presented a simple architecture with 1 server and 1 database (specifically PostgreSQL), and the question is how to improve the architecture to solve the problem of “slow response times when there is a high peak of requests”. It was great challenging, as DB Sharding, Microservices, Caching and Distributed Caching, were not enough for the interviewer. The interviewer asking implementation details (e.g. how to implement by hand a DB Sharding, or to write code and/or queries on the whiteboard to improve the performance). I would say this was the only big challenge of the whole process, and of course, I failed on this step. According to the feedback, I did not provide the right solution for this, and I was not informed which solution would be the right one.
Last but not least, the Pair Programming challenge was simply an already written and working code, that you should improve. The person at your side would keep asking questions about the code, and you need to explain why you are doing the improvements, and what are the implications. Performance and tests are the important points here.
After a week I received the call from HR I believe, with the rejection answer. They said I went good on three steps, except from the Architectural Challenge one.