i
Persistent Systems
Filter interviews by
I applied via Naukri.com and was interviewed in May 2021. There was 1 interview round.
Microservices can communicate through synchronous or asynchronous protocols like REST, gRPC, or message brokers.
Use RESTful APIs for synchronous communication
Use message brokers like Kafka or RabbitMQ for asynchronous communication
gRPC can be used for high-performance synchronous communication
API Gateway can be used to manage communication between microservices
Consider using service mesh like Istio or Linkerd for more
SOLID principles are a set of five design principles for writing maintainable and scalable code.
S - Single Responsibility Principle: A class should have only one reason to change.
O - Open/Closed Principle: Software entities should be open for extension but closed for modification.
L - Liskov Substitution Principle: Subtypes should be substitutable for their base types.
I - Interface Segregation Principle: Clients should ...
Find second largest integer in an array without sorting or using collections.
Iterate through array and keep track of largest and second largest integers.
Compare each element with current largest and second largest integers.
Return second largest integer.
Concurrent Hash Map is a thread-safe implementation of Hash Map.
Uses multiple segments to allow concurrent access
Each segment is a separate hash table with its own lock
Segments are dynamically added or removed based on usage
Uses CAS (Compare and Swap) operation for updates
Provides higher concurrency than synchronized Hash Map
Microservices is a design pattern where an application is broken down into small, independent services that communicate with each other.
Each service is responsible for a specific task or feature
Services communicate with each other through APIs
Each service can be developed, deployed, and scaled independently
Allows for greater flexibility, agility, and resilience
Requires a strong focus on automation, monitoring, and test
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 (
PUT is used to update an existing resource while POST is used to create a new resource.
PUT is idempotent, meaning multiple identical requests will have the same effect as a single request.
POST is not idempotent and can result in multiple resources being created if the request is sent multiple times.
PUT requires the client to send the entire updated resource while POST only requires the necessary fields to create a new ...
PUT method updates data if available, else returns success with no changes.
PUT method updates the resource if it exists, else creates a new resource
If no data is provided, the server returns a success response with no changes made
Example: PUT /users/1 with empty body will return success with no changes if user with id 1 exists
Use @PostConstruct annotation or implement CommandLineRunner interface
Use @PostConstruct annotation on a method that needs to be executed on startup
Implement CommandLineRunner interface and override run() method
Add the code that needs to be executed on startup in the method annotated with @PostConstruct or in the run() method
Example: @PostConstruct public void init() { //code to be executed on startup }
Example: public ...
The @Service annotation is a specialization of the @Component annotation and is used to indicate that a class is a service.
Both @Service and @Component annotations are used to indicate that a class is a Spring-managed component.
@Service is a specialization of @Component and is used to indicate that a class is a service layer component.
The @Service annotation is used to add a layer of abstraction between the controller ...
Many-to-many relationship in Hibernate without common columns
Create a third table with foreign keys to both tables
Use @ManyToMany annotation in both entity classes
Specify the join table name and column names in @JoinTable annotation
A composite primary key is a primary key that consists of two or more columns.
A composite primary key is used when a single column cannot uniquely identify a record.
It is created by combining two or more columns that together uniquely identify a record.
Each column in a composite primary key must be unique and not null.
Example: A table of orders may have a composite primary key consisting of order number and customer ID
I was interviewed 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 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.
HashMap in Java is a data structure that stores key-value pairs and uses hashing to efficiently retrieve values based on keys.
HashMap uses an array of buckets to store key-value pairs.
Keys are hashed to determine the index in the array where the key-value pair will be stored.
In case of hash collisions, a linked list or a balanced tree is used to store multiple key-value pairs in the same bucket.
HashMap allows null keys...
Function to find and return all non-repeating characters in an array of strings.
Iterate through the array and count the occurrences of each character using a HashMap.
Then iterate through the array again and check if the count of each character is 1, if so add it to the result list.
Return the list of non-repeating characters.
To find the 3rd highest salary in a database, we can use a SQL query with the 'LIMIT' and 'OFFSET' keywords.
Use a SQL query with 'ORDER BY salary DESC' to sort the salaries in descending order.
Use 'LIMIT 1 OFFSET 2' to skip the first two highest salaries and retrieve the third highest salary.
Example: SELECT salary FROM employees ORDER BY salary DESC LIMIT 1 OFFSET 2;
A qualifier in Java is used to specify additional information about a primary, which is the main data type or variable.
A primary in Java is the main data type or variable, while a qualifier provides additional information about the primary.
Qualifiers can be used to modify the behavior or characteristics of a primary.
For example, in Java, 'final' is a qualifier that can be used to make a variable constant.
The main difference is that @RestController is a specialized version of @Controller that is used for RESTful web services.
Both @Controller and @RestController are used in Spring MVC to handle HTTP requests, but @RestController is specifically used for RESTful web services.
@Controller is used to create web pages, while @RestController is used to return data in JSON or XML format.
@RestController is a convenience annotati...
OOP concepts include inheritance, encapsulation, polymorphism, and abstraction.
Inheritance: Allows a class to inherit properties and behavior from another class. Example: class Dog extends Animal.
Encapsulation: Bundling data and methods that operate on the data into a single unit. Example: private variables with public getter and setter methods.
Polymorphism: Ability for objects to be treated as instances of their paren...
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...
Microservice endpoints can be accessed using HTTP requests with the appropriate URL
Use HTTP methods like GET, POST, PUT, DELETE to interact with the microservice
Construct the URL with the base URL of the microservice and the specific endpoint path
Include any necessary headers or parameters in the request for authentication or data filtering
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.
Persistent Systems interview questions for popular designations
I was interviewed in Jan 2025.
Get interview-ready with Top Persistent Systems Interview Questions
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 was interviewed 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.
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 was interviewed in Sep 2024.
Project roadmap and risk assessment
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
RPA stands for Robotic Process Automation, which involves using software robots to automate repetitive tasks.
RPA uses software robots to automate repetitive tasks, mimicking human actions.
It can be used to streamline business processes, increase efficiency, and reduce human error.
RPA tools can interact with existing applications, extract data, and perform tasks across multiple systems.
Examples of RPA tools include UiPa
RE-Framework is a Robotic Enterprise Framework for automating business processes using UiPath.
RE-Framework is a template designed by UiPath for building scalable and efficient automation projects.
It includes pre-built workflows for exception handling, logging, and reusability of components.
RE-Framework follows a state machine design pattern to manage the flow of automation.
It allows for easy integration of new processe
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 543 interviews
Interview experience
based on 3.9k reviews
Rating in categories
Software Engineer
4.4k
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior Software Engineer
3.9k
salaries
| ₹0 L/yr - ₹0 L/yr |
Lead Engineer
3.2k
salaries
| ₹0 L/yr - ₹0 L/yr |
Lead Software Engineer
3k
salaries
| ₹0 L/yr - ₹0 L/yr |
Project Lead
1.9k
salaries
| ₹0 L/yr - ₹0 L/yr |
Cognizant
TCS
IBM
Wipro