Recommended preparation

Editorial practice groupings, not verified official interview questions or endorsements.

Public JPMorgan Chase prep guide

JPMorgan Chase Frontend Interview Questions

Prepare with five practice prompts shaped by nine public frontend accounts from 2021 to 2026 and by the official hiring pages: a generic memoization function in a security-and-React round, a polyfill for reduce with promise, generator and currying follow-ups, a generic async promise React hook with typed state and effect cleanup, a to-do list whose tasks carry a changeable priority, and the React and JavaScript conversation round on closures, clones, hooks, storage and CORS.

This guide uses public, self-reported interview accounts and the official JPMorgan Chase hiring pages to create realistic constraints. It does not claim access to private interview material, a fixed interview format, or the stack of every JPMorgan Chase team; each team runs its own loop.

5 practice promptsJavaScript, React, web securityFull practice set requires Premium

Study priorities

Prepare for product judgment, not JPMorgan Chase trivia

The public accounts agree on the questions more than on the format. Across the UK, the US and India, frontend candidates describe the same conversation: explain a closure, the difference between a shallow and a deep clone and an Object.assign use case, useCallback versus useMemo, useState versus useRef, context and when a higher-order component fits, the difference between a cookie, sessionStorage and localStorage, what CORS is. The coding they describe is small and exact: a generic memoization function, a polyfill for reduce, a generic async promise React hook with a useEffect cleanup function, a to-do list with priorities. Each prompt below starts with the clarifying questions a strong candidate asks, then the behaviours a strong answer covers, then the miss that usually ends the round.

The loop itself is team-run. The official How we hire page says the interview process will differ for each position, and employees say the same in public threads. One Bengaluru SDE2 loop in 2024 ran three 60-minute rounds in one sitting, opening with security and React; a 2026 UK senior loop was a recruiter screen and one technical interview; a Houston React developer in 2022 had three video interviews, one of them run by an interviewer assigned to a back-end role; a 2025 lead-level panel put three lead engineers in one hour. Prepare the recurring questions first, then rehearse the shape the recruiter describes.

Reported interview process

JPMorgan Chase frontend interview process

JPMorgan Chase's How we hire page says the interview process will differ for each position and that candidates meet several people in multiple rounds, and JPMC-badged employees on Blind describe decentralised, team-run loops. Frontend accounts from 2021 to 2026 in the UK, the US and India describe a recruiter screen, a one-hour React and JavaScript conversation often split between two interviewers, 60 to 90 minutes of live coding, and a hiring-manager or leadership round. The online-assessment and super-day rows come from generic software-engineer accounts that Software Engineer II and III requisitions probably share.

No standard loop exists: the format depends on the line of business and the team, so the order and count of stages vary between accounts, and most accounts describe two to four of these stages rather than all of them. The super-day shape rests on generic software-engineer accounts, and no frontend-titled report confirms it. Several frontend accounts are one to three lines long and some dates are approximate; one candidate met an interviewer assigned to a back-end role, and another heard nothing after a cleared round. Sources last checked Oct 2026.

Front-end and React engineers, team-run loops, 2021 to 2026

Stage order varies by team. The security-and-framework row is one Bengaluru loop; the super-day row is the generic Software Engineer II and III shape.

