JP Morgan chase || Software engineer 2 || Rejected
Summary
I recently interviewed for a Software Engineer 2 role at JPMC, which consisted of two rounds. Despite a friendly first round covering Java and Spring Boot, the second round, which delved into advanced Java and project-specific finance questions, did not go well, leading to a rejection.
Full Experience
I recently appeared for a Software Engineer 2 role at JPMorgan Chase. There were a total of two interview rounds for me.
First Round
This was a one-hour round with a Project Manager. She was very friendly, and the round went well. She asked basic Java, Spring Boot, and project-related questions.
Questions I remember:
- What is finally block and when it is called?
- Exception propagation in Java?
- How HashMap works?
- Difference between flatMap and map?
- What is a functional interface?
- Difference between @RestController and @Controller?
- Advantages of Spring over Spring MVC?
Second Round
This was another one-hour round. The interviewer had 20 years of experience. It started with an introduction and a discussion about my projects. Since JPMC is in the finance domain and I also work in finance, he asked very key questions from my project. I even answered a few project questions with some doubt.
He then moved on to Java, Spring Boot, and database-related questions, ranging from basic to advanced topics. I was not satisfied with my performance, especially regarding the design pattern code he asked for.
Questions I remember:
- Can a Java class be static?
- Can a Java class be final?
- Can a Java class be private?
- Can we override static, private, or final methods?
- Transaction propagation in Spring Boot?
- Given Employee and department classes, without modifying these classes, how can we establish a relationship between these two so that a department can hold all of its employees and we can return all of its employees given a department object?
- He asked an SQL query to return a list of all departments with zero employees.
The second round did not go well for me. I answered a few project questions with doubt and could not answer some of the advanced Java and Spring Boot questions.
I did not hear anything back, and I didn't even follow up because I felt I hadn't performed to my average. However, overall, these rounds were good for learning.
Interview Questions (14)
Describe what a finally block is in Java and when it is called during program execution.
Explain the concept of exception propagation in Java.
Explain the internal working mechanism of Java's HashMap.
Describe the difference between the flatMap and map operations in Java Streams API.
Define what a functional interface is in Java.
Explain the differences between @RestController and @Controller annotations in Spring Boot.
Discuss the advantages of the Spring Framework over specifically Spring MVC.
Is it possible for a Java class to be declared as static? If so, explain when and how.
Is it possible for a Java class to be declared as final? If so, explain its implications.
Is it possible for a Java class to be declared as private? If so, explain when and how.
Can static, private, or final methods in Java be overridden? Explain your answer for each case.
Explain the concept of transaction propagation in Spring Boot and list common propagation behaviors.
Given existing Employee and Department classes, how would you establish a relationship between them without modifying their original definitions, such that a Department object can hold and return all of its associated Employee objects?
Write an SQL query to return a list of all departments that currently have zero employees associated with them.