The interview process had three stages.
The first stage was a phone screen with the recruiter, followed by a face-to-face technical interview. This round was mainly based on my resume. Since I had mentioned that I write maintainable code, they asked questions on SOLID principles and a few design patterns. After that, I was given an easy string-based coding problem and a few SQL-related questions.
I was selected for the second round, which was conducted virtually with a US panel two days after the first round. In this round, they asked scenario-based questions such as how authorization is handled in one of my projects and how I would approach specific real-time situations. They also asked about compatibility — for example, if my service is built in .NET 8 and the client application is in .NET 5, how the client can consume the service without upgrading.
They also asked a question about handling logging when multiple tasks are running concurrently, along with a few behavioral questions. I wasn’t able to answer the logging-related question as confidently as I wanted, and it seemed to impact the panel’s feedback. After several follow-ups with the recruiter, I was eventually informed that I was not selected.