Epam Systems | Java Software Engineer | Gurgaon

epam systems logo
epam systems
Java Software EngineerGurgaon4 years
February 2, 20240 reads

Summary

I recently interviewed for a Java Software Engineer position at Epam Systems in Gurgaon. The interview process consisted of three rounds, covering coding challenges, Java concepts, system design, project discussions, and behavioral questions.

Full Experience

I had my interview rounds at Epam Systems in Gurgaon. I have over 4 years of product experience and come from a Tier 2 college background.

Round 1 (1.5 hours) - Coding Round:
For this round, I was required to execute all my code on my local IDE. I was given three problems:
1. Finding the first repeating character in a given string like "asdfaghjklkjhgfdsa" using Java streams and lambda expressions. The expected output was 'a'.
2. Solving the 'Top view of a binary tree' problem.
3. Grouping anagrams from an array of strings, for example, ["eat","tea","tan","ate","nat","bat"] should output [["bat"],["nat","tan"],["ate","eat","tea"]].

Round 2 (1.5 hours) - Java Concepts & System Discussion:
This round focused on my knowledge of Java concepts and system design.
1. We discussed various Java 8 concepts, design patterns, SOLID principles, and threading classes in Java.
2. There were detailed discussions about my resume, specifically on projects where I had used Spring Boot, microservices, and Kafka.
3. I was given an easy design question: to design a service that would notify users on login/signup and credit them a point. I used draw.io to illustrate my design.

Round 3 (1 hour) - Managerial Round:
The final round was with a manager, primarily focused on my professional experience.
1. We talked about my projects and my contributions to them.
2. I was asked some basic Java questions.
3. I discussed my approach to designing systems while keeping SOLID principles in mind.
4. We also covered general behavioral questions.

Interview Questions (5)

Q1
Find First Repeating Character using Streams
Data Structures & Algorithms

Given a string, find the first repeating character in the given string using Java streams and lambda expressions.

Example:
Input: s = "asdfaghjklkjhgfdsa"
Output: a

Q2
Top View of a Binary Tree
Data Structures & Algorithms

Implement an algorithm to find the top view of a binary tree.

Q3
Group Anagrams
Data Structures & Algorithms

Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

Example:
Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]

Q4
User Notification and Points Service Design
System DesignEasy

Design a service that will notify a user on login/signup and credit them a point.

Q5
Applying SOLID Principles in Design
Behavioral

Discuss your approach to designing systems while keeping SOLID principles in mind.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!