During the first technical interview round, the discussion began with a detailed walkthrough of my previous internship experience and the key projects I worked on. Following that, the technical evaluation shifted to core computer science fundamentals, specifically focusing on networking concepts within the OSI model as well as operating system principles covering the differences and management of threads versus processes. Finally, the algorithmic portion of the interview featured a problem centered around backtracking and constraint satisfaction, which was structurally similar to the N-Queens II problem on LeetCode.
In the second round, the interview began with a resume review, followed by a few conceptual questions on core Java fundamentals. We then transitioned into a high-level design (HLD) discussion where I explained the architecture of my project involving an agentic RAG workflow.
After outlining the overall setup, the interviewer asked several follow-up questions to probe deeper into the design choices. We discussed how the agent determines which tools or data sources to invoke, how context and conversation history are managed across turns, and how the pipeline handles failing LLM responses or retrieval misses. The questions focused heavily on practical execution and reliability
Tips: Focus on keeping your explanations simple and structured: for system design, clearly explain the big picture of your project first and talk about how you handled errors or limits; for core Java, make sure you know your basics like multithreading and object-oriented rules and for coding problems, always explain your logic out loud and talk through edge cases before you start writing code.