Summary
I recently interviewed for a Java Backend Developer role at KPMG India, undergoing four rounds covering coding, SQL, Java concepts, and behavioral questions. Despite a comprehensive process, I believe I was rejected due to a mismatch in required skills, specifically regarding Spring Boot/Microservices, which weren't in the initial job description.
Full Experience
I recently had an interview opportunity for a Java Backend Developer role at KPMG India. The initial job description highlighted core Java and SQL as essential skills, which I had prepared for. However, during the process, it became evident that the team also extensively uses Spring Boot and microservices, which I feel ultimately contributed to me not being selected.
The entire interview process consisted of four distinct rounds:
Round 1 - Online Assessment
This round comprised three coding questions. Two were mandatory, and the third was optional but would carry weight in subsequent rounds.
- Mandatory Q1: Interface implementation. I was given a
Buildinginterface and asked to implementSchoolandHospitalclasses based on it. This was fairly straightforward. - Mandatory Q2: An SQL question focusing on aggregation and grouping, which I found to be easy.
- Optional Q3: This was similar to Q1 but involved handling a few more edge cases.
Two days after the online assessment, I received an invitation for the first technical interview.
Round 2 - L1 Interview (1 hour 10 minutes)
This round was conducted over Microsoft Teams. It started with a discussion about my prior experience, delving into projects I've worked on.
Following the experience discussion, the interviewer moved on to technical questions:
- A Java stream-based question to find the 3rd highest number in a list of integers.
- A DSA problem: Best Time to Buy and Sell Stock.
- Another DSA problem: The Two Sum problem.
- A conceptual question: "What are marker interfaces?"
- Another conceptual question: "What is a functional interface?"
After a couple of days, the third round was scheduled.
Round 3 - L3 Interview (35 minutes)
This interview was shorter but quite intense. It began with a deep dive into my previous projects.
The technical questions in this round covered a broader range:
- A Java stream problem: Given a list of names (first name last name separated by space), count the occurrence of each last name using Java streams.
- A core Java concept: "Explain immutable classes."
- An SQL concept: "What are left outer joins?"
- Another SQL concept: "What are the differences between primary key and unique key?"
- A Spring framework question: "Describe the Spring bean lifecycle."
- Two scenario-based Java code snippet questions:
- Given
Parent obj = new Child();, canobjbe used to call a method exclusively defined in theChildclass? - If a parent method throws
IOException, and an overriding child method declares to throwException(a broader exception), will it compile and run?
- Given
After approximately 3-4 days, my final interview with a Director was scheduled.
Round 4 - Director Level Interview (30 minutes)
This round was primarily focused on behavioral and HR-type questions. We discussed my prior experience, reasons for leaving my previous role, and my motivations for wanting to join KPMG. There was also a critical thinking question posed.
Following this round, I tried to reach out to HR for feedback, but I received no response. It's been over a week now, so I understand that I have been rejected, though a simple email or call would have been appreciated for closure. Nevertheless, it was a valuable experience.
Interview Questions (14)
Given an interface named 'Building', implement concrete classes for 'School' and 'Hospital'.
Given a list of integers, find the third highest number using Java Streams.
Given an array prices where prices[i] is the price of a given stock on the i-th day, find the maximum profit you can achieve. You may complete at most one transaction (i.e., buy one and sell one share of the stock).
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice.
Explain what marker interfaces are in Java and provide examples.
Explain what functional interfaces are in Java, their characteristics, and provide examples of their usage.
Given a list of full names (first name and last name separated by a space), count the occurrences of each unique last name using Java Streams.
Explain what immutable classes are in Java, their benefits, and how to create one.
Explain what a LEFT OUTER JOIN is in SQL and how it differs from other join types.
Explain the differences between a primary key and a unique key in a database.
Describe the lifecycle of a Spring Bean, including initialization and destruction callbacks.
Given Parent obj = new Child();, can obj be used to call a method that is defined only in the Child class and not in Parent?
If a parent method throws IOException, and a child class overrides this method to throw Exception (a broader exception), will the child's method compile and run correctly?
Discuss your prior work experience, reasons for leaving previous roles, and your motivations for joining KPMG.