EPAM | Sr. SDE | DSA | Java | Offer accepted
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)
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.
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.
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.
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.
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.