StageWhat happensWhoEvidence
Recruiter contact A phone screen about the CV; some candidates were contacted by email only and went straight to team interviews. Most loopsOfficial page and 3 reports
Online assessment HackerRank with two easy-to-medium problems, or a recorded video interview for some roles; weeks before the loop in some accounts. Practice: DSA for frontend loopsSoftware Engineer II and III requisitions; not reported in the frontend-titled loopsOfficial page and 6 reports
Frontend technical conversation About an hour, often split between two interviewers or a panel of three: JavaScript fundamentals (closures, clones, Object.assign, reduce), React hooks and lifecycle, framework choice, resume-driven questions. Practice: Explain closuresFrontend-titled roles; varies by team10 public reports, 2017–2025
Live coding 60 to 90 minutes: a small React build (a to-do list with priorities, functional components, a generic async promise hook with useEffect cleanup) or paper coding; one London briefing planned 90 minutes of live coding plus a 30-minute behavioural stage. Practice: React to-do listMost frontend loops6 public reports, 2021–2026
Security and framework rounds Three 60-minute rounds in one sitting: security and React (XSS, lifecycle, a memoization function), JavaScript and framework (promises, generators, a reduce polyfill, currying), hiring manager. Practice: DOM XSS preventionOne Bengaluru SDE2 loop, 2024One public report, 2024
Super day Three 45-minute rounds in one day, in any order: a pull-request review plus a medium problem, high-level design on a HackerRank whiteboard or CodePair (a rate limiter recurs), and a behavioural round with a Director or Executive Director; a short team-match call may follow. Practice: Create an LRU cacheGeneric Software Engineer II and III loops, US and India, 2024 to 2026; probably shared by React-titled requisitions, unconfirmed7 public reports, 2024–2026
Hiring manager and leadership A team manager and a managing director, the application owner and lead developer, a hiring-manager round on the candidate's project and culture fit, or a Director or Executive Director in the super-day loops. Practice: Behavioural storiesMost loops5 public reports, 2021–2025

Role lenses

Two product contexts for practising transferable frontend judgment

These are preparation lenses derived from the official Software Engineer Program page, the frontend requisition titles and the security-and-React round in one public account, not claimed team assignments. Choose the lens closest to the role and keep the reasoning framework-neutral.

AI-assisted interfaces and design systems

The Front-end Developer track on the official Software Engineer Program page describes chat assistants with streaming responses and citations, design systems and accessibility standards, and React alongside Swift and Kotlin.

Practice focus: Streaming reads with cancellation, loading and failure states that stay truthful, accessible components with keyboard semantics, and typed contracts at the API boundary.

Secure data-handling screens

Requisitions pair React with Java or Python back ends, and one Bengaluru loop opened with a round on XSS, security principles at work, React lifecycle methods and component design for data privacy.

Practice focus: Safe DOM sinks and escaping, where tokens and session state live, cookies versus storage, CORS, and components that render only the data a screen needs.

Representative practice prompts

Five JPMorgan Chase frontend interview practice questions

For each prompt, clarify the contract, explain ownership and trade-offs, implement or diagram the smallest credible slice, and test the failure cases. Each prompt links to the public report it is modelled on and to a practice page.

Prompt 1

Write a generic memoization function inside a security-and-React round

In a 60-minute round that also covers XSS, security principles at work, React lifecycle methods and component design for data privacy, write memoize(fn): a wrapper that caches results by argument so a repeated call with the same input returns the cached value without calling fn again, then explain when it is safe to use.

Practice version modelled on a reported round: Public report: frontendgeek SDE2 frontend loop, Bengaluru, April 2024

What this measures

Cache-key design, reference versus value equality, memory growth and eviction, the pure-function precondition, and whether you can move from security concepts to code without losing the thread.

Clarify first

  • Confirm how arguments are compared: one primitive, several primitives, or object references, and whether the this value matters for the wrapped function.
  • Confirm whether the cache may grow without bound in the exercise or needs a size limit or an eviction rule.

Strong answer should cover

  • Build the key deliberately: a Map keyed by the single argument in the simple case, nested Maps or a serialised tuple for several, and say why JSON.stringify on object arguments is a trade-off rather than a default.
  • Keep the cache in a closure per wrapped function, pass this and the full argument list through on a miss, and return the cached value on a hit.
  • State the precondition out loud: memoization is correct only for pure functions with stable outputs, and cached rejections or thrown errors need a decision.
  • Name the memory cost and offer a bounded cache or a WeakMap for object keys when the interviewer asks about growth.

