First of all, I want to mention that it was one of my best interview process experiences despite not being selected as a candidate for this position. The entire interview process was designed and managed really well, and they truly knew how to choose the correct candidate. Well done, Lodgify hiring team!
My first interview was with an HR representative, and it was a really nice conversation. We discussed what I knew about their company, why I wanted to join them, my preferred work environment, etc. After that, she explained the company, project, and position to me. In the next step, they sent me a challenge – a .NET Core project with the basic structure of a reservation system for a cinema. The requirement was to implement different endpoints. The challenge was comprehensive, covering various aspects such as gRPC, Redis, algorithmic challenges, etc. I had one week to work on the challenge. After submitting my challenge, it took several days for them to review it. I received another invitation for the next round of interviews.
The next round involved two other people (one senior developer, and probably the other one was the team lead). Initially, they asked me several questions, which you can see below. After finishing the questions, they asked me to share my screen, and we discussed my solution to the challenge. I believe they scrutinized my challenge in detail. The senior developer mentioned one of my methods and asked about the complexity of my code, which I hadn't considered. A better way would have been to implement it using a HashSet collection to reduce complexity. We also discussed other parts of my implementation. After checking my challenge, they presented an algorithmic question on codeshare.io, and the main idea of the question was similar to the "Two Sum" question. After solving and discussing my solution, they shared another piece of code and asked me which SOLID principle was violated, providing a new design.