Infosys Specialist Programmer | 2024 | OFFER
Summary
I secured an offer for the Specialist Programmer role at Infosys, which involved an online assessment with three coding problems and a subsequent interview round focusing on data structures, algorithms, and system design.
Full Experience
I am a 2024 Computer Science and Engineering graduate from a tier 3 private college. I'm proficient in competitive programming, being a Knight on LeetCode (top 3%) and a Specialist on Codeforces, having solved about 2000 problems across various platforms. My development skills include React.js, Next.js, Node.js, TypeScript, and I am familiar with AWS.
Infosys typically offers packages around 3.5 LPA to freshers. For the Specialist Programmer role, it provides around 9.5 LPA. My college placement team made a small mistake, initially mentioning the 3.5 LPA role, which led to 1900 students appearing for the drive. However, the job description and pre-placement talk clarified that only the Specialist Programmer role was available.
Online Assessment (OA):
The OA was conducted on campus under strict invigilation. It comprised 3 questions with a total time limit of 3 hours. The catch was that once I moved to the next question, I couldn't go back. I decided to allocate 1 hour per question.- Question 1: This was the hardest. It involved a segment tree. I usually copy my segment tree class in contests, but copy-pasting was disallowed. I spent half an hour trying to implement it from scratch but couldn't. I then tried brute force and an optimized brute force, but both failed all hidden test cases. I'd rate this around Codeforces 1700-1800 level.
- Question 2: An ad-hoc problem, roughly Codeforces 1600 level. I don't recall the exact question, but it involved a small observation, possibly related to caching the last visited index. I solved it in 30 minutes. By this point, 70% of candidates had already quit.
- Question 3: A straightforward recursion question to explore all possible combinations. There were no repeating sub-problems, so memoization wasn't required. I solved it in 15 minutes. This was comparable to a LeetCode second Medium question during contests.
Out of 1900 students, only 12 were called for the interview.
Interview:
My interview began with a short introduction. Then, I was given a quick tree problem to test my knowledge of tree traversal (DFS or BFS), which took about 5 minutes.The main challenge was to Design an LFU Cache. I hadn't studied LFU since my second year. The interviewer explained the problem statement and his expectations, then left the room. I thought about the problem, recalling the necessary data structures like LinkedLists and HashMaps. The logic magically started falling into place, and I had the solution. Once the logic was clear, coding it wasn't an issue. I wrote the code and drew a proper, color-coded diagram to explain my solution, which took about 10 minutes. When he returned, he was somewhat surprised by my speed. He reviewed my code, asked a few questions about specific lines, and I clarified everything to his satisfaction.
He then moved to system design. He asked: "Given a list with filters, such as a list of orders for an e-commerce site, how will you optimize when a user wants to filter the list by COD or prepaid?" I explained that with a simple filter, we would have to go through the complete database. For an on-off logic filter like COD/not-COD, I suggested storing separate tables for COD and prepaid orders. He then mentioned this wouldn't work well for write-heavy systems. I tried to come up with a different approach, but after about 2 minutes, he ended the discussion and asked if I had any questions for him. He might have asked other system design questions that I don't distinctly remember.
I received the result after one day. Out of the 12 interviewees, 6 were selected, and I was one of them.
Interview Questions (2)
Design and implement an LFU Cache. I was expected to recall and apply appropriate data structures like LinkedLists and HashMaps to build the logic.
Given a list of orders for an e-commerce site with filters, how would you optimize filtering when a user wants to filter the list by 'Cash on Delivery (COD)' or 'Prepaid' options? The interviewer specifically questioned my initial approach, stating it wouldn't work for write-heavy systems.
Preparation Tips
For the Infosys Specialist Programmer role, I believe being very strong with Data Structures and Algorithms is crucial, which I gained through competitive programming. Additionally, I recommend going through system design articles on Medium and reading about the famous design patterns—singleton, factory, decorator, etc. (focus on the 6-7 most important ones). The expectation isn't to code and implement these patterns, but to be able to draw some boxes and explain what is happening within them.