EPAM | Senior Software Engineer | Gurgaon [Offer]
Summary
I interviewed for a Senior Software Engineer position at EPAM in Gurgaon and successfully received an offer. The interview process spanned multiple rounds, including coding, system design, and managerial discussions, covering a range of technical and behavioral aspects.
Full Experience
During my interview process at EPAM, I faced three distinct rounds. The first round was a Coding round focused on Core Java. I was asked to solve two main tasks. The first task involved filtering employees from a list based on their city ('Noida') and then sorting them in reverse alphabetical order by name, all while utilizing Java 8 Stream APIs. The second task presented two algorithmic problems: one was to find the product of all elements in an array except for the element at the current index, without using the division operator; the second was to merge k sorted linked lists into a single sorted list. I also encountered a couple of other questions on Java 8 features and stream APIs.
The second round was a HLD/Technical Round. Here, the discussion revolved around designing a high-level architecture for a food delivery application. Additionally, I was questioned on Java 8 features, various Design Patterns, SOLID principles, and Microservice Patterns.
Finally, the third round was the Managerial Round. This round primarily focused on my previous project experiences, followed by several behavioral questions. After completing all rounds, I received an offer for the Senior Software Engineer role.
Interview Questions (4)
Given an Employee list with fields id, name, and city, get all employees from 'Noida' city and sort them in reverse alphabetical order by name using Java 8 Stream API.
class Employee {
int id;
String name;
String city;
}Given an integer array nums of size N, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. You must not use the / operator.
Input: N = 5, array[] = {1,2,3,4,5}
Output: 120 60 40 30 24
For 0th index, excluding 1 from product of whole array will give 120
For 1th index, excluding 2 from product of whole array will give 60
For 2nd index , excluding 3 from product of whole array will give 40
For 3rd index, excluding 4 from product of whole array will give 30
For 4th index , excluding 5 from product of whole array will give 24.
You are given an array of k linked-lists lists, each linked-list is sorted in ascending order. Merge all the linked-lists into one sorted linked-list and return it.
Input: lists = [[1,4,5],[1,3,4],[2,6]]
Output: [1,1,2,3,4,4,5,6]
Design the high-level architecture for a food delivery application.