JPMorgan Chase Data Engineer Interview Guide

The JPMorgan Chase data engineer loop, round by round: what each stage tests, example questions with the guidance interviewers actually score, the mistakes that sink strong candidates, and how to prepare.

Last updated: Proudly published by: Jeff Wahl

10 real JPMorgan Chase interview questions

Reported by candidates from real loops, tagged by domain, round, level, and year. Expand for what the round is scoring.

SQLL5 · 2024
Write a SQL query to find the difference between the highest and lowest monthly issuance amounts for each credit card name, using the monthly_cards_issued table (columns: card_name, issued_amount, issue_month, issue_year)
Onsite · sql
+

Expected approach: SELECT card_name, MAX(issued_amount) - MIN(issued_amount) AS issuance_difference FROM monthly_cards_issued GROUP BY card_name ORDER BY card_name. The schema is explicitly provided: monthly_cards_issued(card_name VARCHAR, issued_amount INT, issue_month INT, issue_year INT). Follow-up may ask about handling NULL issued_amount values. Part of the coding assessment for Senior Data Engineer onsite loop.

SQLL4
Write a query that outputs the name of each credit card and the difference in the number of issued cards between the month with the highest issuance and the lowest issuance; arrange results by largest disparity first; schema: monthly_cards_issued(card_name VARCHAR, issued_amount INTEGER, issue_month INTEGER, issue_year INTEGER)
Phone screen · screen sql
+
PythonL6 · 2026
1. Write a code in python to print only duplicates in the list,
Phone screen · screen sql
+
PythonL6 · 2026
2. How do I use pandas to filter rows by ID, sort by order number, and reshape the amounts into separate columns like amount_1, amount_2, amount_3 in a single output row?”
Phone screen · screen sql
+
PythonL5 · 2025
Write a function replace_words to stem words in a sentence by replacing each word with its shortest matching root from a given dictionary
Onsite · python
+

JPMorgan Chase Data Engineer coding round. Given a sentence string and a list of root words, replace every word in the sentence with the shortest root that is a prefix of that word. If no root matches, keep the original word. Example: roots=["cat","bat","rat"], sentence="the cattle was rattled by the battery" returns "the cat was rat by the bat". Expected approach: build a set or trie from roots, split sentence into words, for each word check all prefixes against root set. Follow-up: optimize for large dictionaries using a trie structure.

PythonL3 · 2025
Write a function find_bigrams that takes a string and returns a list of all sequential two-word pairs
Online assessment
+

JPMorgan Chase Data Engineer online assessment (CodeSignal). Given a string, split into words and return a list of tuples where each tuple contains two consecutive words. Example: "the quick brown fox" returns [("the","quick"), ("quick","brown"), ("brown","fox")]. Expected approach: split string, iterate with range(len(words)-1), build list of adjacent pairs. Edge cases: single word returns empty list, extra whitespace handling. Listed as Easy difficulty.

PythonL6
1. Write a code in python to print only duplicates in the list,
Technical · screen
+
PythonL6
2. How do I use pandas to filter rows by ID, sort by order number, and reshape the amounts into separate columns like amount_1, amount_2, amount_3 in a single output row?”
Technical · screen
+
Data modelingL6 · 2026
3. Question oin SCD type 2 logic in SQL
Phone screen · screen sql
+
Data modelingL6
3. Question oin SCD type 2 logic in SQL
Technical · screen
+
The technical bar

The phone screen focuses on Python: expect live coding with data transformations and aggregations where edge cases matter. The full loop centers on pipeline architecture, and the working stack is AWS, CI/CD and Databricks with Python, SQL and PySpark. At JPMorgan Chase, strong pipeline answers connect design choices to constraints the bank actually faces. That means audit retention windows, cross-system reconciliation, and what keeps a downstream risk report trustworthy after an upstream delay. PySpark fluency carries real weight; prepare to talk through partitioning strategy, shuffle cost, and how you'd design a batch job to be safely rerunnable after a partial failure. Databricks appears in current listings consistently, so practice writing parameterized jobs and handling schema evolution in notebook workflows rather than ad hoc exploration code.

Prepare for the interview
01 / Open invite
02min.

Walk into Jpmorgan Chase knowing the SQL pattern they'll test.

