Round 1: Online Round (JAVA Algorithm Challenge)
This round was conducted online on the MyAnatomy platform. It consisted of three coding questions – Easy, Medium and Hard of marks distribution 20, 30 and 50 respectively. Only JAVA was the allowed language. The questions were jumbled, so not every candidate gets the same set of questions. Moreover, note that the time distribution is sectional, not overall. Thus you get limited maximum time for each section. My first (easy) question was really simple and I did it easily using the concept of HashSets. The second problem which was supposed to be of medium difficulty demanded knowledge of string handling or regular expressions. Here is the link to the question. Thankfully, I had practiced the question earlier using both the approaches and could solve it within the given time. The third question for me was a story based thing, where we the main logic was to find out the two maximum elements of an array, and perform some operation on them and add them back to the array and continue this till some condition. I used the priority queue data structure to solve it efficiently, although I later got to know from some of my friends who got the same question, that they were able to pass all the test cases even though their solution was not optimal in terms of time complexity. So I knew I was through as I scored 100, the cut off was probably 60 marks.
Round 2: Onsite Coding Round
EPAM sent out a list of locations where they will be conducting the further rounds and I selected Hyderabad. I went all the way from Kolkata to Hyderabad, although there was a similar round set up at Kolkata this year as well, but I had some other urgent appointment on that day. The venue was MLR Institute of Technology, which is located in quite the outskirts of Hyderabad. If you’re going there, I would suggest leaving early, as it gets difficult to manage a commute in the evening. The college authority also organized buses for us.
Coming back to the exam, first, we had a small 45-60 minute long presentation where the Head of HR and other officials from EPAM introduced us to work, culture and opportunities at EPAM. We were then separated into further groups and taken to the lab halls for the coding round.
We later got to now, that the cut off for this round was far higher than last year’s. It was probably around 70-75 this time, and all those who had a score less than that did not receive the qualification email and were requested to leave.
Round 3: Group Discussion
This was again another elimination round where we were grouped in clusters of 10 candidates according to the rank list and taken to a room. We sat around a round table and were given a topic, had to think for a few minutes before starting. There were two judges and the total time allocated was 10 minutes. The topics were random due to obvious reasons. Our group had a topic where we had to discuss the Pros & Cons of Aadhar card linking as legal identification. Around 4-5 candidates from every group of 10 were selected for the next round.
Round 4: Technical Interview
This was the traditional face to face technical interview, no whiteboard coding, but I had to do some pen-paper coding and algorithmic explanations. Questions were mainly from JAVA core concepts, Object-Oriented Design Principles, Algorithms, Data Structures. I was asked about various concepts such as Inheritance, Abstraction, Polymorphism, Encapsulation, applications of Class and Object. The questions started from simple definitions and ended as conceptual implementations where my interviewer asked me to show with examples and tweak them. Questions from Abstract classes, interfaces, Java standards, and conventions, access specifiers, constructors were also asked. It was a 45-minute long session. The interviewer was impressed with my JAVA knowledge and also read my resume where I mentioned my proficiency in Python language, which impressed her too. There were some other scenario-based questions too where I had to design classes and write out stuff on paper to explain how I would implement them and what are the best standards followed. After about 25 minutes of Java-related discussions, the interviewer asked me some data structures and their implementations which was pretty much straight forward to me. It mostly revolves around Stacks, Queues, Linked Lists, Heaps, etc. Then a few algorithms based questions, such as the popular finding cycle in a linked list, the intersection point of linked lists, queues with stacks and vice versa, etc came up. I was pretty confident due to my immense practice in the related area, I was able to answer all the questions correctly, with their optimal solutions. Finally, she asked me to discuss how I solved the two problems in Round 2, and I explained the question, then my approach, my algorithm, and the time complexity. That was pretty much all about the technical interview.
The results were informed to us within a few minutes in-person and were asked to wait for the final round, that was the HR. We were taken to the library and we gathered there, it was only a handful of candidates.
Round 5: HR & Behavioral Interview
Traditional questions like Introduce Yourself, Strengths, Weakness, etc were the starters. Then the HR asked me some questions regarding my view towards EPAM and why should they hire me, etc. She discussed me about the culture at EPAM and how they are very serious about it.
The results were announced within a week from the interview and I was offered the job.
Tips: Practice topic-wise questions from GeeksForGeeks. They will help a lot.