EPAM Systems
20+ Interview Questions and Answers
Q1. What are the ways to iterate on collections
Ways to iterate on collections in software engineering
For loop
While loop
Foreach loop
Iterator
Stream API
Lambda expressions
Q2. How to make a list immutable in custom objects
To make a list immutable in custom objects, use the 'tuple' data type instead of 'list'.
Replace the 'list' data type with 'tuple' to create an immutable list.
Tuples are similar to lists but cannot be modified once created.
Immutable lists provide data integrity and prevent accidental modifications.
Q3. What are the different type of operating models used in Collibra?
Collibra uses centralized, decentralized, and federated operating models.
Centralized operating model: decision-making authority is held by a central team or individual.
Decentralized operating model: decision-making authority is distributed across different teams or individuals.
Federated operating model: a combination of centralized and decentralized models, with some decisions made centrally and others made by distributed teams.
Example: Collibra may use a centralized operatin...read more
Q4. Linked List - find middle element in the linked list
To find the middle element in a linked list, use two pointers - one moving at twice the speed of the other.
Initialize two pointers - slow and fast - both pointing to the head of the linked list
Move the slow pointer one step at a time and the fast pointer two steps at a time
When the fast pointer reaches the end of the linked list, the slow pointer will be pointing to the middle element
Q5. Exception handling in a microservice architecture
Exception handling is crucial in microservices to ensure fault tolerance and reliability.
Each microservice should have its own exception handling mechanism.
Exceptions should be logged and monitored for analysis and improvement.
Use circuit breakers and retries to handle transient errors.
Consider using a centralized exception management system for better visibility.
Ensure error messages are clear and informative for easier debugging.
Q6. which is best architecture you have seen yet?
The microservices architecture is the best architecture I have seen so far.
Scalability: Allows for independent scaling of different components
Resilience: Failure in one service does not bring down the entire system
Flexibility: Easier to update and deploy new features
Decentralization: Each service can be developed and deployed independently
Q7. Explain the architecture of the current project.
The current project follows a microservices architecture.
The project is divided into multiple small services that communicate with each other through APIs.
Each service is responsible for a specific functionality.
The services are deployed independently and can be scaled as per the requirement.
The architecture allows for easy maintenance and updates.
Examples of services include user management, payment gateway, and inventory management.
Q8. What is different between forkjoin and join
ForkJoin is a method used in parallel programming to split tasks into smaller subtasks and join is used to wait for the completion of those subtasks.
ForkJoin is used for parallel processing, while join is used for synchronization.
ForkJoin allows tasks to be split into smaller tasks that can be executed concurrently, while join waits for all tasks to complete before proceeding.
In Java, ForkJoin framework provides ForkJoinPool for executing ForkJoinTasks, while join is a method...read more
Q9. Internal working of Spring boot.
Spring Boot is a framework that simplifies the development of Java applications.
Spring Boot provides a pre-configured environment for building and deploying applications.
It uses an embedded server, such as Tomcat or Jetty, to run the application.
It also includes a variety of starter dependencies, which can be easily added to the project.
Spring Boot uses auto-configuration to automatically configure the application based on the dependencies added.
It also provides a variety of ...read more
Q10. What is the main purpose of Interfaces
Interfaces in software engineering are used to define a contract for classes to implement certain methods or properties.
Interfaces define a set of methods or properties that a class must implement.
They allow for polymorphism, where different classes can be treated as instances of the same interface.
Interfaces help in achieving loose coupling between classes.
They are commonly used in languages like Java and C#.
Example: defining an interface 'Shape' with methods like 'calculate...read more
Q11. Write a extension method to check a string length
Extension method to check string length
Create a static class with a static method that takes a string parameter
Use the string.Length property to get the length of the string
Return true if the length is greater than 0, false otherwise
Q12. print the count of words in a list
Count the number of words in a list of strings
Iterate through the list of strings
Split each string by spaces to get individual words
Increment a counter for each word encountered
Q13. What is lamda function
A lambda function is a small anonymous function defined without a name.
Used for short, simple operations
Can take any number of arguments, but can only have one expression
Commonly used in functional programming languages like Python
Q14. what is execution context?
Execution context refers to the environment in which a piece of code is executed, including variables, scope, and this keyword.
Execution context includes variables, scope chain, and the value of the this keyword.
There are three types of execution contexts: global, function, and eval.
Each function call creates a new execution context, which is pushed onto the call stack.
Lexical environment and variable environment are part of the execution context.
Q15. How to optimise sp
Optimizing SP involves improving performance and efficiency of stored procedures in a database.
Identify and eliminate unnecessary or redundant code
Use appropriate indexing to speed up data retrieval
Avoid using cursors and loops whenever possible
Consider parameterizing queries to improve execution plan caching
Regularly monitor and analyze performance metrics to identify bottlenecks
Q16. What is closure?
Closure is a function that captures the environment in which it was created, allowing it to access variables from its outer scope even after the outer function has finished executing.
Closure allows a function to access variables from its outer scope even after the outer function has finished executing.
It 'closes over' the variables in its lexical scope, preserving their values.
Closure is commonly used in event handlers, callbacks, and asynchronous code.
Example: function outer...read more
Q17. check if strings are anagrams
Check if strings are anagrams by sorting characters and comparing
Sort characters in each string and compare if they are equal
Use a hashmap to count characters in each string and compare the counts
Example: 'listen' and 'silent' are anagrams
Q18. Event handler in dotnet
Event handler in dotnet is a function that responds to events triggered by user actions or system events.
Event handlers are used to handle events like button clicks, mouse movements, etc.
In .NET, event handlers are typically defined using delegates.
Example: handling a button click event in a Windows Forms application.
Q19. JavaScript array method
JavaScript array method is used to manipulate arrays in JavaScript.
Some common array methods include push(), pop(), shift(), unshift(), splice(), slice(), concat(), and join().
Example: let arr = ['apple', 'banana', 'orange']; arr.push('grape'); // ['apple', 'banana', 'orange', 'grape']
Example: let arr = ['apple', 'banana', 'orange']; arr.pop(); // ['apple', 'banana']
Q20. Find duplicates in a string
Use a hash set to find duplicates in a string efficiently.
Create a hash set to store characters as you iterate through the string.
If a character is already in the hash set, it is a duplicate.
Return the set of duplicates found.
Q21. Working of LRU cache
LRU cache is a data structure that stores the most recently used items and discards the least recently used items.
LRU stands for Least Recently Used
It has a fixed size and when it reaches its limit, the least recently used item is removed to make space for a new item
It uses a doubly linked list and a hash map to achieve O(1) time complexity for both insertion and deletion
Example: A web browser caching the most recently visited web pages to improve performance
Q22. HashMap principles
HashMap principles involve key-value pairs, hashing, and efficient retrieval.
HashMap stores key-value pairs using hashing for efficient retrieval.
Keys must be unique but values can be duplicated.
HashMap allows null keys and values.
HashMap is not synchronized, use ConcurrentHashMap for thread safety.
Interview Process at null
Top Software Engineer Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month