Persistent Interview Preparation and Recruitment Process


About Persistent


Persistent Systems is a global technology services company headquartered in Pune, India, specializing in digital engineering and enterprise modernization. Established in 1990 by Anand Deshpande, the company has grown to employ over 24,500 professionals across 19 countries, serving more than 390 clients worldwide.

Persistent Interview Questions


Company Overview

  • Founded: 1990

  • Founder: Anand Deshpande

  • Headquarters: Pune, Maharashtra, India

  • CEO: Sandeep Kalra

  • CFO: Vinit Teredesai

  • Employees: 24,500+

  • Revenue (FY25): $1.4 billion

  • Stock Listings: NSE & BSE under the ticker symbol PERSISTENT



Core Services

Persistent Systems offers a comprehensive range of services, including:

  • Software Product Engineering: End-to-end development and maintenance of software products.

  • Cloud & Infrastructure: Cloud migration, management, and infrastructure services.

  • Data & Analytics: Data management, business intelligence, and analytics solutions.

  • Customer Experience (CX) Transformation: Enhancing user experiences across digital platforms.

  • Enterprise IT Security: Protecting enterprise systems against cyber threats.

  • Intelligent Automation: Implementing AI and automation for business processes.

  • Enterprise Applications & Integration: Integrating and managing enterprise software applications.

These services cater to various industries, including banking and financial services, insurance, healthcare, life sciences, industrial, software, telecom, and media.



Global Presence

With a footprint in 19 countries, Persistent Systems operates in regions such as North America, Europe, Asia, and Australia. The company's global delivery model ensures proximity to clients and access to a diverse talent pool.



Recognitions & Achievements

  • Recognized as a Leader and Star Performer in Everest Group’s Software Product Engineering Services PEAK Matrix® 2024.

  • Named a Market Leader in the HFS Horizons Generative Enterprise 2024 Report.

  • Consistently rated high in customer experience scores within the IT industry.



Strategic Growth & Acquisitions

Persistent Systems has pursued strategic acquisitions to enhance its capabilities:

  • 2024: Acquired Starfish Associates, a developer of enterprise communications automation platforms.

  • 2024: Announced plans to acquire Arrka, a Pune-based data privacy management firm.

  • 2022: Acquired Data Glove and MediaAgility, expanding cloud and consulting services.



Corporate Values

Persistent Systems emphasizes the following core values:

  • Ingenious: Transforming new ideas into tangible business results.

  • Responsible: Acting with integrity and accountability.

  • Persistent: Demonstrating determination in the face of challenges.

  • Confident: Approaching tasks with self-assurance and continuous learning.



Persistent Recruitment Process


Persistent Systems follows a structured recruitment process, especially for freshers and entry-level roles in software development. The process is designed to assess both technical and analytical skills, with opportunities for higher compensation based on performance. Here's an overview of the recruitment stages:


Persistent Systems Recruitment Process (2025)


1. Online Assessment

The initial screening involves an online test comprising:

  • Objective Round:

    • Computer Science: 20 questions

    • English Comprehension: 12 questions

    • Logical Ability: 12 questions

    • Duration: 50 minutes

  • Subjective Round (Automata Coding):

    • 2 coding questions

    • Duration: 45 minutes

These assessments evaluate your grasp of core CS concepts, programming skills, and problem-solving abilities.



2. Advanced Coding Round (Optional)

Top performers from the initial assessment may be invited to this round, which includes:

  • 2 advanced coding problems

  • Duration: 60 minutes

Success in this round can lead to higher compensation packages.



3. Technical Interviews


Candidates progressing past the assessments undergo two technical interviews:

  • L1 Interview: Focuses on your projects, programming knowledge, and problem-solving skills.

  • L2 Interview: Delves deeper into technical subjects like data structures, algorithms, OOPs, DBMS, and system design.

These interviews assess both theoretical knowledge and practical application.



4. HR Interview

The final stage evaluates your fit within the company culture and may include discussions on:

  • Career aspirations

  • Strengths and weaknesses

  • Relocation preferences

  • Compensation expectations

This round ensures alignment between your goals and the company's values.



5. Super Achiever Test & Drona Interview (For Top Performers)

Exceptional candidates may be offered:

  • Super Achiever Test: An advanced coding assessment leading to higher compensation tiers.

  • Drona Interview: An additional technical interview focusing on in-depth coding and problem-solving skills.

Success in these stages can result in offers with packages up to ₹9.3 LPA.



