First of all, let me give you a short introduction about myself.
I am a 2024 graduate in Computer Science and Engineering from a tier 3 private college.
I am a Knight on LeetCode (top 3%) and a Specialist on Codeforces. I was active in coding contests on both LeetCode and Codeforces from my second year to the end of my third year of college.
I have solved about 2000 problems across all platforms.
My development skills include React.js, Next.js, Node.js, TypeScript, and I am familiar with AWS, etc.
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 while sending out the recruitment notification. They somehow mentioned that Infosys was also going to hire for the 3.5 LPA role. As most of the students were still unplaced, all of them came to campus for the drive. However, in the job description, only the Specialist Programmer role with a 9.5 LPA package was mentioned.
Around 1900 students appeared for the drive. However, during the pre-placement talk (PPT), the team from Infosys mentioned the Specialist Programmer role only.
Anyway, let's come to the online assessment (OA).
The OA was arranged on campus under strict invigilation.
Pattern:
There were 3 questions, with a total time limit of 3 hours.
The catch was if you jumped to the next question, you could not go back to the previous question. Also, the questions were not arranged according to difficulty.
While walking towards the seat allotted to me for the test, I decided that I would only spend 1 hour on each question. If I could solve it within that period, well and good. If not, after exactly 1 hour, I would shift to the next question.
(From my previous experience in contests, I know that if I am not able to come up with a solution to a problem in 1 hour, then I probably won't find a solution even if I am given a whole day for it.)
As expected, the first question was the hardest among all.
It involved a segment tree. I knew about segment trees, but whenever in Codeforces or even in LeetCode I had implemented them, I had always copied the class from my local files to the online IDE and just used the class. But here, you couldn't copy-paste stuff. You couldn't even change tabs, as it automatically went to full-screen mode and you couldn't escape that unless you quit the test or pressed the start button, in which case you would be flagged and disqualified.
Anyway, I tried for half an hour but couldn't come up with the segment tree class. I decided to use the brute force approach. It took 10 minutes. Passed 0 hidden test cases.
I spent the next 10 minutes optimizing the brute force. Again, passed 0 hidden test cases.
I would say the level of the question was around 1700-1800 on Codeforces.
1 hour was over. Jumped to question 2.
It was an ad-hoc problem. The level was around Codeforces-1600. I don't remember the exact question, but there was a small observation to be made to pass all of the test cases. Caching the last index visited sort of...
Solved it in 30 minutes.
By this time, 70% of the candidates had quit and left.
Jumped to the 3rd question.
It was a straightforward recursion question. We had to explore all possible combinations and find the required results. Note: there were no repeating sub-problems, so memoization was not required.
Solved this in 15 minutes.
Submitted the test.
The level of this question was comparable to LeetCode second Medium (third question) during contests.
The selected candidate list was sent around 12 AM that night. The interview was on the same day (the day after the test).
Out of 1900 students, 12 were called for the interview.
Only one interview was conducted.
Interview:
Short introduction.
A short tree problem, testing whether I knew how to traverse a tree (DFS or BFS). 5 minutes were spent on this.
Design an LFU Cache.
I hadn't studied the LFU cache since I last saw Striver's video in my second year.
He explained the problem statement and what he expected from me.
I thought about the problem and tried to recall the data structures needed—LinkedLists, hashMaps, etc.
He gave me the question and went out of the room (probably to freshen up after conducting interviews since morning). I worked on the logic, and it magically started falling into place, and it was done. Once the logic is set, coding the problem is not a problem at all.
I wrote the code. I was given a blue pen. I saw a black one lying around, so I made a proper diagram and color-coded my code. The entire process took about 10 minutes.
He came back, and I told him it was done. He was somewhat surprised. He looked at my code, asked a few questions about some of the lines, and I clarified everything. This took another 10 minutes.
He was satisfied.
He then jumped to more system design.
I was unable to answer this question because I didn't know what he was expecting.
Question: 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 and filter one by one, but if it's a filter like COD/not-COD (like on-off logic), we can store that table in the database. When a user asks for COD, we can provide the already present COD list and do the same for prepaid.
He then mentioned that it wouldn't work for write-heavy systems. I thought and tried to come up with a different approach, but after about 2 minutes, he told me that was enough and asked if I had any questions for him.
In the middle, he might have come up with some more system design questions, but I don't remember them at this point.
If you have an Infosys Specialist Programmer role interview, know that you are already very good with DSA. Go through system design articles on Medium, and read about the famous patterns—singleton, factory, decorator, etc. (There are about 6-7 that are the most important among others.) You will not be asked to code and implement them. Just prepare yourself to a level where you can draw some boxes and explain what is happening to them.
I got the result after 1 day. The college placement team sent the list.
Out of the 12, 6 were selected, and I was one of them.
Thanks for reading.
Peace.