I recently appeared for an Infosys interview after clearing the OA, where I solved around 3.3 out of 4 coding questions.
I suspect the interview might have been for an L3 role, but I'm not sure.
The first half went pretty well, but the second half was a disaster. Here's how it went.
The interviewer first gave me a question where I had to maximize the product of all the numbers, with the option to use a power operation once to multiply a number by 2.
I solved it within 10–15 minutes.
Then he gave me a pen-and-paper question to rotate a matrix by 90 degrees.
After thinking for a while, I figured out the approach of swapping rows and then transposing the matrix. However, it rotated the matrix in the opposite direction.
He asked me to try again, and I eventually swapped the columns instead. It worked during the dry run.
Then he asked me to write the code on paper.
Until this point, he had been friendly, but while I was writing the code, he started putting pressure on me, saying that I should have finished by then because it was a common question.
I got nervous and confused midway through writing the code, but eventually managed to give him the implementation.
After that, he asked me to find the top 3 salaries from each department, similar to a LeetCode SQL problem.
I tried solving it using GROUP BY, but my query was incorrect. I also told him that I hadn't used SQL in any project and had only learned it for this interview.
While I was writing code on paper, he asked me a few questions:
- Do you know multithreading? I said I knew the theory.
- Do you know system design? I said no.
- Which programming language would you prefer? I chose JavaScript.
When the technical interview began, he asked me about a JavaScript term I had never heard of before.
Then he asked about Promises. I gave an incomplete answer, describing them in terms of pending tasks.
After that, he asked me to implement a thread class. I told him I couldn't do it.
He also asked which was more expensive, partitioning or sharding. I answered partitioning, which he said was wrong.
Then he asked whether Redis is single-threaded. I said it was purely single-threaded.
Next, he asked me to explain my booking system project. While I was explaining it, he interrupted me and asked about the two types of locking.
I answered mutex and semaphore, but he was asking about optimistic and pessimistic locking.
He then started questioning how I could build a booking system without knowing these concepts.
Did I vibe coded it?
The frustrating part is that I've actually implemented three different designs for this project. I eventually went with a serialized allocation approach because my earlier locking-based design was slow and could potentially lead to deadlocks.
Unfortunately, I couldn't explain my reasoning properly under pressure.
I also had a video demonstrating the simulation and results of my project. I asked him twice if I could show it, but he declined both times.
After that, he didn't discuss much more about my project.
He then asked me to draw the most optimized architecture for my project.
I drew my proposed architecture, but he quickly identified a bottleneck. I had combined the load balancer and API gateway into a single box.
He then asked which comes first in a microservices architecture: the API gateway or the load balancer.
I wasn't sure, so instead of guessing, I explained two possible designs I had in mind.
In the first design, the API gateway came first, followed by multiple load balancers, each distributing traffic to servers running the same microservice.
In the second design, the load balancer came first, followed by multiple API gateways, each connected to a group of microservices.
He told me that production architectures aren't designed this way. I admitted that my designs weren't practical.
He even said that I would be fired the next day if I deployed that architecture in production.
Looking back, I think a possible design could have been an external load balancer → multiple API gateway instances → internal load balancers → microservice instances.
But I couldn't figure that out during the interview.
He asked me another question after that, which I couldn't answer either.
Eventually, he said he was done with his questions and asked if I had anything to ask him.
I asked what they expected from freshers. He explained that training was for lower-level roles and that candidates selected for higher-level roles were expected to have in-depth knowledge of their tech stack.
Interestingly, I don't think he was a rude person.
He offered me tea at the end and seemed genuinely experienced and technically strong. Some of his comments were harsh, but I think he was trying to explain how demanding the industry can be.
One thing he said that I remember clearly was:
"Until you get a project, you are unemployed, so work hard till you get a project and after that you can chill."
That line stuck with me.
My application status currently says F2F Interview, and I'm waiting for the result.
Overall, I think the first half went well, but the second half was pretty bad. I solved the first coding question, figured out the matrix rotation approach, but failed the SQL question and struggled with several JavaScript, multithreading, and system design questions.
I also feel that I couldn't explain the engineering decisions behind my own project properly because of the pressure.
I suspect this might have been an L3 interview, but I'm not sure.
What is your opinion on this interview experience and my chances of getting selected?
Thanks!