Eligibility Criteria

  • Education: Bachelor’s or Master’s degree in Computer Science, IT, or related fields.

  • Academic Performance: Minimum 60% in 10th, 12th, and graduation.

  • Backlogs: No active backlogs at the time of application.



Preparation Tips

  • Programming Languages: Gain proficiency in at least one language like Java, C++, or Python.

  • Core Subjects: Strengthen understanding of OOPs, DBMS, Operating Systems, and Computer Networks.

  • Coding Practice: Regularly solve problems on platforms like LeetCode, HackerRank, or GeeksforGeeks.

  • Mock Interviews: Participate in mock interviews to build confidence and improve communication skills.

Persistent Interview Questions :

1 .
Explain the dangling pointer.
Dangling pointers are among the most common errors associated with pointers and memory management. Dangling pointers point to memory locations that have been deleted (or freed). An error resulting from this condition is known as the Dangling Pointer Problem. In C, there are three different scenarios in which the pointer acts as a dangling pointer:

* De-allocation of memory
* Function Call
* Variable goes out of scope

The occurrence of Dangling Pointers can also lead to some surprising errors during program execution, so we should ensure to avoid them when writing programs. Dangling pointer problems can be avoided by using static variables or by assigning NULL to the pointer while memory is being allocated.
2 .
Write a program to find duplicate characters in a given string?
In order to identify the duplicate character in a string, we can count the number of times each character appears in the string. When the count is greater than 1, it indicates that a character has been inserted twice in the string. Below is a Java program to find duplicate characters in a given string.

Code:
import java.util.Scanner;  
public class Main
{  
    public static void main(String[] args)
    {  
        String str;  
        Scanner sc=new Scanner(System.in);                     
        System.out.print("Enter a String: ");  
        str=sc.nextLine();
        int count;  
          
        //Converts a string into a character array  
        char string[] = str.toCharArray();  
          
        System.out.println("Duplicate characters in the string: ");  
        
        //Counts the characters in the string  
        for(int i = 0; i <string.length; i++)
        {  
            count = 1;  
            for(int j = i+1; j <string.length; j++)
            {  
                if(string[i] == string[j] && string[i] != ' ')
                {  
                    count++;  
                    
                    //Set string[j] to 0
                    //to avoid printing visited character  
                    string[j] = '0';  
                }  
            }

            //If the count is greater than 1
            //a character is considered duplicate  
            if(count > 1 && string[i] != '0')  
            System.out.println(string[i]);  
        }  
    }  
}​


Output :

Enter a String: FreeTimeLearn
Duplicate characters in the string: 
r
e​
3 .
Write SQL query to find an employee with the second highest salary.
Consider the following table “Employee”:

Name Position Salary
Gourav SDE 2 1,00,000
Sonal Data Analyst 1,50,000
Kunal Content Specialist 80,000
Farhan Team Lead 2,00,000
Ashutosh Product Lead 1,70,000


To find the second-highest-paid employee, simply run the SQL query below:
SELECT MAX(Salary) FROM Employee WHERE Salary < (SELECT MAX(Salary) FROM Employee);​

Or

SELECT Name, MAX(Salary) as Salary from Employee where Salary <(SELECT MAX(Salary) FROM Employee);​
4 .
What does aggregation mean in relation to databases?
The aggregate function in database management is a function that takes the values of multiple rows and combines them into a single valuable entity. Since the values do not make sense separately, they are combined. Aggregation establishes a relationship which combines these values from different rows to create a single entity. Some common aggregate functions include Count, Average (i.e., arithmetic mean), Median, Minimum, Maximum, Mode, Sum, and Range.
5 .
Describe the ACID properties of a database.
A transaction is a sequence of operations performed as one unit of work, and it can include one or more steps. Transactions make use of the read and write operations to access data. A database must follow certain properties and guidelines before and after each transaction to maintain consistency. Such properties are known as ACID properties. ACID stands for Atomicity, Consistency, Isolation and Durability, which are properties of a transaction in a database system.

ACID properties are designed to maintain the integrity of the data, ensuring that the data does not become corrupted by some failure, guaranteeing validity even in the presence of errors or failures. Therefore, all transactions in a database must adhere to ACID properties.
6 .
Write code for printing pyramid pattern.
Pattern program enhances coding skills, logic, and looping concepts. It is mostly asked in an interview to check the logic and thinking of the programmer. To learn the pattern program, we must have a deep knowledge of the loops, such as for loop, while loop, and do-while loop. Below is a C++ program to print a pyramid pattern using a while loop.

