epam systems logo

Epam Systems Interviews

2 experiences18 reads15 questions50% success rate
EPAM Interview Experience
epam systems logo
Epam Systems
October 26, 202517 reads

Summary

I recently interviewed with EPAM for a Python Developer role. The interview focused heavily on Python-specific concepts, object-oriented programming, and system design principles related to microservices, and I am sharing the questions.

Full Experience

I recently had a Python interview with EPAM, and I wanted to share my experience in case it helps anyone else preparing for similar roles. The interview was quite comprehensive, delving deep into core Python concepts, specifically advanced features and object-oriented programming. We also spent significant time discussing system design, particularly focusing on microservices architecture. I found the questions to be practical, often requiring me to explain concepts with code examples or discuss real-world applications and trade-offs.

Interview Questions (10)

Q1
Python Decorators and Chaining
Other

Explain what decorators are in Python and how they function. Discuss the order of execution and behavior when multiple decorators are applied to a single function. Provide a code example demonstrating multiple decorators.

Q2
Python Exception Handling Order
Other

Explain the concept of exception handling in Python. Why is the order of except blocks important when handling multiple types of exceptions? Provide a code example.

Q3
Raising Exceptions with 'from'
Other

Explain the behavior and purpose of raising an exception using the from keyword in Python (exception chaining). What is the output of the given code snippet?

Q4
Python Multiple Inheritance and MRO
Other

Explain multiple inheritance in Python. How does Python resolve method calls when a child class inherits from multiple parent classes that both define a method with the same name? Provide the output of the given code snippet and explain the mechanism behind it.

Q5
Python Context Management and Flask
Other

Explain Python's context management protocol and the role of with statements. How are context managers typically utilized within a Flask application, especially concerning resources like database connections?

Q6
Dependency Injection in Flask with SQLAlchemy
System Design

Explain the concept of dependency injection. How can dependency injection be implemented and utilized within a Flask application, specifically when integrating with SQLAlchemy for database operations?

Q7
Monolith vs. Microservices Architecture
System Design

Explain the fundamental differences between monolithic and microservices architectural styles. Discuss the advantages and disadvantages of each, and in which scenarios it is more appropriate to choose one over the other.

Q8
Microservices Deployment Strategies
System Design

Describe common strategies and tools used for deploying microservices. Consider aspects like containerization, orchestration, and continuous delivery.

Q9
Microservices Inter-Service Communication
System Design

Explain various methods and patterns for inter-service communication within a microservices architecture. Discuss both synchronous and asynchronous communication approaches.

Q10
Event-Driven Architecture in Microservices
System Design

Explain the concept of event-driven architecture (EDA) and the scenarios where using events is beneficial in a microservices context. Provide examples of when to leverage events for communication and state changes.

EPAM | Sr. SDE | DSA | Java | Offer accepted
epam systems logo
Epam Systems
Senior Software EngineerOffer
September 14, 20241 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.

Have a Epam Systems Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Epam Systems.