i
Persistent
Systems
Work with us
Filter interviews by
I address attrition by fostering a positive work environment, enhancing employee engagement, and implementing retention strategies.
Conduct regular one-on-one meetings to understand employee concerns and career aspirations.
Implement employee recognition programs to celebrate achievements, such as 'Employee of the Month' awards.
Provide opportunities for professional development through training and workshops, like p...
KRA (Key Result Area) and KPI (Key Performance Indicator) are metrics used to evaluate performance and success in various roles.
KRA defines the specific areas where an employee is expected to achieve results, e.g., sales targets.
KPI measures the performance against the KRA, e.g., percentage of sales target achieved.
KRA is broader and focuses on outcomes, while KPI is specific and quantifiable.
Example of KRA: Custo...
Urgency refers to the speed of response needed, while priority indicates the importance of the issue in ITIL processes.
Urgency is about how quickly a resolution is needed; for example, a system outage may be urgent.
Priority is determined by the impact on the business; for instance, a critical application failure has high priority.
An urgent issue might not always be high priority; e.g., a minor bug affecting a non-...
ITIL is a framework for IT service management that aligns IT services with business needs.
ITIL stands for Information Technology Infrastructure Library.
It provides best practices for delivering IT services effectively.
The framework is divided into five stages: Service Strategy, Service Design, Service Transition, Service Operation, and Continual Service Improvement.
For example, in Service Design, organizations cre...
Automation execution can encounter various exceptions, impacting test reliability and results.
Timeout Exceptions: Occur when a test waits too long for an element to appear, e.g., waiting for a button that never loads.
Element Not Found: Happens when the automation script cannot locate a UI element, e.g., a missing input field on a form.
Stale Element Reference: Occurs when a web element is no longer attached to the ...
Method overloading allows multiple methods with the same name but different parameters; overriding replaces a method in a subclass.
Method Overloading: Same method name, different parameter types or counts. Example: 'add(int a, int b)' and 'add(double a, double b)'.
Method Overriding: Redefining a method in a subclass that already exists in the parent class. Example: 'void display()' in both parent and child.
Overloa...
JDK is a development kit, JRE is a runtime environment, and JVM is the virtual machine for executing Java bytecode.
JDK (Java Development Kit) includes tools for developing Java applications, such as compilers and debuggers.
JRE (Java Runtime Environment) provides the libraries and components necessary to run Java applications but does not include development tools.
JVM (Java Virtual Machine) is the engine that execu...
The event loop is a programming construct that manages asynchronous operations in JavaScript, enabling non-blocking execution.
Single Threaded: JavaScript runs on a single thread, meaning it can only execute one operation at a time, which is managed by the event loop.
Call Stack: The event loop works with the call stack, where functions are executed in a last-in, first-out manner.
Web APIs: Asynchronous operations li...
Event-driven programming in JavaScript enables responsive and interactive applications by reacting to user actions and events.
Asynchronous Handling: JavaScript uses event-driven programming to handle asynchronous events, allowing the application to remain responsive while waiting for tasks like API calls.
User Interaction: Events such as clicks, key presses, and mouse movements can trigger functions, enabling dynam...
The server-side model processes requests on the server, generating dynamic content and managing data before sending it to the client.
Request Handling: The server receives requests from clients, processes them, and sends back responses, often using frameworks like Express.js.
Dynamic Content Generation: Server-side applications can generate HTML dynamically based on user input or database queries, e.g., rendering a ...
I appeared for an interview in Jan 2016.
Prediction uses data analysis and statistical models to forecast future outcomes.
Prediction involves collecting and analyzing data to identify patterns and trends.
Statistical models are then used to make predictions based on the identified patterns.
Predictions can be made for a wide range of applications, such as weather forecasting, stock market trends, and customer behavior.
Accuracy of predictions can be improved by ...
Classification algorithms can be represented using flow charts.
Classification algorithms are used to categorize data into different classes.
Flow charts can be used to represent the decision-making process of classification algorithms.
Examples of classification algorithms include decision trees, k-nearest neighbors, and support vector machines.
Deadlocks are situations where two or more processes are unable to proceed because each is waiting for the other to release a resource.
Deadlocks occur when multiple processes are stuck in a circular waiting state.
Prevention techniques include resource allocation strategies, deadlock detection, and avoidance algorithms.
Examples of prevention techniques are using a resource allocation graph, implementing a banker's algor...
Banker's algorithm is a resource allocation and deadlock avoidance algorithm used in operating systems.
It is used to prevent deadlocks by ensuring that the system never enters an unsafe state.
It works by simulating the allocation of resources and checking if the system will remain in a safe state.
It requires knowledge of the maximum resource needs of each process and the currently available resources.
If a request for r...
Public and private IP addresses are used in computer networks. Public IPs are globally unique and accessible from the internet, while private IPs are used within a local network.
Public IP is assigned by the Internet Service Provider (ISP) and is used to identify a device on the internet.
Private IP is assigned by a local network administrator and is used to identify a device within a local network.
Public IPs are globall...
A message is transferred in OSI layer through a process called encapsulation and decapsulation.
The message is divided into smaller chunks called packets at the transport layer.
Each packet is then encapsulated with headers containing necessary information.
The encapsulated packets are then passed down to the network layer.
At the network layer, the packets are further encapsulated with network layer headers.
The encapsulat...
Polymorphism is the ability of an object to take on many forms. It allows objects of different classes to be treated as the same type.
Polymorphism is achieved through method overriding and method overloading.
It allows for code reusability and flexibility in object-oriented programming.
Three conditions for polymorphism are inheritance, method overriding, and a common interface or base class.
Interoperability in inheritance and polymorphism allows objects of different classes to be used interchangeably.
Inheritance allows a subclass to inherit properties and methods from a superclass.
Polymorphism allows objects of different classes to be treated as if they are of the same class.
Interoperability between inheritance and polymorphism allows objects of different classes to be used interchangeably.
For example, a ...
Transaction logs are records of all the changes made to a database or file system.
They help in recovering data in case of system failure or errors.
They provide a history of all the transactions made to the database or file system.
They are used for auditing and compliance purposes.
Examples include SQL Server transaction logs, file system transaction logs, etc.
C is a procedural programming language while C++ is an object-oriented programming language.
C is a procedural programming language, meaning it focuses on procedures or functions.
C++ is an extension of C and adds object-oriented features like classes and inheritance.
C++ supports polymorphism, encapsulation, and abstraction, which C lacks.
C++ allows the use of standard template library (STL) for data structures and algor...
I have worked on various technologies including Java, Python, and SQL.
Java - used for developing enterprise-level applications
Python - used for scripting, web development, and data analysis
SQL - used for managing and querying databases
Thrashing is a phenomenon in computer systems where excessive swapping of data between RAM and virtual memory occurs.
Occurs when a computer spends more time swapping data between RAM and virtual memory than executing actual tasks
Can be caused by insufficient RAM or poorly optimized programs
Can lead to a significant decrease in system performance
Example: A computer running multiple memory-intensive programs simultaneous...
Java is platform independent while C++ is not.
Java code is compiled into bytecode which can run on any platform with a JVM, while C++ code needs to be compiled separately for each platform.
Java has automatic memory management through garbage collection, while C++ requires manual memory management.
Java has built-in support for multithreading, while C++ requires external libraries.
Java has a simpler syntax and is easier ...
Persistence is important for storing data permanently and ensuring data integrity.
Persistent storage allows data to be saved even after the application is closed or the system is restarted.
It ensures data integrity by preventing data loss in case of system failures.
Persistent data can be accessed and shared across different sessions or devices.
Examples: databases, file systems, cloud storage.
I found the GD to be well-organized and productive.
The GD had a clear agenda and all participants were given equal opportunity to express their views.
The facilitator ensured that the discussion stayed on track and encouraged active participation.
I appreciated the diverse perspectives brought by the participants, which enriched the discussion.
Examples: One of the participants shared a real-life case study that added dep...
I rate my HR interview as positive overall, with room for improvement in certain areas.
Overall, I felt the HR interview was well-structured and professional.
I appreciated the opportunity to discuss my skills and experiences in depth.
However, I felt that some questions were repetitive and could have been more engaging.
I believe the interview process could benefit from more focus on technical skills and problem-solving a...
I would recommend John and Sarah for their strong technical skills and ability to work well in a team.
John has a deep understanding of algorithms and data structures, and consistently delivers high-quality code.
Sarah is a quick learner and has a knack for problem-solving, often coming up with innovative solutions.
Both John and Sarah have excellent communication skills and collaborate effectively with their peers.
I appeared for an interview in Jan 2025.
The Java Virtual Machine (JVM) is an abstract computing machine that enables a computer to run Java programs.
JVM is platform-independent and converts Java bytecode into machine code.
It consists of class loader, runtime data areas, execution engine, and native method interface.
JVM memory is divided into method area, heap, stack, and PC register.
Examples of JVM implementations include Oracle HotSpot, OpenJ9, and GraalVM.
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 ...
Best practices for optimizing a Spring Boot application
Use Spring Boot Actuator to monitor and manage application performance
Implement caching mechanisms like Spring Cache to reduce database calls
Optimize database queries and indexes for better performance
Use asynchronous processing with Spring's @Async annotation for non-blocking operations
Profile and analyze application performance using tools like VisualVM or JProfi...
A heap dump is a snapshot of the memory usage of a Java application at a specific point in time.
Heap dumps can be generated using tools like jmap or VisualVM.
They provide detailed information about objects in memory, their sizes, and references.
Analyzing a heap dump can help identify memory leaks by pinpointing objects that are consuming excessive memory.
Common signs of memory leaks in a heap dump include a large numbe...
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.
I appeared for an interview in Feb 2025.
Flattening an array involves converting a multi-dimensional array into a single-dimensional array without using the flat method.
Use reduce: You can use the reduce method to iterate through the array and concatenate elements. Example: `arr.reduce((acc, val) => acc.concat(val), [])`.
Use recursion: Create a function that checks if an element is an array and flattens it recursively. Example: `function flatten(arr) { ret...
Implementing a counter in React without useState can be achieved using refs for mutable state management.
Using useRef: You can create a mutable reference using useRef to store the counter value, which persists across renders.
Example: const countRef = useRef(0); to initialize the counter.
Updating the Counter: Use a function to increment the value, e.g., countRef.current += 1; to update the counter.
Triggering Re-renders:...
Using Context API to manage API data in a React application.
Create a Context using React.createContext().
Build a Provider component that fetches data from an API.
Use useEffect to make the API call when the component mounts.
Store the fetched data in a state variable using useState.
Pass the data and any necessary functions through the Provider's value.
Consume the context in child components using useContext.
I applied via Walk-in and was interviewed in Nov 2024. There were 3 interview rounds.
It's walkin, so they conducted 1 technical mcqs round.
Microservices communicate with each other through various communication protocols like HTTP, messaging queues, and gRPC.
Microservices can communicate over HTTP using RESTful APIs.
Messaging queues like RabbitMQ or Kafka can be used for asynchronous communication between microservices.
gRPC is a high-performance, open-source RPC framework that can be used for communication between microservices.
Service discovery mechanism...
Microservices allow for modular, scalable, and flexible software development by breaking down applications into smaller, independent services.
Microservices enable easier maintenance and updates as each service can be developed, deployed, and scaled independently.
They improve fault isolation, as failures in one service do not necessarily affect the entire application.
Microservices promote agility and faster time-to-mark...
I applied via Naukri.com and was interviewed in Dec 2024. There were 3 interview rounds.
Use Java Streams to find pairs in an array that sum to 11.
Use IntStream.range to iterate through the array indices.
For each element, check if there's a complement (11 - current element) in the array.
Use a Set to store seen numbers for efficient lookup.
Example: For array [1, 10, 2, 9, 3, 8], pairs are (10, 1), (9, 2), (8, 3).
I appeared for an interview in Jan 2025.
In Linux shell scripting, use the -e flag to check if a file exists.
Use the command: if [ -e $filename ]; then echo 'File exists'; fi
The -e flag checks for the existence of a file or directory.
You can also use -f for regular files: if [ -f $filename ]; then echo 'Regular file exists'; fi
For directories, use -d: if [ -d $dirname ]; then echo 'Directory exists'; fi
This task involves removing a specified number of characters from a string based on asterisks indicating the count.
Identify the number of asterisks in the string to determine how many characters to remove.
Use string slicing to remove the specified characters from the original string.
Example: For 'Persis****', remove 4 characters to get 'Pe'.
Consider edge cases, such as when the number of asterisks exceeds the length of...
I applied via Naukri.com and was interviewed in Oct 2024. There were 2 interview rounds.
Business Analyst (BA) focuses on understanding business needs and requirements, while Product Owner (PO) focuses on defining and prioritizing product features.
BA analyzes business processes and systems to identify areas for improvement, while PO works closely with stakeholders to define product features and prioritize the product backlog.
BA typically works on multiple projects simultaneously, while PO is dedicated to a...
I appeared for an interview in Jan 2025.
A Java program to find and replace specified characters with corresponding numbers in an array of strings.
Iterate through each string in the array
Count the occurrences of specified characters
Replace the characters with corresponding numbers
Return the modified array of strings
Separate even and odd numbers in an array, placing even numbers on the right side and odd numbers on the left side.
Iterate through the array and check if each element is even or odd.
Create two separate arrays to store even and odd numbers.
Append even numbers to one array and odd numbers to another.
Finally, combine the two arrays with even numbers on the right and odd numbers on the left.
I applied via Naukri.com and was interviewed in Aug 2024. There were 2 interview rounds.
I am a Senior Data Engineer with experience in developing data pipelines and optimizing data storage for various projects.
Developed data pipelines using Apache Spark for real-time data processing
Optimized data storage using technologies like Hadoop and AWS S3
Worked on a project to analyze customer behavior and improve marketing strategies
My day-to-day job in the project involved designing and implementing data pipelines, optimizing data workflows, and collaborating with cross-functional teams.
Designing and implementing data pipelines to extract, transform, and load data from various sources
Optimizing data workflows to improve efficiency and performance
Collaborating with cross-functional teams including data scientists, analysts, and business stakeholde...
DAGs handle fault tolerance by rerunning failed tasks and maintaining task dependencies.
DAGs rerun failed tasks automatically to ensure completion.
DAGs maintain task dependencies to ensure proper sequencing.
DAGs can be configured to retry failed tasks a certain number of times before marking them as failed.
Shuffling is the process of redistributing data across partitions in a distributed computing environment.
Shuffling is necessary when data needs to be grouped or aggregated across different partitions.
It can be handled efficiently by minimizing the amount of data being shuffled and optimizing the partitioning strategy.
Techniques like partitioning, combiners, and reducers can help reduce the amount of shuffling in MapRed...
Repartition increases or decreases the number of partitions in a DataFrame, while Coalesce only decreases the number of partitions.
Repartition can increase or decrease the number of partitions in a DataFrame, leading to a shuffle of data across the cluster.
Coalesce only decreases the number of partitions in a DataFrame without performing a full shuffle, making it more efficient than repartition.
Repartition is typically...
Incremental data is handled by identifying new data since the last update and merging it with existing data.
Identify new data since last update
Merge new data with existing data
Update data warehouse or database with incremental changes
SCD stands for Slowly Changing Dimension, a concept in data warehousing to track changes in data over time.
SCD is used to maintain historical data in a data warehouse.
There are three types of SCD - Type 1, Type 2, and Type 3.
Type 1 SCD overwrites old data with new data.
Type 2 SCD creates a new record for each change, preserving history.
Type 3 SCD maintains both old and new values in the same record.
SCD is important for...
Reverse a string using SQL and Python codes.
In SQL, use the REVERSE function to reverse a string.
In Python, use slicing with a step of -1 to reverse a string.
Use Spark and SQL to find the top 5 countries with the highest population.
Use Spark to load the data and perform data processing.
Use SQL queries to group by country and sum the population.
Order the results in descending order and limit to top 5.
Example: SELECT country, SUM(population) AS total_population FROM table_name GROUP BY country ORDER BY total_population DESC LIMIT 5
To find different records for different joins using two tables
Use the SQL query to perform different joins like INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN
Identify the key columns in both tables to join on
Select the columns from both tables and use WHERE clause to filter out the different records
A catalyst optimizer is a query optimization tool used in Apache Spark to improve performance by generating an optimal query plan.
Catalyst optimizer is a rule-based query optimization framework in Apache Spark.
It leverages rules to transform the logical query plan into a more optimized physical plan.
The optimizer applies various optimization techniques like predicate pushdown, constant folding, and join reordering.
By o...
Used query optimization techniques to improve performance in database queries.
Utilized indexing to speed up search queries.
Implemented query caching to reduce redundant database calls.
Optimized SQL queries by restructuring joins and subqueries.
Utilized database partitioning to improve query performance.
Used query profiling tools to identify and optimize slow queries.
Merging two schemas in PySpark involves combining DataFrames with different structures into a unified format.
Use the `unionByName()` method to merge DataFrames with different column names.
Example: df1.unionByName(df2, allowMissingColumns=True) merges df1 and df2, filling missing columns with nulls.
For schema evolution, use `mergeSchema` option when reading from Parquet files.
Example: spark.read.option('mergeSchema', 't...
Use the len() function to check the length of the data frame.
Use len() function to get the number of rows in the data frame.
If the length is 0, then the data frame is empty.
Example: if len(df) == 0: print('Data frame is empty')
Cores and worker nodes are decided based on the workload requirements and scalability needs of the data processing system.
Consider the size and complexity of the data being processed
Evaluate the processing speed and memory requirements of the tasks
Take into account the parallelism and concurrency needed for efficient data processing
Monitor the system performance and adjust cores and worker nodes as needed
Enforcing schema ensures that data conforms to a predefined structure and rules.
Ensures data integrity by validating incoming data against predefined schema
Helps in maintaining consistency and accuracy of data
Prevents data corruption and errors in data processing
Can lead to rejection of data that does not adhere to the schema
I appeared for an interview in Jun 2025, where I was asked the following questions.
Experienced Project Manager with a focus on delivering complex projects on time and within budget while navigating various challenges.
Managing diverse teams: Coordinating efforts among team members with different skill sets and backgrounds can be challenging.
Stakeholder communication: Ensuring all stakeholders are aligned and informed can lead to conflicts if not handled properly.
Resource allocation: Balancing limited ...
I address attrition by fostering a positive work environment, enhancing employee engagement, and implementing retention strategies.
Conduct regular one-on-one meetings to understand employee concerns and career aspirations.
Implement employee recognition programs to celebrate achievements, such as 'Employee of the Month' awards.
Provide opportunities for professional development through training and workshops, like projec...
I applied via Recruitment Consulltant and was interviewed in Dec 2024. There was 1 interview round.
Terraform daily tasks involve infrastructure provisioning, configuration management, and automation.
Creating and managing infrastructure using Terraform scripts
Updating and modifying existing infrastructure as needed
Automating deployment processes for applications
Implementing version control for Terraform configurations
Monitoring and troubleshooting Terraform deployments
What people are saying about Persistent Systems
The duration of Persistent Systems interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 597 interview experiences
Difficulty level
Duration
based on 4.4k reviews
Rating in categories
Software Engineer
4.6k
salaries
| ₹4.7 L/yr - ₹11.1 L/yr |
Senior Software Engineer
4.6k
salaries
| ₹6.8 L/yr - ₹18.7 L/yr |
Lead Software Engineer
3.7k
salaries
| ₹9.4 L/yr - ₹17.2 L/yr |
Lead Engineer
3.5k
salaries
| ₹14 L/yr - ₹25 L/yr |
Project Lead
2.2k
salaries
| ₹21 L/yr - ₹36 L/yr |
Cognizant
TCS
IBM
LTIMindtree