There were three rounds in total. The first two were technical, one coding and one system design, and the last one was a chat with the hiring manager. They were scheduled across two days.
Starting with the coding round. The interviewer spent about half an hour asking technical detail questions, things like public-key cryptography theory, Spring Boot details, and Kubernetes details. The funny part is that the interviewer's own understanding of some of these concepts was actually wrong. After that came a permission-matching coding problem: design a few classes that can represent hierarchical permissions, then use breadth-first search to match and find a given permission.
Since the interviewer couldn't provide any test cases, after I finished writing it they asked me to explain my implementation logic. I was pretty shocked that they had never even heard of the breadth-first search algorithm.
The system design round used the whiteboard built into the meeting platform. The interviewer was different from the first round, and had somewhat better technical depth than the first one. First I was asked to describe the architecture diagram of a complex system I had worked on before and walk through it. Then I was asked how I would implement a similar new feature, for example how to change a synchronous request into an asynchronous one, and what the pros and cons of doing that are.
Now the hiring manager round. I'm an immigrant who hasn't been here long. The manager gave a rough overview of the team and the main business, and after that it was basically behavioral questions.
Then I waited about two weeks. The recruiter told me that after internal discussion they had decided to reject me, but offered some consolation that they would notify me if a similar position opens up.
Discussion
Loading comments…