Common miss: Keying each call with JSON.stringify, which collides on undefined, functions and key order, and leaving the cache to grow for the life of the page without saying so.

Practice the memoize function (Premium)

Prompt 2

Write a polyfill for the reduce function, with promises, generators and currying as follow-ups

In a JavaScript and framework round, implement Array.prototype.reduce without using the native method: call the reducer with the accumulator, the current value, the index and the array for existing indices only, support an optional initial value, and throw on an empty array with no initial value. Expect the same round to move on to promises and asynchronous behaviour, generator functions, object manipulation, pure functions and currying.

Practice version modelled on a reported round: Public report: frontendgeek SDE2 frontend loop, Bengaluru, April 2024

What this measures

Exact knowledge of a core array method, handling of sparse arrays and edge cases, and breadth across the JavaScript topics the round moves through after the code.

Clarify first

  • Confirm whether the polyfill goes on Array.prototype or is a standalone function, and whether holes in sparse arrays must be skipped as the native method skips them.
  • Confirm the expected behaviour for an empty array without an initial value; the native method throws a TypeError.

Strong answer should cover

  • Detect whether an initial value was passed by the arguments length, not by comparing with undefined, so undefined stays a valid initial value.
  • Without an initial value, take the first existing element as the accumulator and start from the next index; skip holes with an in check.
  • Call the reducer with (accumulator, currentValue, index, array), return the final accumulator, and throw a TypeError for an empty array with no initial value.
  • For the follow-ups, explain microtask ordering for promises, how a generator pauses at yield and resumes on next(), and show currying as a closure that collects arguments until the arity is met.

Common miss: Treating undefined as no initial value, iterating over holes in a sparse array, and returning undefined for an empty array instead of throwing.

Practice implementing Array.prototype.reduce (Premium)

Prompt 3

Live-code a generic async promise React hook with typed state and effect cleanup

Write useAsync<T>(fn: () => Promise<T>, deps) in TypeScript without references: it runs the async function, exposes loading, data and error, re-runs when the dependencies change, and uses the useEffect cleanup function so a response that arrives after the component unmounted or the inputs changed does not reach state.

Practice version modelled on a reported round: Public report: Aced senior frontend engineer loop, UK, around May 2026

What this measures

Generic types at a hook boundary, a request-state model that cannot contradict itself, effect lifecycle and cleanup, and stale-response handling while you narrate.

Clarify first

  • Confirm whether the hook runs on mount only or whenever the dependencies change, and whether a manual re-run function is expected.
  • Confirm what cancellation must guarantee: ignoring a late result inside the hook, or also aborting the request with an AbortSignal.

Strong answer should cover

  • Type the hook with a generic parameter for the resolved value and return a discriminated union (idle, loading, success with data, error with an Error), so callers narrow on status rather than on three optional fields.
  • Start each run by setting loading, then await inside the effect; keep a cancelled flag or an AbortController in the effect scope and flip it in the cleanup function.
  • Check the flag before each setState after the await, so an unmounted component or a superseded run does not write state.
  • Normalise unknown rejections to an Error and keep the dependency list honest; if the function identity changes on each render, say so and take the dependencies explicitly.

Common miss: A hook that sets state after the await with no cleanup, so a slower earlier request overwrites a newer result after the inputs changed.

Practice fetching and rendering with loading, error and empty states (free)

Prompt 4

Build a to-do list where each task has a priority that can be changed, and tasks can be deleted

In React, build a to-do list where each task carries a high, medium or low priority. The priority can be updated after the task is created, and a whole task can be deleted. Keep the input controlled, the ids stable and the updates immutable.

Practice version modelled on a reported round: Public report: Taro React developer loop, Houston, June 2022

What this measures

Local state modelling, controlled inputs, immutable updates of an array of objects, stable keys, and whether the priority control works from the keyboard.

Clarify first

  • Confirm whether tasks are sorted or grouped by priority, and the default priority for a new task.
  • Confirm whether completion state or persistence is in scope, or only add, change priority and delete.

