The interview process had three stages:
1. HR interview: The initial HR conversation was friendly and clear.
2. Live coding interview:
The technical interview was conducted through a shared VS Code session. Unfortunately, the interviewer’s connection was very unstable, which made the exercise difficult to complete. Opening files often took more than one minute, and a significant part of the interview was spent waiting for the environment to respond.
Despite the technical issues, I was able to complete the main tasks. The exercise involved identifying a database connection failure caused by an incorrect port and finding two missing database indexes. This was followed by questions about query performance, indexing, partitioning, and how the system could be improved.
I think the exercise itself was relevant for a backend role, but the remote environment made the experience unnecessarily stressful. Allowing candidates to clone the repository and work locally would provide a much better and fairer experience.
3. Engineering manager interview:
The final stage was a conversation with the Director of Engineering. Most of the questions focused on my experience at a large company where I worked several years ago.
I currently work in a startup environment where I have significant autonomy, help design and build systems from scratch, make architectural decisions, and work with limited structure. However, this recent experience was not explored in much detail during the interview.
The final feedback was that they were looking for someone with more autonomy in an ambiguous and fast-moving startup environment, including ownership of architectural decisions and identifying product risks. This feedback was surprising because it closely describes my current role, but I did not have much opportunity to discuss it during the interview due to the questions from the interviewer.