Just finished a JPMC senior SWE loop (what they call Software Engineer III, which maps roughly to L5 at Google or E5 at Meta in terms of scope expectations). Writing this specifically about the system design round because I did not prep the right things and want to save someone else the headache.
What I prepped: classic distributed systems stuff. Consistent hashing, Kafka, Cassandra, the usual Leetcode-adjacent system design canon.
What they actually asked: design a real-time fraud detection pipeline for payment transactions at scale.
I should have seen this coming. It's literally a bank. The problem wasn't technically exotic, but the framing required me to think about: Regulatory and audit requirements (logs have to be immutable and retained) Latency at transaction time vs. latency for downstream fraud analysts False positive rates and their business cost (blocking a legitimate wire transfer is actually really bad) Graceful degradation when the fraud model is unavailable, and whether you fall back to a rules engine or just let it through
I answered fine on the infrastructure side but fumbled the regulatory constraints angle because I'd never thought about that seriously. They weren't trying to trick me. It's just core to their actual business.
Takeaway for senior candidates at JPMC specifically: pair your normal distributed systems prep with some light reading on fintech compliance constraints. Think about what happens when your system gets subpoenaed, what auditability actually means in practice, why idempotency matters even more than usual when money is involved.
The interviewer was an SRE lead. He was thorough but fair. He pushed back on my choices with good questions, not gotchas.
Would do again. Offer came through two weeks later. Took it.