Strong answer should cover

  • Hold tasks as an array of objects with a stable id, text and priority, and derive a sorted or grouped view at render time rather than storing it.
  • Update a priority by mapping to a new array with one replaced object; delete by filtering; leave the existing array and objects untouched.
  • Render the priority as a labelled select or radio group so it is keyboard-operable and announced; use the id as the key, not the index.
  • Keep the input controlled, clear it on submit, ignore empty or whitespace-only text, and show an empty state when the list is empty.

Common miss: Using the array index as the key, so deleting a task shifts the priority controls of the tasks after it, or mutating a task object in place so React does not re-render.

Practice the React to-do list (free)

Prompt 5

Hold the React and JavaScript conversation round: closures, clones, hooks, storage and CORS

A technical conversation, in some accounts an hour with two interviewers, that moves through fundamentals: explain a closure; shallow versus deep clone and an Object.assign use case; useCallback versus useMemo; useState versus useRef; context and when a higher-order component is the better tool; the difference between a cookie, sessionStorage and localStorage; what CORS is. Answer each in two or three exact sentences with one example.

Practice version modelled on a reported round: Public report: Blind React software engineer interview, London, May 2023

What this measures

Whether you can state fundamentals plainly, pick the right example quickly, and move between JavaScript, React and browser topics without drifting into internals the interviewer did not ask about.

Clarify first

  • Ask whether the interviewer wants a definition or an example first; a short example usually proves understanding fastest.
  • Confirm the role's framework and React version before the hook questions, since the memoization answer depends on it.

Strong answer should cover

  • Closure: a function keeps access to the variables of the scope it was created in after that scope has returned; give the counter example. Shallow clone (spread, Object.assign) copies the top level and shares nested references; deep clone (structuredClone) copies the whole graph; Object.assign also merges defaults into a target.
  • useMemo caches a computed value and useCallback caches a function identity, both for referential stability between renders; useState schedules a re-render on change while useRef holds a mutable value that does not.
  • Context shares a value down the tree without prop drilling; a higher-order component wraps a component to add behaviour and fits when the same cross-cutting logic must apply to several components.
  • Cookies travel with requests to the server and can be HttpOnly; sessionStorage lives per tab until it closes; localStorage persists per origin. CORS is the browser rule that blocks cross-origin reads unless the server allows them with Access-Control headers.

Common miss: Long answers about internals that do not state the simple rule, or saying useCallback makes the function faster instead of explaining referential stability.

Review closures (free)

Public mini walkthrough

Scope the generic async promise hook before the first line

Treat this as a representative exercise, not a description of the reported one. Work from the signature toward the cleanup, and say each decision out loud.

  1. Pin the signature

    useAsync<T>(fn: () => Promise<T>, deps): the generic parameter is the resolved value. Say whether the hook runs on mount only or on each dependency change.

  2. Choose one state

    A discriminated union: idle, loading, success with data of type T, error with an Error. Callers narrow on status, and no two fields can disagree.

  3. Run inside the effect

    Set loading, call fn, await it, then write success or error. Normalise an unknown rejection to an Error before it reaches state.

  4. Clean up

    Declare a cancelled flag or an AbortController in the effect scope and flip it in the returned cleanup function; check it before each setState after the await.

  5. Test the edges

    Unmount mid-flight, change a dependency while a request is pending, a rejected promise, a function that throws synchronously, and two runs that resolve out of order.

Actionable preparation

A 7-day JPMorgan Chase frontend interview preparation plan

