persistent systems | on-campus 2021 | online assessment questions | interview questions
Summary
I successfully cleared all rounds of the Persistent Systems on-campus interview process in 2021 for an entry-level software role and received the highest package offered.
Full Experience
I participated in the Persistent Systems on-campus drive in 2021, aiming for an entry-level position. The entire process consisted of multiple rounds, starting with an initial assessment and progressing through advanced coding, technical interviews, and a super achiever round, culminating in an HR assessment. I managed to clear all rounds, eventually securing the highest package offered.
The first hurdle, Round 0, involved 50 logical reasoning and English questions, where I solved approximately 40. This was followed by two very easy coding questions, both of which I successfully completed. Surprisingly, I wasn't interviewed in this technical round.
Following a strong performance, I was invited to the Advanced Coding Round OA which was designated for high-performers, targeting a 7.5 LPA package. This round featured two coding questions to be solved within 60 minutes. The first problem required converting one binary string to another by reversing substrings, with a constraint on increasing substring size; I solved this. The second problem, on finding the edge part of the maximum number of simple paths in an undirected graph, was more challenging, and I couldn't pass all test cases.
Next was a 90-minute Technical Interview. I was asked to code two problems: printing Pascal's Triangle and sorting an integer array by frequency, preserving the original order for elements with equal frequency. Both solutions were rigorously tested with multiple test cases, and I passed. The interview also included three SQL queries: creating a table, inserting data, and finding duplicates based on two columns, which I solved using GROUP BY and HAVING. Additionally, several CS fundamental questions were posed, covering topics like heaps, selection sort, pointers vs. references, disadvantages of the waterfall model, array declaration differences in certain languages, exceptions, and the distinction between exceptions and errors. I managed to answer most of these, though I missed the array declaration difference.
After successfully clearing the previous stages, I moved to the Super Achiever Round, aiming for a 9 LPA package. This began with a Coding Round of two problems in 60 minutes. The first problem was identical to the 'Number of Islands' problem on LeetCode, which I solved. The second problem was a variation of finding connected components in an undirected graph, and while not straightforward, I also managed to solve it.
The final Interview in the Super Achiever Round was managerial and focused on advanced topics, lasting 30 minutes. I was challenged with a system design-style question on finding word frequency in a huge text file, where a naive approach (chunks + hashmap) was explicitly deemed insufficient. I also solved a simple SQL self-join problem. The CS fundamentals portion delved into Python-specific concepts like context managers and GIL (which I couldn't answer), along with recursion (types, tail recursion optimization, and efficiency compared to loops), network architecture layers, reliable transmission, and functions of transport/network layers. Database questions included RDBMS indexes and their types (I missed the types). Since I mentioned ML on my resume, I was asked to explain the bias-variance tradeoff and normalization, both of which I answered.
Finally, the HR round was a 15-minute assessment of 50 objective, situational questions, which apparently everyone passes.
I am pleased to report that I successfully navigated all these rounds and received an offer with the highest package.
Interview Questions (30)
Given an undirected graph, find the edge which is part of the maximum number of simple paths.
Write code to print the Pascal's Triangle.
Given an integer array, sort the elements by frequency. If the frequency is the same, then the element which occurs first in the original array comes first in the sorted array.
Write a SQL query to create a table.
Write a SQL query to insert data into a table.
Given a table with three columns, write a SQL query to find duplicates with respect to the first two columns. (Hint: can be solved using GROUP BY and HAVING clause).
What are heaps?
Explain the Selection Sort algorithm.
What is the difference between pointers and references (assuming C++ context)?
What are the disadvantages of the Waterfall model?
What is the difference between int var[]; and int[] var;?
What are exceptions?
What are the differences between exceptions and errors?
A variation of finding connected components in an undirected graph, which was not as straightforward as the previous problem.
Given a huge text file, how would you find word frequency? (Note: reading the file in chunks and using a hashmap was not the desired approach.)
A simple problem requiring the use of SQL self join.
What is a context manager in Python?
What is the Global Interpreter Lock (GIL) in Python?
What is recursion?
What are the different kinds of recursion? How is tail recursion made equivalent to a while loop by the compiler?
How is a while loop generally more efficient with respect to recursion?
What are the layers in a network architecture (e.g., OSI model or TCP/IP model)?
Which layer in network architecture is responsible for reliable transmission?
What are the functions of the Transport Layer and Network Layer in network architecture?
What are indexes in a Relational Database Management System (RDBMS)?
What are the different kinds of indexes in RDBMS?
Explain the bias-variance tradeoff in machine learning.
Explain normalization (in the context of machine learning or statistics).