Filter interviews by
Meeting NFRs in payment systems involves ensuring security, performance, scalability, and compliance with regulations.
Implement strong encryption protocols (e.g., AES-256) to secure sensitive data during transactions.
Utilize load balancing and caching strategies to enhance system performance and reduce latency.
Design for scalability by using microservices architecture, allowing independent scaling of components.
En...
The Fibonacci series aids in estimating effort and complexity in Scrum, promoting better planning and prioritization.
The Fibonacci series (1, 2, 3, 5, 8, 13, ...) helps teams estimate story points for user stories.
Using Fibonacci encourages teams to avoid overthinking estimates, as larger numbers represent greater uncertainty.
For example, if a task is estimated as an 8, it indicates a higher complexity than a task...
Relative estimation is a technique used to assess the size or effort of tasks based on comparisons rather than absolute measures.
Relative estimation compares tasks to one another, making it easier to gauge effort and complexity.
Common methods include Planning Poker, where team members assign story points based on consensus.
For example, if a task is estimated at 5 points, a simpler task might be 2 points, and a mor...
Object literals are a way to define objects in JavaScript using a simple syntax of key-value pairs.
Defined using curly braces: `{ key: value }`.
Keys can be strings or identifiers, e.g., `{ name: 'John', age: 30 }`.
Values can be any data type: strings, numbers, arrays, functions, etc.
Example: `const person = { name: 'Alice', greet: function() { return 'Hello'; } };`.
Supports nested objects: `const car = { make: 'To...
What people are saying about EPAM Systems
A prime number is a natural number greater than 1 that cannot be formed by multiplying two smaller natural numbers.
A prime number has exactly two distinct positive divisors: 1 and itself.
Examples of prime numbers include 2, 3, 5, 7, 11, and 13.
The number 1 is not considered a prime number.
To check if a number n is prime, test divisibility from 2 to the square root of n.
If n is divisible by any number in that range...
Design patterns are reusable solutions to common software design problems, categorized into creational, structural, and behavioral patterns.
Creational Patterns: Deal with object creation mechanisms. Example: Singleton, Factory Method.
Structural Patterns: Focus on how classes and objects are composed. Example: Adapter, Composite.
Behavioral Patterns: Concerned with communication between objects. Example: Observer, S...
This task involves finding the second most frequently occurring letter in a given string, considering case sensitivity.
Count Occurrences: Use a dictionary to count how many times each letter appears in the string. For example, in 'hello', 'l' appears twice.
Sort by Frequency: Once you have the counts, sort the letters based on their frequency in descending order.
Identify Second Highest: After sorting, the second it...
SQL queries are used to interact with databases, allowing for data retrieval, manipulation, and management through structured commands.
SELECT Statement: Used to retrieve data from a database. Example: SELECT * FROM users;
WHERE Clause: Filters records based on specified conditions. Example: SELECT * FROM users WHERE age > 18;
JOIN Operations: Combines rows from two or more tables based on a related column. Exampl...
This program demonstrates how to call a GET API using Rest Assured and parse the response without JsonPath.
Setup Rest Assured: Include Rest Assured dependencies in your Maven or Gradle project to use its features.
Make GET Request: Use Rest Assured's given() method to specify the request and call the API with when().get().
Parse Response: Use the Response object to get the response body as a String and manually pars...
Strings in Java are immutable, meaning their values cannot be changed after creation, ensuring security and performance benefits.
Security: Immutability helps prevent unauthorized changes to string values, making them safer to use in sensitive applications.
Thread Safety: Immutable strings are inherently thread-safe, as their state cannot be altered, reducing the risk of concurrency issues.
Memory Efficiency: Java op...
I applied via LinkedIn and was interviewed in Apr 2023. There were 5 interview rounds.
Programs to check palindrome and output for multiple inheritance and method overriding
Palindrome program can be implemented using string or integer reversal and comparison
Output for multiple inheritance program depends on the specific implementation
Output for method overriding program depends on the specific implementation
Abstraction and encapsulation are OOPS concepts. Achieving abstraction in Python is through abstract classes and interfaces. Private and protected access specifiers restrict access to class members.
Abstraction is the process of hiding implementation details and showing only the necessary information to the user.
Encapsulation is the process of wrapping data and methods into a single unit and restricting access to them f...
Questions on Python concepts - generators, iterators, lambda functions, lists, and tuples.
Generators are functions that return an iterator and can be paused and resumed. They save memory and improve performance.
Iterators are objects that can be iterated upon and return data one at a time. They are less memory-efficient than generators.
Lambda functions are anonymous functions that can take any number of arguments and re...
Explaining implicit and explicit waits, handling multiple windows and exceptions in Selenium
Implicit wait: Wait for a certain amount of time before throwing an exception if the element is not found
Explicit wait: Wait for a certain condition to be met before proceeding with the next step
XPath example: //input[@id='username']
Exceptions in Selenium: NoSuchElementException, TimeoutException, ElementNotVisibleException, Sta...
To post a request in API automation, we use tools like Postman or RestAssured. Authentication is performed using tokens or API keys. Page Object Model is a design pattern used in automation testing.
To post a request, we need to specify the endpoint URL, request method, headers, and body parameters.
We can use tools like Postman or RestAssured to post requests and get responses.
Authentication can be performed using token...
Answers to questions related to pytest and robotframework
Fixtures in pytest are functions that provide a fixed baseline for tests to run on
Markers in pytest are used to mark tests with metadata such as priority or category
Robotframework architecture consists of test libraries, test cases, and keywords
Test cases in robotframework are written in a tabular format using keywords and arguments
Reports in robotframework can b...
Questions related to Git, software model, Docker, and CI/CD for Senior QA Automation Engineer position.
get fetch retrieves changes from the remote repository without merging them into the local branch
git pull retrieves changes from the remote repository and merges them into the local branch
git stash temporarily saves changes that are not ready to be committed
git rebase integrates changes from one branch into another by...
SQL query to find the 2nd highest rated movie and explanation of joins and self join.
To find the 2nd highest rated movie, use the following SQL query: SELECT TOP 1 rating FROM (SELECT DISTINCT TOP 2 rating FROM movies ORDER BY rating DESC) ORDER BY rating ASC
Joins are used to combine data from two or more tables based on a related column.
Inner join returns only the matching rows from both tables, while outer join retur...
To give all rwx permissions to a file, use chmod 777 filename. To search for specific text in a file, use grep 'text' filename.
To give all rwx permissions to a file, use the chmod command followed by 777 and the filename.
Example: chmod 777 myfile.txt
To search for specific text in a file, use the grep command followed by the text and the filename.
Example: grep 'hello' myfile.txt
Smoke testing, sanity testing and regression testing are types of software testing. Bug life cycle is the process of a bug from discovery to resolution. Traceability matrix is a document that links requirements to test cases.
Smoke testing is a quick test to check if the basic functionalities of the software are working after a new build.
Sanity testing is a quick test to check if the major functionalities of the softwar...
Testing is the process of identifying defects while quality assurance is the process of preventing defects.
Testing is a reactive process while quality assurance is a proactive process.
Testing is focused on finding defects while quality assurance is focused on preventing defects.
Testing is a subset of quality assurance.
Quality assurance involves the entire software development process while testing is limited to the tes...
Smoke testing is a quick and shallow test to ensure the basic functionality of an application. Regression testing is a comprehensive test to ensure that changes made to the application do not affect its existing functionality.
Smoke testing is performed after a new build is received and before regression testing.
Smoke testing is a subset of regression testing.
Regression testing is performed after changes are made to the...
CI/CD is a software development approach that emphasizes continuous integration, testing, and delivery.
CI/CD stands for Continuous Integration/Continuous Delivery
It involves automating the software development process to ensure that code changes are frequently and consistently tested and deployed
Xtreme Programming (XP) is an Agile software development methodology that emphasizes teamwork, communication, and feedback
Kan...
As a Senior QA Automation Engineer, I have faced various challenges and have successfully resolved them.
One challenge I faced was ensuring compatibility across different browsers and devices. I resolved this by implementing a robust cross-browser testing strategy using tools like Selenium Grid and BrowserStack.
Another challenge was dealing with complex test scenarios and data dependencies. To overcome this, I developed...
I have learned the importance of thorough testing, communication, and continuous improvement from my failures.
Thorough testing: I have learned that skipping or rushing through testing can lead to overlooked bugs and issues.
Communication: I have learned the importance of clear and effective communication with team members and stakeholders to ensure everyone is on the same page and expectations are aligned.
Continuous imp...
I am seeking new challenges and opportunities for growth in my career.
Looking for a more challenging role
Seeking opportunities for professional development
Wanting to work with new technologies or tools
Desire for a better work-life balance
Seeking a more supportive or collaborative work environment
I am looking for the role of Senior QA Automation Engineer and my expectations from EPAM are...
I am looking for a challenging role where I can utilize my skills and experience in QA automation
I expect EPAM to provide a supportive and collaborative work environment
I hope to work on cutting-edge technologies and projects
I am looking for opportunities for professional growth and advancement
I expect EPAM to value work-life...
I applied via LinkedIn and was interviewed in Nov 2024. There were 4 interview rounds.
My current day-to-day tasks involve designing and implementing data pipelines, optimizing data storage and retrieval, and collaborating with cross-functional teams.
Designing and implementing data pipelines to extract, transform, and load data from various sources
Optimizing data storage and retrieval processes for efficiency and scalability
Collaborating with cross-functional teams to understand data requirements and del...
The end-to-end project architecture involves designing and implementing the entire data pipeline from data ingestion to data visualization.
Data ingestion: Collecting data from various sources such as databases, APIs, and files.
Data processing: Cleaning, transforming, and aggregating the data using tools like Apache Spark or Hadoop.
Data storage: Storing the processed data in data warehouses or data lakes like Amazon S3 ...
Use Spark (Databricks) notebooks to migrate 1000s of tables efficiently.
Utilize Spark's parallel processing capabilities to handle large volumes of data
Leverage Databricks notebooks for interactive data exploration and transformation
Automate the migration process using scripts or workflows
Optimize performance by tuning Spark configurations and cluster settings
Understanding SQL joins is crucial for data retrieval and analysis in relational databases.
INNER JOIN: Returns records with matching values in both tables. Example: SELECT * FROM A INNER JOIN B ON A.id = B.id.
LEFT JOIN: Returns all records from the left table and matched records from the right table. Example: SELECT * FROM A LEFT JOIN B ON A.id = B.id.
RIGHT JOIN: Returns all records from the right table and matched rec...
Seeking new challenges and opportunities for growth in a more dynamic environment.
Desire for new challenges and learning opportunities
Seeking a more dynamic work environment
Looking to expand skill set and experience
Interested in working on cutting-edge technologies
Seeking better career advancement prospects
I expect EPAM to provide challenging projects, opportunities for growth, a collaborative work environment, and support for continuous learning.
Challenging projects that allow me to utilize my skills and knowledge
Opportunities for professional growth and advancement within the company
A collaborative work environment where teamwork is valued
Support for continuous learning through training programs and resources
Yes, I am willing to relocate for the right opportunity. I can join the company within 4 weeks.
Willing to relocate for the right opportunity
Can join within 4 weeks
Open to discussing relocation assistance if needed
I appeared for an interview in Feb 2025.
The code demonstrates exception handling, resulting in an output of 2 due to incrementing variable I in catch and finally blocks.
The code throws a NullPointerException which is caught in the catch block.
In the catch block, I is incremented from 0 to 1.
The finally block executes regardless of exception, incrementing I from 1 to 2.
The final output printed is the value of I, which is 2.
Identify and print duplicate names from a string array that start with 'B'.
1. Create a string array with names, e.g., ['Bob', 'Alice', 'Bill', 'Bob', 'Bobby'].
2. Use a HashMap or dictionary to count occurrences of each name.
3. Iterate through the array and check for names starting with 'B'.
4. Print names that have a count greater than 1, e.g., 'Bob' and 'Bill' if they are duplicates.
TestNG annotations are used to define test methods, configuration, and grouping in automated testing.
@Test: Marks a method as a test method. Example: @Test public void testMethod() {}
@BeforeSuite: Executes before the entire test suite. Example: @BeforeSuite public void setupSuite() {}
@AfterSuite: Executes after the entire test suite. Example: @AfterSuite public void teardownSuite() {}
@BeforeTest: Executes before any te...
In a runner class, tags help organize and filter test cases for execution in automation testing frameworks.
Tags are used to categorize tests, e.g., @smoke, @regression.
They allow selective execution, e.g., running only @smoke tests.
Tags can be combined, e.g., @regression and @critical.
In Cucumber, tags are specified in the feature file, e.g., @login.
In TestNG, tags can be implemented using groups in XML configuration.
Regression testing checks existing features after changes, while smoke testing verifies basic functionality post-deployment.
Regression testing ensures that new code changes do not adversely affect existing functionalities.
Smoke testing is a preliminary test to check if the basic functions of an application work.
Example of regression testing: After a new feature is added, testing all existing features to ensure they sti...
Custom exceptions enhance error handling in automation testing, while StaleElementReferenceException indicates a DOM element is no longer valid.
Custom Exceptions: These are user-defined exceptions that allow developers to create specific error handling scenarios tailored to their application needs.
Common Exceptions: In automation testing, I've encountered exceptions like NoSuchElementException, TimeoutException, and St...
Waits in automation testing manage timing issues between code execution and web element availability.
Implicit Wait: Sets a default wait time for the entire session. Example: driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Explicit Wait: Waits for a specific condition to occur before proceeding. Example: WebDriverWait wait = new WebDriverWait(driver, 10);
Fluent Wait: Similar to explicit wait but allows p...
BDD is a software development approach that enhances collaboration between developers, testers, and non-technical stakeholders.
Originated from Test Driven Development (TDD) to improve communication.
Focuses on defining behavior in simple language, often using Gherkin syntax.
Encourages collaboration through examples and scenarios, e.g., 'Given a user is logged in, when they click logout, then they should see the login pa...
I appeared for an interview in Feb 2025.
I applied via Naukri.com and was interviewed in Nov 2024. There was 1 interview round.
Best practices for writing PowerShell scripts
Use clear and descriptive variable names
Comment your code to explain complex logic
Handle errors gracefully with try/catch blocks
Use functions to modularize your script
Avoid hardcoding values whenever possible
To create a Private Endpoint for Azure Key Vaults, you need to configure a private link service.
Navigate to the Azure portal and search for 'Key Vaults'.
Select the Key Vault you want to create a Private Endpoint for.
In the Key Vault settings, go to 'Private endpoint connections' and click on 'Add'.
Choose the subscription, resource group, and private DNS zone for the Private Endpoint.
Review and create the Private Endpoi...
AKS allows for network configuration during creation and provides options for managing it.
During creation of AKS, network configuration options include specifying virtual network, subnet, and network policies.
Network configuration can be managed through Azure portal, Azure CLI, or ARM templates.
AKS supports network policies like Azure CNI, Kubenet, and Calico for network security and isolation.
Network configuration can...
I appeared for an interview in Feb 2025.
Questions on Python: 5 different simple python coding questions
React hooks allow functional components to manage state and side effects, enhancing code reusability and readability.
useState: Manages state in functional components. Example: const [count, setCount] = useState(0);
useEffect: Handles side effects like data fetching. Example: useEffect(() => { fetchData(); }, []);
Custom Hooks: Create reusable logic. Example: function useFetch(url) { /* logic */ }
useContext: Access con...
I appeared for an interview in Jan 2025.
Stream based problems involve processing data in a continuous flow rather than all at once.
Use stream processing libraries like Apache Kafka or Apache Flink
Consider factors like data volume, velocity, and variety
Implement backpressure mechanisms to handle high data loads
I applied via LinkedIn and was interviewed in Dec 2024. There were 2 interview rounds.
Optional in Swift allows variables to have no value. Optional binding and chaining are used to safely unwrap optionals.
Optional in Swift allows variables to have no value, denoted by a '?' after the type.
Optional binding is used to safely unwrap optionals by checking if they contain a value.
Optional chaining allows you to call methods, access properties, and subscript on an optional that might currently be nil.
Example:...
ARC stands for Automatic Reference Counting, a memory management system used in iOS to automatically manage memory allocation and deallocation.
ARC automatically tracks and manages the memory used by objects in an iOS application.
It keeps track of the number of references to an object and deallocates the object when there are no more references to it.
ARC is enabled by default in Xcode for iOS projects, reducing the need...
Closures are self-contained blocks of functionality that can be passed around and used in code.
Closures capture and store references to any constants and variables from the context in which they are defined.
To prevent strong reference cycles, use capture lists in closures.
Use weak or unowned references when capturing self inside a closure to avoid memory leaks.
Middleware is software that acts as a bridge between an operating system or database and applications, allowing them to communicate with each other.
Middleware is a layer of software that sits between the operating system and applications, providing services such as authentication, logging, and caching.
Custom middleware can be created in ASP.NET Core by implementing the IMiddleware interface and adding it to the applica...
Yes, a program can be written to convert 'aabbccaaa' to '2a2b2c3a'.
Create a function that iterates through the input string and counts the consecutive characters.
Store the count and character in a new string as needed.
Return the final output string.
I applied via Approached by Company and was interviewed in Oct 2024. There were 3 interview rounds.
TestNG annotations allow for parallel execution of test methods using attributes like 'parallel' and 'thread-count'.
TestNG annotations like @Test, @BeforeTest, @AfterTest can be used with attributes like 'parallel' to specify parallel execution of test methods.
The 'parallel' attribute can have values like 'methods', 'tests', 'classes', 'instances' to define the scope of parallel execution.
The 'thread-count' attribute c...
Some of the top questions asked at the EPAM Systems interview -
The duration of EPAM Systems interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 519 interview experiences
Difficulty level
Duration
based on 1.7k reviews
Rating in categories
Senior Software Engineer
3.6k
salaries
| ₹15 L/yr - ₹42.8 L/yr |
Software Engineer
2.2k
salaries
| ₹5.2 L/yr - ₹26 L/yr |
Lead Software Engineer
1.1k
salaries
| ₹18 L/yr - ₹53 L/yr |
Senior Systems Engineer
381
salaries
| ₹12 L/yr - ₹36.3 L/yr |
Software Developer
374
salaries
| ₹9.7 L/yr - ₹30.4 L/yr |
DXC Technology
Sutherland Global Services
Optum Global Solutions
Virtusa Consulting Services