JP Morgan interview experience Real time questions & tips from candidates to crack your interview

Software Engineer

JP Morgan
upvote
share-icon
3 rounds | 14 Coding problems

Interview preparation journey

expand-icon
Journey
JPMorgan Chase & Co. is an American multinational investment bank and financial services holding company headquartered in New York City. The company visited our college for the position of Software Engineer. It conducted three rounds: a Hackerrank test, a technical interview, and an HR interview. Around 100 students participated in the drive.
Application story
It was an on-campus drive. The company came to our college for the position of Software Engineer. It conducted three rounds: a Hackerrank test, a technical interview, and an HR interview. Around 100 students participated in the drive.
Why selected/rejected for the role?
I was rejected for this role after the technical interview. The technical interview did not go well. I was not able to answer all the questions, so, I was rejected.
Preparation
Duration: 4 months
Topics: OOPS, Coding Questions, Database, Data Structures, Problem Solving
Tip
Tip

Tip 1 : Prepare advance level coding questions.
Tip 2 : Study OOPS and networking in brief.

Application process
Where: Campus
Eligibility: 7 CGPA, No Backlogs
Resume Tip
Resume tip

Tip 1 : Mention strong projects in resume.
Tip 2 : Write any certifications in resume, if any.

Interview rounds

01
Round
Medium
Online Coding Interview
Duration60 mins
Interview date13 Jul 2022
Coding problem6

The test was conducted on Hackerrank platform. It was 1 hour test comprising of 8 MCQs and 2 coding questions.

1. OS MCQ

Which is the most optimal CPU scheduling algorithm? (Learn)

Problem approach

Tip 1: Study CPU scheduling algorithms in detail.
Tip 2: Read the question carefully.

2. Guess the Output

The output of the following C program is?

int main(){
fork();
fork();
printf("code ");
}

Problem approach

Tip 1: Practice predicting output questions. 

Tip 2: Keep a pen and paper by your side.

3. Sudoku Solver

Hard
25m average time
75% success
0/120
Asked in companies
Tata Consultancy Services (TCS)Urban Company (UrbanClap)Ola

You have been given a 9x9 2d integer matrix 'MAT' representing a Sudoku puzzle. The empty cells of the Sudoku are filled with zeros, and the rest of the cells are filled with integers from 1 to 9. Your task is to fill all the empty cells such that the final matrix represents a Sudoku solution.

Note:
A Sudoku solution must satisfy all the following conditions-
1. Each of the digits 1-9 must occur exactly once in each row.
2. Each of the digits 1-9 must occur exactly once in each column.
3. Each of the digits 1-9 must occur exactly once in each of the 9, 3x3 sub-grids of the grid.

You can also assume that there will be only one sudoku solution for the given matrix.
Problem approach

We used the backtracking approach:

Step 1: Input the 9x9 Sudoku puzzle grid; let's call it "grid."

Step 2: Create a function to check if a given digit can be placed in a specific cell of the grid without violating the Sudoku rules. The function should check if the digit is not present in the same row, column, or 3x3 sub-grid as the cell.

Step 3: Create a function to find an empty cell in the grid. The function should return the row and column indices of the first empty cell it encounters or return None if there are no empty cells left.

Step 4: Create a recursive function to solve the Sudoku puzzle using backtracking. The function should do the following:
a) Find an empty cell using the function from Step 3.
b) If there are no empty cells left, return True (puzzle solved).
c) For each digit from 1 to 9, do the following:
  -> Check if the digit can be placed in the empty cell without violating the rules using the function from Step 2.
  -> If it can be placed, update the cell with the digit and recursively call the solve function.
  -> If the recursive call returns True, it means the puzzle is solved, so return True.
  -> If the recursive call returns False, undo the placement (set the cell back to empty) and try the next digit.
  -> If all digits have been tried and none of them can be placed, return False (backtrack).

Step 5: Call the solve function to solve the Sudoku puzzle. If the function returns True, the puzzle is solved.

Step 6: Output the solved Sudoku grid.

Try solving now

4. OOPs MCQ

Which of the following features is required to be supported by the programming language to become a pure object-oriented programming language?

Problem approach

Tip 1: Read the question carefully.
Tip 2: Study OOPS in detail.

5. Guess the Output

What is the output of the given program?

#include < stdio.h > 
using namespace std; 
int main() 

int array[] = {10, 20, 30}; 
cout << -2[array]; 
return 0; 
}

Problem approach

Tip 1: Practice predicting output questions.
Tip 2: Keep pen and paper by your side

6. SQL MCQ

Which command that lets you change one or more field in a table? (Learn)

Problem approach

Tip 1: Study SQL commands in detail.
Tip 2: Read the question carefully.

02
Round
Hard
Video Call
Duration30 mins
Interview date28 Jul 2022
Coding problem4

This round was 30 minutes technical interview. The interviewer seems knowledgeable.

1. Quick Sort

Moderate
10m average time
90% success
0/80
Asked in companies
SamsungPaytm (One97 Communications Limited)Bank Of America

You are given an array of integers. You need to sort the array in ascending order using quick sort.

Quick sort is a divide and conquer algorithm in which we choose a pivot point and partition the array into two parts i.e, left and right. The left part contains the numbers smaller than the pivot element and the right part contains the numbers larger than the pivot element. Then we recursively sort the left and right parts of the array.