a Jpmorgan Chase SQL query, the same shape a screen would give you.
The diff against expected. Where ties broke. What you missed.
sandbox
1SELECT user_id,
2 COUNT(*) AS sessions
3FROM events
4WHERE ts >= NOW() - INTERVAL '7 day'
5
Execute your solution0.4s avg.
PayPalInterview question
Solve a Jpmorgan Chase problem
Where offers are lost

Strong candidates who've done solid work at tech companies often lose offers here because they design for speed rather than governance. The tell shows up in pipeline scoping: they skip idempotency, treat reruns as edge cases, and describe monitoring purely in terms of job success or failure, with no mention of data quality checks that would satisfy a downstream audit. JPMorgan Chase interviewers also watch how you handle ambiguity. The bank's internal data systems are large and org-siloed, and requirements rarely arrive fully specified. Candidates who wait for a complete problem statement before engaging tend to read as junior regardless of experience level. On the behavioral side, stories about moving fast or shipping something imperfect land poorly here. The hire describes a pipeline built to a standard someone else can audit, maintain, or recover from without them in the room.

Try a JPMorgan Chase-style SQL round

Find every user active on 3 or more CONSECUTIVE days. This gaps-and-islands shape shows up in nearly every DE SQL round. Edit the query and run it against the seed data.

/* Users active on 3+ consecutive days. */
/* Hint: date minus a per-user ROW_NUMBER is constant within a streak. */
WITH streaks AS (
SELECT
user_id,
activity_date,
activity_date - CAST(
(ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY activity_date
))
AS INT
) AS grp
FROM user_sessions
)
SELECT
user_id
FROM streaks
GROUP BY user_id, grp
HAVING COUNT(*) >= 3
What the loop filters for

JPMorgan Chase's data engineering loop is designed to surface precision under constraint. The firm runs financial infrastructure where a broken pipeline can delay settlement for millions of accounts, trigger regulatory flags, or cascade into a compliance incident. Interviewers are calibrating for whether you design data systems that are auditable, recoverable, and aligned with risk controls. The process rewards engineers who proactively build for failure, document lineage clearly, and reason about what happens when data arrives late or dirty. Engineers from pure-tech backgrounds sometimes underestimate how much behavioral questions carry here. At JPMorgan Chase, how you describe ownership and escalation matters as much as pipeline design. Building something that can't survive a compliance review reads as a gap, even if the pipeline itself is technically sound.

JPMorgan Chase is hiring data engineers now

The roles behind this loop. Prep against the levels and locations they are actually filling.

Prep allocation

Start with Python: the screen filters on it, and the loop's architecture rounds build from it. Sharpen your pandas and PySpark fundamentals first, then shift prep time to pipeline architecture, which carries the most weight in the full loop. A useful frame: work through a financial data pipeline end to end, building in schema validation, idempotency, and a manual recovery path. Those 3 design elements come up repeatedly in JPMorgan Chase system design conversations. AWS and Databricks are the primary platforms; if you haven't written a parameterized Databricks job recently, do that before your loop. On leveling: mid sits at $162K, and $347K at L7 reflects a bar where cross-team architecture ownership and delivery history carry more weight than individual pipeline depth. Prepare your delivery history in detail: dates, scope, measurable impact.

JPMorgan Chase
Hiring now
JPMorgan Chase data engineer · live from career pages
18
open roles
New postings per week
15
5/11
5
5/18
10
5/25
25
6/29
week beginning · ~7 weeks of data
Where they hire
London
3
San Francisco Bay Area
1
Austin
1
Chicago
1
Levels hiring
L55
Updated 18 open listings across 4 cities

JPMorgan Chase compensation and culture

The numbers, tech stack, and team structure live on the company overview.

Compare JPMorgan Chase with other data engineering employers

How the role, pay, and loop stack up against peer companies.

02 / Why practice

Prepare at JPMorgan Chase interview difficulty

  1. 01

    Reading a solution is not the same as writing one

    Every engineer who has frozen on a query they had read a dozen times knows the gap. The only preparation that closes it is producing the answer yourself, under time, before the interview does it for you

  2. 02

    76% of hiring managers reject on the coding task, not the resume

    From HackerRank's 2024 Developer Skills Report. Candidates who look strong on paper still fail the live screen if they haven't done timed, executable practice

  3. 03

    5 problem shapes cover 80% of data engineer loops

    Dedup, sessionization, top-N-per-group, slowly-changing dimensions, partition tricks. Writing the shapes by hand turns the unfamiliar into pattern recognition

Related Guides