JPMorgan Chase SDE-3 Java Full stack developer Interview Experience (Bangalore)
Summary
I interviewed for a SDE-3 Java Fullstack Developer role at JPMC in Bangalore. Although I was selected, the offer was for a downleveled SDE-2 role due to my years of experience and performance in the LLD round, which I subsequently declined.
Full Experience
1st Round (Coding)
This round focused on breadth of knowledge rather than depth, as I was asked multiple LeetCode medium-type questions within an hour. I was able to answer most of these since they were quite popular. The interviewer was also helpful, providing hints when needed. While I coded the first question fully, for others, I mainly wrote down the core logic in 2-3 lines. There was also some discussion regarding the work I had highlighted on my resume.
2nd Round (LLD)
Although this round was designated for Low-Level Design, it delved heavily into Java fundamentals and its unique aspects compared to other languages. I was asked about the advantages of new features in Java 21, and to compare Java with languages like Scala (which I have experience with). Concurrency control in Java and its extension to distributed systems was also a major topic. I was given a piece of code to review for issues and another to debug and fix. There was an in-depth discussion about the technologies I've worked with, the design choices I made, and the rationale behind those decisions. This was one of the harder rounds I've experienced, as I was grilled rigorously on every point I brought up.
3rd Round (HLD + Behavioral)
This round was conducted by the Head of the department I was interviewing for. It began with a discussion about the new business initiatives they are building. Following this, behavioral questions were asked about my motivation for joining JPMC and the kind of work I was looking for.
The High-Level Design question involved designing a website capable of taking files/folders (like Aadhar documents) from a user, validating them through a third-party software (which takes 2-3 seconds), storing them in our system, and then providing a tracking link back to the user. Key discussion points revolved around storage strategies (e.g., file metadata in a database, file bytes in S3), managing the validation delay while ensuring a positive user experience (I suggested an asynchronous worker fleet and temporary storage), API design, and scaling considerations for the system.
Ultimately, I was selected for the role but with a downlevel to an SDE-2 position. The primary reasons given were that my overall experience (4.5 YOE) was less than most SDE-3s in their organization (who typically had >6 years), and my performance in the second round specifically did not meet the SDE-3 bar. I chose to decline the offer, despite the compensation being quite good and almost matching an SDE-3 salary to align with my current compensation.
Interview Questions (12)
Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. The focus was on achieving the most optimal solution without using extra space.
Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Trapping Rain Water
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.
Two Sum
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
Binary Tree Level Order Traversal
Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level).
Java 21 New Features
Discuss the advantages of new features introduced in Java 21.
Java vs. Scala Comparison
Compare Java with other languages like Scala, specifically highlighting differences and advantages.
Concurrency Control in Java and Distributed Systems
Explain concurrency control mechanisms in Java and how they extend to distributed systems.
Code Review
I was given a piece of code and asked to review it for potential issues, improvements, or bugs.
Debugging Code
I was given a piece of code containing bugs and asked to identify and fix them.
Motivation and Career Aspirations
Discussion centered on my motivation for joining JPMC and the type of work I am seeking.
Design a Document Upload & Validation System
Design a website that allows users to upload files/folders (e.g., Aadhar documents). The system should validate these documents using a third-party software (which takes 2-3 seconds), store them, and provide a tracking link back to the user. Key discussion points included storage mechanisms (file metadata in a DB, file bytes in S3), handling the validation delay while providing a good user experience (e.g., using an async worker fleet and temporary storage), API design, and scaling considerations.
Preparation Tips
My preparation for the coding rounds largely involved practicing popular LeetCode questions, which enabled me to answer most of the problems given they were commonly known. For the LLD and HLD rounds, my preparation was based on my prior professional experience and knowledge of Java fundamentals, distributed systems, and system design principles.