There are multiple rounds of interview between human resource, hiring manager, and the manager above that.
Generally, it should start with the human resource round, followed by the hiring manager, and then next higher up. Lastly, there will be another round from HR
The interview started with a long resume deep dive, especially around my machine learning and tracking experience, and the interviewer seemed quite interested. I positioned C++ as my strongest language, even though I use Python more at work recently. In the first round, I struggled with some C++ fundamentals and rushed the coding section because there was limited time left, so my implementation became messy. Surprisingly, I still moved to the second round. The second round was more backend-focused than I expected, covering areas like messaging systems, SQL optimization, coding style, and networking fundamentals. I was able to explain some high-level ideas, but some details were only half-right, and I made a few basic mistakes under pressure. For the coding part, I solved the problem logically but wrote the solution too compactly, so the interviewer pushed me to make it more readable. Overall, the interview was not extremely difficult, but it exposed gaps in fundamentals and communication clarity, especially when explaining technical details under pressure.
Recruiter call aligns role and experience. Technical screening tests coding (DSA + practical tradeoffs). System design is critical—design large-scale, real-time systems (feeds, messaging, analytics), focusing on data flow, scalability, and tradeoffs. Strong candidates emphasize production-ready thinking, high throughput, and clear architecture decisions over textbook answers.