Epam Systems | Java Software Engineer | Gurgaon
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)
Given a string, find the first repeating character in the given string using Java streams and lambda expressions.
Example:
Input: s = "asdfaghjklkjhgfdsa"
Output: a
Implement an algorithm to find the top view of a binary tree.
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"]]
Design a service that will notify a user on login/signup and credit them a point.
Discuss your approach to designing systems while keeping SOLID principles in mind.