Code:
// C++ code print pyramid pattern
#include <iostream>
using namespace std;
void pypart(int row)
{
    int i, j;

    // Outer loop to handle number of rows
    for (int i = 0; i < row; i++)
       {
 
         // Inner loop to handle number spaces
         for (int j =row-i; j>1; j--)
            {
            cout << " ";
            }
       
          // Inner loop to handle number of columns
          for (int j = 0; j <= i; j++)
            {
            cout << "* ";
            }

        cout << endl;
     }
}
 
// Driver Code
int main()
{
    int row = 5;
    pypart(row);
    return 0;
}​

Output:
    *
   * *
  * * *
 * * * *
* * * * * ​
7 .
Can you explain FIFO?
FIFO (First In First Out) is a method for handling data structures that process the first element (oldest) first and the newest element last. As we enter data elements into a data structure, the element added last in any structure is removed last and the element added first is removed first. A fair chance is given to each data element here; the first element to enter gets the chance to exit first. Essentially, it is analogous to serving people in a queue on an FCFS (first-come, first-served) basis, i.e., in the same order/sequence as they arrive at the tail of the queue.
8 .
Explain Preprocessor Directives.
Preprocessor directives are typically found at the top of the source code on a separate line, starting with the character "#", followed by the directive name and optional whitespace. Preprocessor directives are used to simplify the process of modifying and compiling source codes in different execution environments. It instructs the compiler to preprocess information before actual compilation begins. A preprocessor directive is not a statement, therefore it is not concluded with a semicolon (;). Some of the preprocessing directives available for C# include:

* #define,  #undef
* #error, #warning
* #region, #endregion
* #if, #elif, #else, #endif
9 .
Can you initialize a variable when it is declared?
Yes, you can initialize a variable when declaring it. It isn't necessary to write another assignment statement after the variable declaration unless you intend to change it later. Whenever a variable is declared, it should also be initialized. In initialization, a variable is given a value. As an example, char FreeTimeLearn [20] = "FTL"; It declares a string variable named FreeTimeLearn, and then initializes it with a value of "FTL".
10 .
What is Access Specifier? How can we implement it in C++?
In Object-Oriented Programming, data hiding is achieved through access modifiers. An access specifier specifies how the members (attributes and methods) of a class can be accessed. C++ has three types of access specifiers:

* Public: All members of the class that are declared as public will be available to everyone. Public members can be accessed by others outside of the class. Other classes and functions can access public data members and functions.

* Private: All members of the class that are declared as private will only be accessed by other members of the same class. Private members cannot be accessed from outside the class. They can only be accessed by the member functions or the friend functions.

* Protected: All members of the class that are declared as protected can’t be accessed by others outside of the class, but they can be accessed within the class and from derived (inherited) classes.
11 .
What do you mean by reserved words?
Reserved words (also known as reserved identifiers) in computer language refer to words that cannot be used as identifiers, such as the names of variables, functions, or labels -- they are "reserved".

Therefore, avoid using reserved words as variable names. C has 32 keywords; each has a pre-defined meaning, and can't be used as a variable name. These keywords are known as reserved words.
12 .
Why is C considered to be a middle-level language?
C is considered to be a middle-level language because it provides features of both high-level and low-level languages, bridging the gap between low-level and high-level programming languages. The C language can be used for Application Programming (for generating customer billing systems) and System Programming (for generating operating systems).

Low-level features of the C language

* Supports Inline assembly language programs.
* C features inline assembly language, which lets us directly access system registers.
* C supports bit-level programming, which means we can modify and manipulate data at the bit level.
* Memory can be accessed directly via a pointer. Dynamic memory allocation is therefore possible.

High-level features of the C language

* Programs written in C are machine-independent, and therefore portable.
* A wide range of functions, data types, operators, and data structures are built into C.
* There are high-level constructs such as if-else, do-while, etc.
* C is more readable and has a syntax similar to that of English.
13 .
Internal Working of HashMap
HashMap is a data structure that stores key-value pairs and uses hashing to quickly retrieve values based on keys.

* HashMap internally uses an array of linked lists to store key-value pairs.

* When a key-value pair is added, the key is hashed to determine the index in the array where it will be stored.

* If multiple keys hash to the same index, a linked list is used to handle collisions.

