The interview process consisted of four rounds.
Round 0: Online assessment with three questions of easy to medium difficulty.
Round 1: Problem Solving / LLD round. The interviewer did not clearly state the question, requiring multiple clarifying questions. The interviewer emphasized the need for production-ready, fully functional code. The question involved implementing a functionality to count the number of requests received by a server based on timestamps in chronological order for given input. For example, finding the number of requests received in the last n minutes, where n can be any value. The focus was on designing the data structure to efficiently query time series data. Concurrency had to be handled in the code and should be easily extensible.
Round 2: Managerial / project discussion round. The interviewer, a senior member of the team, focused on past projects and technical choices made.
Round 3: High-Level design round. The task was to design a distributed key-value store system with high availability, similar to DynamoDB.
Round 4: Behavioral round, internally referred to as a 'bar raiser' for cultural fit.
The entire process took approximately two weeks. The offer was extended the day after the final interview round.
Note: Careem is currently on a hiring freeze due to recent acquisitions and organizational restructuring.