Example:

Let the array = [ 4, 2, 1, 5, 3 ]
Let pivot to be the rightmost number.

example

After the 1st level partitioning the array will be { 2, 1, 3, 4, 5 } as 3 was the pivot. After 2nd level partitioning the array will be { 1, 2, 3, 4, 5 } as 1 was the pivot for the left part and 5 was the pivot for the right part. Now our array is sorted and there is no need to divide it again.

Problem approach

I told Quicksort is best and implemented the code as:

Step 1: Input the array to be sorted, let's call it "arr," and its starting and ending indices, "low" and "high" respectively. Initially, "low" should be the index of the first element (0) and "high" should be the index of the last element (n-1) of the array, where n is the size of the array.
Step 2: If the "low" index is greater than or equal to the "high" index, return (base case).
Step 3: Choose a "pivot" element from the array. This can be any element from the array, but a common approach is to pick the element at the middle index (low + (high - low) // 2).
Step 4: Partition the array into two sub-arrays:
a) Elements less than the pivot (left_subarray) are moved to the left side of the pivot.
b) Elements greater than the pivot (right_subarray) are moved to the right side of the pivot.
c) The pivot element is now in its correct sorted position.
Step 5: Recursively apply the Quicksort algorithm to the left_subarray:
Call Quicksort(arr, low, pivot_index - 1).
Step 6: Recursively apply the Quicksort algorithm to the right_subarray:
Call Quicksort(arr, pivot_index + 1, high).
Step 7: The array is now sorted in place, and no additional merging is required."

Corrected version:
"I said that Quicksort is the best and implemented the code as follows:

Step 1: Input the array to be sorted, called "arr," and its starting and ending indices, "low" and "high" respectively. Initially, "low" should be the index of the first element (0) and "high" should be the index of the last element (n-1) of the array, where n is the size of the array.
Step 2: If the "low" index is greater than or equal to the "high" index, return (base case).
Step 3: Choose a "pivot" element from the array. This can be any element from the array, but a common approach is to pick the element at the middle index (low + (high - low) // 2).
Step 4: Partition the array into two sub-arrays:
a) Elements less than the pivot (left_subarray) are moved to the left side of the pivot.
b) Elements greater than the pivot (right_subarray) are moved to the right side of the pivot.
c) The pivot element is now in its correct sorted position.
Step 5: Recursively apply the Quicksort algorithm to the left_subarray:
Call Quicksort(arr, low, pivot_index - 1).
Step 6: Recursively apply the Quicksort algorithm to the right_subarray:
Call Quicksort(arr, pivot_index + 1, high).
Step 7: The array is now sorted in place, and no additional merging is required.

Try solving now

2. DBMS Questions

What is the difference between UNION and UNION ALL? (Learn)

What is the difference between primary key and unique key in SQL? (Learn)

Problem approach

Tip 1: Study SQL in detail.
Tip 2: Hear the question carefully.

3. OS Questions

What is deadlock? What are necessary conditions to achieve deadlock? (Learn)

What is the difference between process and thread? (Learn)

Problem approach

Tip 1: Study deadlock in operating system.
Tip 2: Answer confidently.

4. Python Questions

What are Dict and List comprehensions in Python? (Learn)

What is lambda function in Python? (Learn)

Problem approach

Tip 1: As I told Python as my favorite language, thus, they asked questions from Python, hence, tell your preferred language.
Tip 2: Answer confidently.

03
Round
Easy
HR Round
Duration15 mins
Interview date10 Aug 2022
Coding problem4

This was just an HR round which comprised of basic questions. It was 15 minutes long.

1. Basic HR Question

Why do you want to join our company?

Problem approach

Tip 1: Research about the company well and prepare this question.
Tip 2: Answer confidently.

2. Basic HR Question

Do you have any other offers in hand?

Problem approach

Tip 1: Don't speak lie, tell the offer if you have any.
Tip 2: Answer confidently.

3. Basic HR Question

What are your strengths and weaknesses?

Problem approach

Tip 1: Tell strengths and weakness which are beneficial for company.
Tip 2: Answer confidently.

4. Basic HR Question

Tell us about the major project you have worked on?

Problem approach

Tip 1: Tell about the project which you can explain in detail.
Tip 2: Answer confidently.

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

To make an AI less repetitive in a long paragraph, you should increase:

Choose another skill to practice
Similar interview experiences
company logo
Software Engineer
5 rounds | 5 problems
Interviewed by JP Morgan
3734 views
0 comments
0 upvotes
company logo
Software Engineer
4 rounds | 3 problems
Interviewed by JP Morgan
4878 views
0 comments
0 upvotes
company logo
Software Engineer
3 rounds | 6 problems
Interviewed by JP Morgan
1371 views
0 comments
0 upvotes
company logo
Software Engineer
3 rounds | 6 problems
Interviewed by JP Morgan
4411 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Software Engineer
3 rounds | 5 problems
Interviewed by Mindtree
12178 views
7 comments
0 upvotes
company logo
Software Engineer
3 rounds | 7 problems
Interviewed by Optum
7857 views
1 comments
0 upvotes
company logo
Software Engineer
5 rounds | 5 problems
Interviewed by Microsoft
9947 views
1 comments
0 upvotes