* To retrieve a value, the key is hashed again to find the corresponding index and then the linked list is searched for the key.

* HashMap allows null keys and values, but only one null key is allowed.
14 .
What are the pillars of OOP?
Pillars of OOP are Inheritance, Encapsulation, Abstraction, and Polymorphism.

* Inheritance allows a class to inherit properties and behavior from another class.

* Encapsulation restricts access to certain components of an object, protecting its integrity.

* Abstraction hides complex implementation details and only shows the necessary features.

* Polymorphism allows objects to be treated as instances of their parent class or their own class.
15 .
What is nodejs and difference between nodejs and javascript
Node.js is a server-side JavaScript runtime environment.

* Node.js is built on top of the V8 JavaScript engine from Google Chrome.

* It allows developers to write server-side code in JavaScript.

* Node.js has a non-blocking I/O model, making it efficient for handling large amounts of data.

* Node.js has a vast library of modules available through npm (Node Package Manager).
16 .
What is the default connection pooling in Spring Boot, and how can it be customized?
The default connection pooling in Spring Boot is HikariCP, which can be customized through properties in the application.properties file.

* HikariCP is the default connection pooling library in Spring Boot, known for its high performance and low overhead.

* To customize the connection pooling, you can modify properties like 'spring.datasource.hikari.*' in the application.properties file.

* For example, you can set maximum pool size, connection timeout, idle timeout, and other parameters to optimize performance.
17 .
How can you diagonally iterate through and print the elements of a 2D array?
Diagonally iterate through and print elements of a 2D array of strings.

* Use nested loops to iterate through rows and columns of the 2D array.

* Calculate the diagonal elements by incrementing row and column indices together.

* Print the elements as you iterate through the diagonal of the array.
18 .
What is Passport.js and why is it used?
Passport.js is an authentication middleware for Node.js.

* Passport.js provides a simple way to authenticate users with various authentication strategies such as local, OAuth, OpenID, etc.

* It is highly customizable and can be integrated with any Node.js web application framework.

* Passport.js maintains user sessions and provides a consistent API for authentication across different strategies.

* Example: Using Passport.js with Express.js to authenticate users with Google OAuth2.

* Example: Using Passport.js with MongoDB to authenticate users with a local username and password.
19 .
Why is NodeJS single-threaded?
Node.js is single-threaded to optimize performance and simplify programming.

* Node.js uses an event-driven, non-blocking I/O model.

* This allows for efficient handling of multiple requests without creating new threads.

* Node.js also uses a single event loop to manage all I/O operations.

* This simplifies programming by eliminating the need for complex thread synchronization.

* However, Node.js can still take advantage of multi-core systems by creating child processes.
20 .
What is the difference between Node.js and Express.js?
Node is a runtime environment for executing JavaScript code, while Express is a web application framework built on top of Node.

* Node provides the platform for running JavaScript code outside of a web browser

* Express is a lightweight framework that simplifies building web applications on top of Node

* Express provides features like routing, middleware, and templating that make it easier to build web applications

* Node and Express are often used together to build scalable and efficient web applications
21 .
How many Python modules have you used?
* I have used multiple python modules for various purposes.

* I have used NumPy for numerical computations.

* I have used Pandas for data analysis and manipulation.

* I have used Matplotlib for data visualization.

* I have used Flask for web development.

* I have used Requests for making HTTP requests.

* I have used BeautifulSoup for web scraping.

* I have used Scikit-learn for machine learning tasks.

* I have used TensorFlow for deep learning tasks.
22 .
Why is Next.js preferred over React.js?
* Next.js is preferred over React.js for server-side rendering, automatic code splitting, and simplified routing.

* Next.js provides built-in support for server-side rendering, improving performance and SEO.

* Automatic code splitting in Next.js allows for faster page loads by only loading necessary code.

* Next.js simplifies routing with file-based routing, making it easier to organize and navigate between pages.

* Next.js also offers features like static site generation and API routes for more flexibility and optimization.
23 .
What do the HTTP error codes 400 and 500 represent?
* HTTP error codes 400 and 500 represent client and server errors respectively.

* HTTP error code 400 indicates a client-side error, such as a bad request or invalid input.

* HTTP error code 500 indicates a server-side error, such as an internal server error or database connection issue.

* Other common client-side errors include 401 (unauthorized), 403 (forbidden), and 404 (not found).

* Other common server-side errors include 503 (service unavailable) and 504 (gateway timeout).