I applied through a recruiter. The process took 1 week. I interviewed at Deepchecks (Tel Aviv-Yafo) in Oct 2024
Interview
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
Interview questions [1]
Question 1
1. Design a rate limiter
2. Talk about the architecture of something you did
3. Design their system - gets a lot of requests from their clients that show an input to an LLM, and the output that the client got. Their system needs to verify that the output is safe, so they send it to some external rest API. Then, once the response has been processed, you need to show it to the user in their app in a dashboard of some sort.
They ask what the bottleneck is and how would you handle it.