EPAM | Sr. SDE | DSA | Java | Offer accepted

epam systems logo
epam systems
Senior Software EngineerOffer
September 14, 20240 reads

Summary

I interviewed with EPAM for a Senior Software Engineer position focused on DSA in Java, and successfully received an offer.

Full Experience

I recently went through the interview process with EPAM for a Senior Software Engineer role. The focus of the position was on Data Structures and Algorithms with Java. I'm pleased to share that I successfully received an offer after completing all rounds. The interview process was comprehensive and included a coding round, a systems design round, and a hiring manager round.

Coding Round: I was presented with a problem that required me to implement a simple voting system.

Systems Design: This round had a dual focus. First, I was asked to design a small-scale screen broadcast system capable of playing, replaying, changing, or scheduling ads/videos across multiple screens. Following that, the discussion shifted to microservice architecture patterns such as API Gateway, BFF, Circuit Breaker, Database per Service, Event-Driven, and Saga pattern. We also touched upon the Richardson Maturity Model, REST API grading, and the key differences between SOAP and REST.

Hiring Manager Round: This round began with a system design problem where I had to design a train ticket booking application. The emphasis was on high-level design, Back-of-the-Envelope estimation, and creating an efficient database design to find available trains and seats between a source and destination. Additionally, I was questioned on the 12-factor principles of microservices and asked about design patterns I have experience with. The round concluded with a brief discussion regarding project locations and types.

Interview Questions (5)

Q1
Weighted Voting System Implementation
Data Structures & Algorithms

Create a simple voting system for N candidates with unique IDs ranging from 0 to n-1. Each voter casts 3 votes, with the first vote having 3x weight, the second 2x, and the third 1x. For example, if a voter votes for candidates A, B, and C, the votes for A, B, and C are incremented by 3, 2, and 1 respectively.

Q2
Design a Screen Broadcast System
System Design

Design a screen broadcast system where ads/videos can be played, replayed, changed, or scheduled for future broadcasts across multiple screens. It's a small-scale system.

Q3
Microservice Architecture Patterns & REST Principles
System Design

Discussion on microservice architecture patterns such as API Gateway, BFF, Circuit Breaker, Database per Service, Event-Driven, and Saga pattern. Also, Richardson Maturity Model (RMM) and REST API grading, and differences between SOAP and REST.

Q4
High-Level Design for Train Ticket Booking App
System Design

Design a train ticket booking app. Focus was on high-level design, particularly Back-of-the-Envelope estimation and database design to efficiently find available trains and seats between a source and destination.

Q5
12-Factor Principles and Design Patterns Discussion
Other

Questions on 12-factor principles of microservices and any design patterns I know or have worked on. Followed by a brief discussion on project locations and types.

Preparation Tips

For my preparation, I've shared more specific details about my approach and materials in my Google interview preparation blog.

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!