
EPAM Systems Interview Experience
EPAM Systems Interview Experience for Fresher Junior Software Engineer, Feb 2026
Junior Software Engineer
Fresher
Campus
6 months
60% in 10th and 12th, and 70% in graduation (Salary Package: 8.48 LPA)
Computer Science Engineering
4 Rounds
Application Experience
It was an on-campus opportunity, and I was excited to apply for this role. I filled out the application form and was shortlisted for the initial online assessment round, which I successfully qualified for, and then moved on to the Group Discussion. After that, I appeared for the technical round, followed by the managerial round, but in the end, I was not selected.
Preparation
Topics Prepared: DSA, OOPs, graph algorithms, DBMS, OS, JavaScript, SQL, Python, and Java fundamentals
Preparation Tips
Tip 1: Solve at least two DSA questions every day. Tip 2: Keep notes of your approach and revise them twice a week. Tip 3: Focus on understanding and building the logic on your own.
Resume Tips
Tip 1: Use action keywords to improve your resume’s ranking. Tip 2: Use numerical indicators to show the results or impact of your projects.
Interview Rounds (4)
Detailed breakdown of each evaluation round, questions asked, and candidate approaches.
Round 1 — Online Coding Interview
Problems & Questions Asked (3)
Rotation
You are given an array 'arr' having 'n' distinct integers sorted in ascending order. The array is right rotated 'r' times Find the minimum value of 'r'. Right rotating an array means shifting the element at 'ith' index to (‘i+1') mod 'n' index, for all 'i' from 0 to ‘n-1'. Example: Input: 'n' = 5 , ‘arr’ = [3, 4, 5, 1, 2] Output: 3 Explanation: If we rotate the array [1 ,2, 3, 4, 5] right '3' times then we will get the 'arr'. Thus 'r' = 3. Input format: The first line contains an integer ‘n’, representing the size of the array ‘arr’. The second line contains ‘n’ integers, elements of ‘arr’. Output Format: Return an integer, value of ‘r’. Note: You don’t need to print anything, it has already been taken care of, just complete the given function.
I used a straightforward brute-force approach. Since the array was originally sorted in ascending order, I traversed it once while keeping track of the minimum element and its index. The index at which this minimum element occurred was the answer.
String Mismatch Finder
You are given two strings, s1 and s2, which are guaranteed to be of the same length. Your task is to compare these two strings character by character and identify all the positions (indices) where they differ. You need to return a list of these 0-indexed positions. Input Format: The first line of input contains the string s1. The second line of input contains the string s2. Output Format: Print a single line containing the 0-indexed positions where the characters differ, sorted in ascending order and separated by single spaces. If the two strings are identical (no mismatches), print a single line with the value -1. Note: The comparison is case-sensitive. 'a' and 'A' are considered different. The strings are guaranteed to have the same length.
My approach is simple and linear. I initialize a counter to zero and then traverse both strings character by character. At each index, I check if the characters are different, and if so, I increment the counter. After completing the traversal, the counter gives the total number of differing positions.
LRU Cache Implementation
Design and implement a data structure for Least Recently Used (LRU) cache to support the following operations: 1. get(key) - Return the value of the key if the key exists in the cache, otherwise return -1. 2. put(key, value), Insert the value in the cache if the key is not already present or update the value of the given key if the key is already present. When the cache reaches its capacity, it should invalidate the least recently used item before inserting the new item. You will be given ‘Q’ queries. Each query will belong to one of these two types: Type 0: for get(key) operation. Type 1: for put(key, value) operation. Note : 1. The cache is initialized with a capacity (the maximum number of unique keys it can hold at a time). 2. Access to an item or key is defined as a get or a put operation on the key. The least recently used key is the one with the oldest access time. Input Format : The first line of input contains two space-separated integers 'C' and 'Q', denoting the capacity of the cache and the number of operations to be performed respectively. The next Q lines contain operations, one per line. Each operation starts with an integer which represents the type of operation. If it is 0, then it is of the first type and is followed by one integer key. If it is 1, it is of the second type and is followed by two space-separated integers key and value(in this order). Output Format : For each operation of type 0, print an integer on a single line, denoting the value of the key if the key exists, otherwise -1. Note : You don't need to print anything, it has already been taken care of. Just implement the given function. Constraints : 1 <= C <= 10^4 1 <= Q <= 10^5 1 <= key, value <= 10^9 Time Limit: 1 sec Sample Input 1 : 3 11 1 1 1 1 2 2 1 3 3 1 4 5 0 3 0 1 0 4 1 2 3 0 1 0 3 0 2 Sample Output 1 : 3 -1 5 -1 3 3 Explanation to Sample Input 1 : Initializing a cache of capacity 3, LRUCache cache = new LRUCache(3); Then each operation is performed as shown in the above figure. cache.put(1,1) cache.put(2,2) cache.put(3,3) cache.put(4,5) cache.get(3) // returns 3 cache.get(1) // returns -1 cache.get(2) // returns 2 cache.put(5,5) cache.get(4) // returns -1 cache.get(3) // returns 3 Sample Input 2 : 2 6 1 1 1 1 2 2 0 2 1 3 3 0 3 0 1 Sample Output 2 : 2 3 -1
Solved the Least Recently Used (LRU) Cache problem by designing an efficient cache system with O(1) operations. Implemented a combination of a HashMap for quick key-value access and a doubly linked list to maintain the order of recently used elements. Ensured that every access (get) updates the usage order, and during insertion (put), handled capacity constraints by removing the least recently used item. This approach optimizes both performance and memory management while strictly following the LRU eviction policy.
Round 2 — Group Discussion
The topic for the discussion was “How to design a hiring process that minimizes cheating and ensures fair evaluation.”
Round 3 — Face to Face
Problems & Questions Asked (2)
River Crossing
How do you get a lion, a goat, and a cabbage across a river using a single-passenger boat without any of them eating each other?
Tip 1: Go through the most frequently asked interview puzzles. Tip 2: Stay calm and try to understand the problem without hesitation.
Remove Duplicates from Sorted Array
You are given a sorted integer array 'arr' of size 'n' . You need to remove the duplicates from the array such that each element appears only once. Return the length of this new array. Note: Do not allocate extra space for another array. You need to do this by modifying the given input array in place with O(1) extra memory. For example: 'n' = 5, 'arr' = [1 2 2 2 3]. The new array will be [1 2 3]. So our answer is 3. Input format: The first line contains an integer ‘n’ denoting the number of elements in the array. The second line contains ‘n’ space-separated integers representing the elements of the array. Output format: Return the length of the modified array. Note: You don't need to print anything, it has already been taken care of. Just Implement the given function.
Create an auxiliary array temp[] to store unique elements. Traverse the input array and copy unique elements of arr[] to temp[] one by one. Also, keep track of the count of unique elements; let this count be j. Copy the first j elements from temp[] back to arr[] and return j.
Round 4 — HR Round
The interviewer was polite.
Problems & Questions Asked (2)
HR Questions
The interviewer started by asking about my project and the problem I was trying to solve. They asked how I use AI in my daily life. They also asked how I would approach the problem of finding the population of Kanpur.
Tip 1: Stay calm and confident, even if you are unable to answer. Tip 2: Be thorough with your project, as questions may be asked multiple times.
Selection Perspective
I was rejected because I was unable to answer some technical questions and got a bit confused while solving the puzzles.
Key Preparation Tips
Prepare DSA thoroughly.
Practice aptitude and puzzle-based questions.
Have at least two good projects on your resume.
Be prepared to explain your projects clearly.
Practice coding problems involving Arrays, Binary Search, DP and Recursion.
Prepare common HR questions such as Tell me about yourself and Who is your role model?
More Interview Experiences

Amazon
SDE - Intern
Amazon Interview Experience for Fresher SDE - Intern — Oct 2025

Hotstar
SDE – Intern
Disney+ Hotstar SDE Intern Interview Experience

Salesforce
AMTS