NPCI | Java Developer
Summary
I recently interviewed for a Java Developer role at NPCI, which involved an online assessment covering DSA, Spring Boot API development, and SQL, followed by a detailed technical interview focused on Core Java, Concurrency, and Spring Boot fundamentals.
Full Experience
College: VESIT, Mumbai
Experience: 6 Months Internship + 6 Months Full-Time
Current Company: Fintech
I recently interviewed for the Java Developer role at NPCI. Sharing my experience below.
Round 1: Online Assessment (OA)
Total 6 questions, divided into 3 sections (2 each). Had to solve 1 question from each section (Total 3)
Section 1 – DSA
- Q1: Not able to recall
- Q2: Search in a Binary Search Tree (LC)
Section 2 – Spring Boot
- Develop a Spring Boot API from a problem statement
- Debug and fix an existing API
Focus: Controller–Service–Repository flow, annotations, exception handling
Section 3 – SQL
- One SQL query (not recalled)
- One query with multiple ORDER BY clauses
Round 2: Technical Interview
This round focused heavily on Core Java, Concurrency, and Spring Boot fundamentals.
- Java & Streams
- Write a Streams program to calculate aggregate value
- Convert a List into a HashMap using Streams
- Can we have unchecked exceptions in lambda expressions?
- equals() method in Java
- Concurrency
- CompletableFuture (working + methods)
- ThreadPoolTaskExecutor
- Synchronized at class level vs method level
- How to avoid deadlock?
- HashMap internal working
- transient vs volatile keyword
- @ControllerAdvice - Global exception handling mechanism
- Redis
- Redis Sets and their use cases
Interview Questions (16)
Search in a Binary Search Tree
Implement the search operation in a Binary Search Tree.
Develop Spring Boot API
Develop a Spring Boot API based on a given problem statement, focusing on Controller–Service–Repository flow, annotations, and exception handling.
Debug Spring Boot API
Debug and fix issues in an existing Spring Boot API, with focus on Controller–Service–Repository flow, annotations, and exception handling.
SQL Query with Multiple ORDER BY
Write an SQL query involving multiple ORDER BY clauses.
Java Streams Aggregate Value
Write a Java Streams program to calculate an aggregate value from a collection.
Convert List to HashMap using Streams
Demonstrate how to convert a List into a HashMap using Java Streams.
Unchecked Exceptions in Lambda Expressions
Discuss whether unchecked exceptions can occur within lambda expressions in Java.
Java equals() Method
Explain the equals() method in Java, including its contract and common pitfalls.
CompletableFuture
Explain the working of CompletableFuture in Java and its various methods.
ThreadPoolTaskExecutor
Explain ThreadPoolTaskExecutor.
Synchronized Class vs Method Level
Compare and contrast the synchronized keyword when applied at the class level versus the method level in Java.
Avoid Deadlock
Discuss strategies and best practices to avoid deadlocks in concurrent programming.
HashMap Internal Working
Explain the internal working mechanism of HashMap in Java.
transient vs volatile Keywords
Differentiate between the transient and volatile keywords in Java.
@ControllerAdvice for Global Exception Handling
Explain @ControllerAdvice as a global exception handling mechanism in Spring Boot.
Redis Sets and Use Cases
Explain Redis Sets and discuss their typical use cases.