General coding 1: the Report Chain problem
General coding 2: the Tennis Game problem — afterward the interviewer also chatted with me a bit about the strategy pattern
Backend programming: the Load Balancer problem:
It's split into four parts, and they give you a codebase.
Part 1: The load balancer keeps getting error code 500. You need to find the cause — the cause is that the LB has the hostname and port name wrong in its health check, so every host gets marked unhealthy.
Part 2: The service's latency is higher than expected, and you need to find the reason. The reason is pretty obvious — there's one server in there with a line that sleeps for a while — but finding the reason isn't the point. The point is how you debug it, and it's fairly simple too: add instrumentation to measure request latency.
Part 3: Write a circuit breaker to keep the LB from sending requests to unhealthy servers.
Part 4: The original LB is round-robin based, and you're asked to implement least-request-latency instead.
Overall the coding part was pretty simple. The focus is on how you reason about the cause and justify your decisions.
Behavioral: standard BQ, they also ask how you normally use AI.
Timeline:
The day after the interview, I moved into team match.
Team match wrapped up within a week and I got the offer.
Recap: Overall the interview experience was really good. The recruiter was genuinely a huge help — during the prep call they explained really clearly what each round would focus on testing. For example, the backend programming round was described pretty abstractly at first, but the recruiter walked me through the format in detail, so I didn't waste time preparing the wrong things — basically going through the prototypes of a few common small components was enough.
Discussion
Loading comments…