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)
Convert Binary String by Reversing Substrings
Given two binary strings (strings of '0's and '1's) A and B. Convert string A to string B by selecting any substring and reversing it. The size of the substring selected in the current operation must be greater than the previously selected substring size. Find the minimum number of steps required.
Edge in Graph with Max Simple Paths
Given an undirected graph, find the edge which is part of the maximum number of simple paths.
Print Pascal Triangle
Write code to print the Pascal's Triangle.
Sort Array by Frequency with Order Preservation
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.
SQL: Create Table
Write a SQL query to create a table.
SQL: Insert into Table
Write a SQL query to insert data into a table.
SQL: Find Duplicates by Two Columns
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?
What are heaps?
Explain Selection Sort
Explain the Selection Sort algorithm.
Pointers vs. References (C++)
What is the difference between pointers and references (assuming C++ context)?
Disadvantages of Waterfall Model
What are the disadvantages of the Waterfall model?
Array Declaration Syntax (Java/C#)
What is the difference between int var[]; and int[] var;?
What are Exceptions?
What are exceptions?
Exceptions vs. Errors
What are the differences between exceptions and errors?
Number of Islands
The problem was the same as the 'Number of Islands' problem on LeetCode.
Variation of Connected Components in Undirected Graph
A variation of finding connected components in an undirected graph, which was not as straightforward as the previous problem.
Word Frequency in Huge Text File
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.)
SQL Self Join Problem
A simple problem requiring the use of SQL self join.
What is Context Manager in Python?
What is a context manager in Python?
What is GIL in Python?
What is the Global Interpreter Lock (GIL) in Python?
What is Recursion?
What is recursion?
Types of Recursion & Tail Recursion Optimization
What are the different kinds of recursion? How is tail recursion made equivalent to a while loop by the compiler?
While Loop vs. Recursion Efficiency
How is a while loop generally more efficient with respect to recursion?
Layers in Network Architecture
What are the layers in a network architecture (e.g., OSI model or TCP/IP model)?
Reliable Transmission Layer
Which layer in network architecture is responsible for reliable transmission?
Functions of Transport and Network Layers
What are the functions of the Transport Layer and Network Layer in network architecture?
What are Indexes in RDBMS?
What are indexes in a Relational Database Management System (RDBMS)?
Types of Indexes in RDBMS
What are the different kinds of indexes in RDBMS?
Explain Bias-Variance Tradeoff
Explain the bias-variance tradeoff in machine learning.
Explain Normalization (ML/Statistics)
Explain normalization (in the context of machine learning or statistics).