interviewers lack interpersonal skills.
First step is a 30 min zoom call with the recruiter (could have been a 5 min phone talk, even though she is very nice)
Second step was a 1.5 hour system design interview with the vp r&d, and a senior dev that joined half way through.
The first question was to design a rate limiter, allow X requests from each customerID every minute. You should implement it with Redis and start out with:
1. Fixed-window algorithm (first X requests will take all of the capacity for the rest of the minute, so it's not good)
2. Make it better with a sliding window algorithm (this one will require o(X) for every request, so could be better)
3. Use a leaky bucket algorithm - have a counter for requests, and every minute reduce X from it.
After that the senior dev has joined, and we discussed the architecture of something I worked on. He asked a lot of questions about it, which was a good sign.
In the end, as we had like 5 minute until the end of the interview, I was asked if "I knew how to design their basic architecture". Then he explained an abstract workflow and asked me to do a system design for it. i thought it was some sort of a bonus question, as we had like 3 minutes until the end of the interview.
I suggested a possible architcture, we discussed the bottlenecks and possible solutions, as it was very rushed, i didnt provide the right solution