Every day ends with code, a test, a design artifact, or a question you can use in the real process.

  1. Day 1

    JavaScript fundamentals: closures, the event loop, shallow versus deep clone, Object.assign, prototypes, var, let and const, arrow versus normal functions.

    Deliverable: A one-page answer sheet with one example per topic.

  2. Day 2

    Utility functions from memory: memoize, a reduce polyfill, an LRU cache and balanced brackets, each with edge-case tests.

    Deliverable: Four functions with tests for sparse arrays, undefined arguments and empty input.

  3. Day 3

    Asynchrony: promises and microtask order, generators, currying, then the generic async promise hook with useEffect cleanup in TypeScript.

    Deliverable: A useAsync<T> hook with a test that a late response does not overwrite a newer one.

  4. Day 4

    React builds against a clock: the priority to-do list, then fetch and render a list with loading, error and empty states.

    Deliverable: Two timed builds with stable ids, immutable updates and a keyboard-operable priority control.

  5. Day 5

    React concepts and web security: useCallback versus useMemo, useState versus useRef, context versus higher-order components, the lifecycle, XSS and DOM sinks, cookies versus storage, CORS.

    Deliverable: A second answer sheet, two sentences and one example per topic.

  6. Day 6

    The super-day shape that generic Software Engineer II and III accounts describe: review a pull request for hardcoded credentials and poor variable names, solve one medium problem, sketch a rate limiter; then behavioural stories about a feature you were proud of, a conflict in a team and why a bank.

    Deliverable: Six stories in a structured format, each with a decision, a trade-off and a measured result.

  7. Day 7

    Mock loop: one conversation round, one live-coding round and one hiring-manager conversation, each narrated.

    Deliverable: A list of the questions you will ask the recruiter about rounds, length, assessments and the team.

Preparation FAQ

Common JPMorgan Chase frontend interview preparation questions

Are these the real JPMorgan Chase questions?

No. They are FrontendAtlas practice versions modelled on rounds described in public, self-reported accounts on Aced, Taro, Blind, LeetCode Discuss and frontendgeek. The wording, the data and the test cases are ours.

Is there a standard JPMorgan loop?

No. The official How we hire page says the interview process will differ for each position and that you can expect to meet several people in multiple rounds, and employees in public threads describe decentralised, team-run interviews that depend on the line of business. The public frontend accounts match that: a recruiter screen and one technical interview in the UK in 2026, three 60-minute rounds in one sitting in Bengaluru in 2024, three video interviews in Houston in 2022, a panel of three lead engineers in 2025. Confirm the number of rounds, their length and whether an online assessment comes first.

Will I get LeetCode-style problems?

Some loops include them. A New York candidate in 2021 was asked to delete a node in a linked list, check for balanced brackets and implement an LRU cache alongside JavaScript questions; in a 2025 lead-level panel one of three engineers asked three easy-to-medium LeetCode-style questions; and the generic Software Engineer II and III accounts describe a HackerRank screen with two easy problems, then a coding round that opens with a pull-request review and moves to a medium problem, with one interviewer in those threads saying the expected difficulty is medium. The frontend-titled UK and Bengaluru accounts used here describe concept questions and small builds instead. Ask the recruiter whether the team runs the super day.

Which spelling: JPMorgan Chase, JP Morgan or JPMC?

The company's own careers pages use JPMorgan Chase, and this guide follows them. Public interview reports write JP Morgan, JPMorgan, JPMC and Chase, and employees on Blind carry a JPMC badge, so search for all of them when you look for more accounts.

What do Software Engineer II, III and Lead mean on a requisition?

On 21 October 2026 the requisitions with frontend titles ran from Software Engineer II (React/Java, New York) and Software Engineer III (React, Glasgow) to Lead Software Engineer (React, Chicago) and Senior Lead Software Engineer (Jersey City), plus a Web Front End Developer in London. Candidates and employees describe Software Engineer II as Associate, Software Engineer III as mid level and Lead Software Engineer as VP; that mapping is not official, so ask the recruiter which level and which team you are interviewing for.

Public interview reports and official context

Sources and evidence limits

These links support the public context used by the guide. Their notes state what each source can and cannot establish about preparation.

Public report: Aced senior frontend engineer loop, UK, around May 2026

