Microsoft SDE Intern Interview Experience
💼 LTIMindtree Interview Experience (On-Campus) | Fresher | 2026
Salesforce SMTS | Interview Experience | Rejected
JPMC | SDE2 (Associate) - Java Backend - Interview Experience + Compensation
Microsoft - SDE2 - Coding Round
EPAM | Senior Software Engineer | Bangalore | Feb 2025
Summary
I interviewed for a Senior Software Engineer role at EPAM in Bangalore, completing two rounds focusing on Java, Spring Boot, and system design. Despite receiving neutral feedback after Round 2, I was ultimately ghosted by the company.
Full Experience
I am currently working as a Senior Software Engineer in a fintech company with a total of 5.5 years of experience. Below is my interview experience with EPAM.
Round 1
This round involved Java-based coding tasks and conceptual questions related to Java 8 features and collections.
Coding Questions: Use Streams to implement below:
- Print the list of all employees
list.forEach(e -> System.out.println(e.getId() + " " + e.getName() + " " + e.getDesignation()));
- Collect a list of employee IDs divisible by 2
List<Integer> result = list.stream()
.filter(e -> e.getId() % 2 == 0)
.map(Employee::getId)
.collect(Collectors.toList());
- Sort the employee list in ascending and descending order of ID
Collections.sort(list, (a, b) -> Integer.compare(a.getId(), b.getId()));
More in depth questions were asked from below topics.
- Functional Interface
- Collectors & Optional
- map vs flatMap
- Method references
- System.out.println() vs System.out::println
- Object::printVal
- Reentrant Locks
- Blocking vs Non-blocking calls
- CompletableFuture Object
- Marker Interface (Serializable, Cloneable)
- equals() and hashCode() contract
- TreeSet vs TreeMap
- Comparable vs Comparator
- Deep Cloning vs Shallow Cloning
- Heap, Stack, Metaspace
- Classpath
- Checked vs Unchecked Exceptions
- SQLException Handling
- FileHandler
- String Comparison in Java:
String a = new String("Vijai");
String b = new String("Vijai");
String c = "Vijai";
String d = "Vijai";
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
- Coding Question: Find the longest Substring Without Repeating Characters
Example Input & Output:
Input: "abcadcbb" → Output: 4 (Substring: "bcad")
Input: "pwwkew" → Output: 3 (Substring: "wke")
Optimized solution: O(n) time complexity.
Round 2
This round covered dependency injection, Spring Boot, transaction management, and system design.
Topics Covered:
- Spring Boot Starter Dependencies
- Spring Actuator (Health Check, Logging, Tomcat)
- Dependency Injection in Plain Java (without Spring)
- @Primary vs @Qualifier
- @Transactional
- SOLID Principles
- Dependency Inversion Principle
- Liskov Substitution Principle
- Spring Annotations
- @ControllerAdvice
- AOP (@Before, @After)
- Singleton Pattern & Thread Safety
- Factory Pattern & Use Cases
- Strategy Pattern in Java
- Observer Pattern
- Mockito & Unit Testing Best Practices
- Custom Exception Handling in Spring
- Handling Service Failures in Distributed Systems
- Microservices Communication Strategies
- Multithreading and Concurrency
- Reentrant Locks vs Synchronized Blocks
- Database Transactions & ACID Properties
- Event-Driven Architecture
- LLD design (Don't remember the exact question)
Verdict: Ghosted after round 2. Was told Round 3 will be held later as feedback of Round 2 was neither positive, not negative.
Interview Questions (5)
Use Streams to implement below:
- Print the list of all employees
list.forEach(e -> System.out.println(e.getId() + " " + e.getName() + " " + e.getDesignation()));
2. Collect a list of employee IDs divisible by 2
List<Integer> result = list.stream()
.filter(e -> e.getId() % 2 == 0)
.map(Employee::getId)
.collect(Collectors.toList());
3. Sort the employee list in ascending and descending order of ID
Collections.sort(list, (a, b) -> Integer.compare(a.getId(), b.getId()));
String Comparison in Java:
String a = new String("Vijai"); String b = new String("Vijai"); String c = "Vijai"; String d = "Vijai";
System.out.println(a == b); // false System.out.println(a.equals(b)); // true
Coding Question: Find the longest Substring Without Repeating Characters
Example Input & Output:
Input: "abcadcbb" → Output: 4 (Substring: "bcad")Input: "pwwkew" → Output: 3 (Substring: "wke")
Optimized solution: O(n) time complexity.