I had applied at Persistent Systems through the AMCAT portal on 12th November 2020. It was a virtual off-campus hiring process. I had to go through an online test followed by two technical rounds and an HR round.
Online Test #
It was held on 19th November 2020. There were various questions divided into different sections like Computer Science fundamentals, English, Logical Aptitude, and Coding. The quality of the questions was good enough. The coding section consisted of two questions. One was a simple question on arrays. I wrote the solution in a minute and it passed all the test cases. The second question required to implement the KMP algorithm. I had to count the occurrences of a substring in a given string. My solution passed all the test cases.
I was confident about clearing the online test. And, yes I did. I received the shortlisted email after a day and my tech interview was scheduled for 23rd November.
Level 1 Technical Round #
I revised all the CS core subjects like Operating System, DBMS, and Computer Networks, and also Java, OOP concepts the day before my interview.
My interview started at 9:15 am. I wished the interviewer a good morning, and he reciprocated. He asked me to brief him about myself, highlighting what projects I have done so far and what technologies I’ve worked on. I explained to him in detail. Then he asked, “What does Java Collections offer?”. I told him about the different container classes like ArrayList, List, Stack, HashMap, and many such. He also wanted to know the use cases of the container classes, what is Hashing and how does it work. I answered all of his questions.
He then asked me to write a program to print the Fibonacci series up to N in a pyramid pattern (shown below).
When N = 4,
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
While I was writing the code, my interviewer was interviewing another candidate in the meantime. I solved and explained my solution to him. He also asked me to find the middle node of a linked list in O(n) time in a single traversal. I wrote the solution using slow and fast pointers. He said that the interview is over and you will receive an email for the HR round shortly.
I told to my parents that my interview went well. And, within fifteen minutes I got an email for a second technical round. I got a little surprised since I was waiting for the HR round and didn’t know a second technical round was going to happen.
Level 2 Technical Round #
It took around 40 minutes to finish the round. It was rigorous. The interviewer asked several questions related to CS theoretical concepts and work management. He started by asking me how OS manages the main memory, what are virtual memory, paging, and page table. He asked me to show how we allocate memory in Java. I said to him that I’m not aware of how to do this in Java but I can write code in C using malloc()
to allocate memory dynamically. I thought about this question after my interview had ended and I realized that it is the new
keyword in Java that creates a new object and allocates memory in the heap. I somehow couldn’t recall this during the interview.
He asked me whether I have worked with NoSQL databases or not, the differences between TCP and UDP, their practical use cases, what is the OSI model, how encryption works, what is a public and a private key, and about a few Linux commands. I solved two SQL join queries and was also asked to convert a normal binary search tree into a balanced BST.
He gave me two different scenarios and wanted to know what would I do in that situation. I can only remember the second scenario now. He said, “Suppose, you’re a project manager and a client has asked you to complete a project in a week. Now, you don’t have sufficient people in your team currently. What would you do in that situation?”. My answers to both the questions were naive and I wasn’t feeling confident enough about my answers. He expressed to me that he was not satisfied with the answers.
He then asked me, “Have you worked with AWS or Google Cloud?”. I said, “No, sir. But I have hosted two of my applications on Heroku Cloud. I just know the basics of cloud computing.” He calmly said to me, “So, Mayukh, do you know C++?”. I said, “Yes”. “Can you tell me the significant differences between C, C++, and Java?”, he said. The interview was about to end. I asked him how was the interview and does he has any feedback for me. He repeated that he was not satisfied with my answers to those managerial questions and advised me to work on it. And, I was done with this round.
I was worried and tensed. I thought I would get rejected. My father calmed me and said, “Have faith in yourself. I am sure that you’ll pass this round”. Almost after a day, I received the email for the HR round. I felt so less tensed at that moment.
HR round #
It was held on 25th November and took around 7-8 minutes to complete. The interviewer first introduced himself and then asked me to introduce myself. He kept a generous smile on his face throughout the interview and I felt very positive during the interview. He said, “Mayukh, you’re from Kolkata, right? So, elections are knocking on the door. How’s the political situation going on in Bengal now?”. I answered him very enthusiastically.
He was typing on his laptop and suddenly said, “You’re selected, Mayukh. Do you have any problem if you are on-boarded on 16th of December?”. I was shocked. I asked myself that did he really said what I just heard. I stammered and said, “Thank you, sir. No, I don’t have any problem”. I asked him about my job role and what kind of projects I would get a chance to work on. I was happy and satisfied with the offer. The interview ended.
My overall interview experience with Persistent Systems was pretty good. I have shared the interview questions as much as I can remember them now. It is necessary to be well prepared with the basics of your Computer Science fundamentals and have good programming skills. I have heard that they are very selective. So, prepare well in advance.