One self-reported senior (L5) loop in the UK, rejected: a recruiter screen, then a technical interview with live coding of a generic async promise React hook where generic types and a useEffect cleanup function were expected, and "Tell me about yourself" in the project discussion. It establishes that exercise in one 2026 loop; it cannot establish the current format or the loops of other teams.

Public report: Taro React developer loop, Houston, June 2022

One self-reported React developer loop without an offer: three video technical interviews, one of them run by an interviewer assigned to a back-end Python role, and a React question to build a to-do list where each task has a high, medium or low priority that can be updated and whole tasks can be deleted. It establishes that build in 2022; it cannot establish exact wording or the current loop.

Public report: Taro lead software engineer panel, United States, March 2025

One self-reported lead-level panel of about an hour with three lead engineers: three easy-to-medium LeetCode-style questions from one, how React works and why React over Angular from another, back-end basics, REST, optimisation and security from the third. It establishes the panel shape and topic mix in one 2025 loop; it cannot establish the current format.

Public report: frontendgeek SDE2 frontend loop, Bengaluru, April 2024

One self-reported SDE2 loop with three 60-minute rounds in one sitting: security and React (XSS, security principles at work, React lifecycle methods, component design for data privacy, a generic memoization function), JavaScript and framework (promises, asynchronous behaviour, generator functions, a reduce polyfill, object manipulation, pure functions and currying) and a hiring-manager round, with an offer on day 10 that the candidate declined. It establishes those rounds in 2024; it cannot establish how other Bengaluru teams interview.

Public report: LeetCode onsite across several teams, New York, February 2021

One self-reported onsite in which each interview was distinct depending on the team and hiring manager: prototypes, arrow versus normal functions, CORS, cookie versus session versus local storage, deleting a node in a linked list, balanced brackets and an LRU cache. It establishes the question mix in 2021; it cannot establish the current format.

Public report: Blind React software engineer interview, London, May 2023

One poster's own first technical interview over Zoom with no briefing: explain a closure, shallow versus deep clone, an Object.assign use case, useCallback versus useMemo; a commenter in the thread describes JPMorgan interviews as decentralised with no consistency between teams. It establishes those questions in 2023; the poster did not report back on the later stage.

JPMorgan Chase: How we hire

Official hiring page with four steps, Explore, Apply, Interview and Decision. It states that the interview process will differ for each position and that candidates meet several people in multiple rounds; it names no interview questions.

JPMorgan Chase: hiring FAQs

Official FAQs listing the assessment types, structured live interviews, on-demand recorded interviews and virtual skills assessments, and describing technical assessments as online tests or live technical interviews with an interviewer. Context for the format, not evidence of content.

Published by JPMorgan Chase

Official preparation pages from JPMorgan Chase

JPMorgan Chase publishes these pages itself. They describe the process and expectations in the company's own words; they do not list interview questions, and FrontendAtlas is not affiliated with JPMorgan Chase.

PageWhat it coversChecked
How we hireThe four steps (Explore, Apply, Interview, Decision) and the statement that the interview process will differ for each position, with several people met across multiple rounds.Oct 2026
Hiring FAQsThe assessment types (structured live interviews, on-demand recorded interviews and virtual skills assessments), technical assessments as online tests or live technical interviews with an interviewer, and the note that many assessments may not be retaken for a designated timeframe.Oct 2026
Software Engineer ProgramThe full-time programme's Front-end Developer track: AI-powered interfaces such as chat assistants with streaming responses and citations, design systems and accessibility standards, secure authentication, and frameworks such as React, Swift and Kotlin. It describes no interview format.Oct 2026

Full company practice

Continue with the full JPMorgan Chase practice set

This public guide is complete enough to plan a focused week. Premium unlocks the two drills behind the first prompts, Memoization and Implement Array.prototype.reduce, and the wider premium library of coding, concept and system-design practice.

Unlock the full JPMorgan Chase practice set