目录
正在加载目录...

JPMorgan Chase SDE 面经|从 OA 到 Superday 完整复盘

今年把 JPMorgan Chase sde 的流程走了一遍,从 OA 到 Superday,整个过程比纯互联网大厂更偏工程落地和合规意识。题目不是最难的,但对代码正确性、项目讲解深度和行为题真实性的要求都不低,尤其系统设计里金融场景的特殊要求——幂等、可审计、失败重试——是纯互联网备考容易漏掉的地方。

JPMorgan Chase SDE 面经|从 OA 到 Superday 完整复盘

OA:HackerRank

两道 Easy 到 Medium 的题,大约 60 到 70 分钟。题风偏数组、字符串、哈希,风格比较标准,不出偏题。

我的策略是先保证能过可见用例,写完再补边界。同批有人反馈还碰到过「有序数组绝对差之和」「Maximum Batch Efficiency」这类实现题,以及 Two Sum、Maximum Subarray、First Unique Character 这些经典题。

隐藏用例是这轮真正的筛人点。空输入、重复元素、负数、全相同这些 edge case,代码里没处理就会悄悄挂掉,提交前自己多走几遍。

JPMorgan Chase OA 参考题目

题目 1:Minimum CPU Cores

题意:
给定多个进程的开始和结束时间,求同时运行的进程最多有多少个,即所需的最少核心数。

思路:
按开始时间排序,用最小堆记录各核心的结束时间。若堆顶结束时间 < 当前开始时间,则复用核心;否则新增核心。最终堆大小即为最少核心数。

题目 2:Array Challenge

题意:
对每个元素与左侧所有元素比较:左侧更大则减去差值,更小则加上差值,返回每个元素的累计结果。

思路:
直接遍历左侧元素为 O(n²),会超时。用平衡树或有序结构维护左侧元素,并记录数量和元素和,快速计算贡献,将复杂度降至 O(n log n)

学生岗有人在 OA 之后还要过一轮 HireVue(录制视频回答行为题),我这边是 OA 过了直接进技术面,没有这一步。

JPMorgan Chase OA HireVue 参考题目

  • 第一题:What attracts you to J.P. Morgan and specifically an opportunity in Asset or Wealth Management?
  • 第二题:Describe what factors have influenced financial markets in recent months and how they might affect our clients.
  • 第三题:Please share an example of a time when you had to work as part of a team to accomplish an important goal. Please describe the situation, your actions, and the outcome.
  • 第四题:Describe a time when you made a mistake at work or school. Describe the situation, what actions you took, and what you learned.
  • 第五题:What do you think are the greatest challenges the financial services industry will face in the next 5 years?

技术面试:CoderPad + 简历深挖

共享编辑器里先做题,再聊项目,两块都有一定分量。

Coding 方向

这轮的题比 OA 更贴近业务一点,不是纯算法模板:

实现一个 transaction grouping 函数,把一批交易按某个 key 分组汇总,然后讨论如果交易乱序到达结果会怎么变——这是在考你对实际数据处理场景的感知,不只是写个 groupBy 就完事。

根据 accounts 表和 transactions 表,写或描述 SQL 查询:找出近期有失败交易的不活跃账户。SQL 不难,但得想清楚”不活跃”怎么定义、失败交易怎么判断,边界条件要说出来。

用类和接口建模一笔支付流程,怎么表示校验步骤和失败状态。这是 OOD 题,考的是类设计合不合理、扩展时改动是否最小。

根据 email、phone、account id 做客户去重,并讨论误判(false positive)怎么处理。这题没有标准答案,面试官想看的是你对数据质量问题的理解。

Java 岗还会穿插语言相关的问题:HashMap 的内部结构、Streams 的用法、并发场景下什么时候上 ConcurrentHashMap、为什么不直接用 HashMap。这类问题不难,但得真的用过才答得自然。

简历深挖

项目这块被追问设计取舍、测试怎么做、如果重来会不会改某个决定。和其他大厂一样,你得真的做过、记得住细节,泛泛讲”提升了性能”是接不住追问的。

Superday

一天里多轮连着打,有的组会把 coding、code review、设计压在同一天里。

编码 + Code Review

先看一份「同事风格」的现有实现,找逻辑问题和风格问题,然后现场写一道新题。有人碰到的是 list/array 处理、排序、run-length counting 这类。

这轮的考法和纯算法题不一样——读别人的代码、找 bug、给 review 意见,更像日常工作的样子。边写边说思路,写完主动指出可能的坑,比闷头写出来再等面试官追问效果好很多。

系统设计

题目比较贴金融场景,近期候选人提到过:

Global File Storage——分布式存储,重点是数据一致性和分区策略。

类似 Ticketmaster 的订票系统——高并发下怎么防止超卖、怎么保证幂等。

视频流的 watch history——写入频率高,读取要快,数据量大,怎么存、怎么查。

Virus Scanning Service——强调幂等和容错,扫描服务挂了怎么恢复,重复扫描怎么处理。

可扩展的 transaction processing——一致性、消息队列、瓶颈在哪里、怎么做失败重试。

摩根大通的系统设计面试官偏 checklist——他们想看你是否主动覆盖 load balancing、数据分区、缓存策略、失败重试,不要等追问才说。支付账本类的题还会专门问:怎么保证不重复入账、超时订单怎么处理、日志怎么留够审计用。这几点是纯互联网备考容易漏掉的。

行为题

「上线后出过问题怎么处理」、「变更没按流程时怎么办」、「和多方意见不一致怎么推进」——这几道是摩根大通 BQ 的高频方向,都和线上责任感有关。

我准备了一个真实的线上事故处理经历和一次跨团队协调的经历,用 STAR 讲清楚结果和复盘,比空说「我很负责任」有用得多。这家很在意你有没有真的在压力下处理过有影响的问题,以及你有没有从中学到东西。

几点体会

正确性和可维护性比花活重要。能过隐藏用例、能讲清楚设计取舍,比写出最优解但有 bug 更有说服力。

Superday 的 code review 和「乱序交易/幂等」这类题,比纯算法更像日常工作场景,这是摩根大通和纯互联网厂的最大区别之一。

体验强依赖团队。支付、消费和靠近 Markets 的组,问法和技术栈差异很大,按 JD 针对性准备比通用备考有效率。

行为题至少准备两个带具体结果的线上问题故事,不能全是”团队合作很顺利”那种。

备考方向总结

算法侧:数组、哈希、滑动窗口是高频,再补交易分组、客户去重、支付状态机这类实现题。

系统设计侧:按「幂等 + 可审计 + 分区」练一套金融场景的设计叙述,和纯互联网的 SD 准备方向有差异。

行为侧:至少准备两个带结果的线上问题故事,STAR 框架讲清复盘。

把「能过测的代码 + 一两个金融向实现题 + 一套可审计的设计叙述」当作最低配置。

有在准备摩根大通或其他金融科技公司(Bloomberg、Citadel SDE 这些)的同学,可以来找我们聊聊。我们是 InterviewShow,做过摩根大通、Bloomberg、Citadel 这些公司的面试,金融场景的系统设计、transaction 处理类的 coding 题、BQ 线上事故故事打磨都有覆盖,一对一跟着走。有需要的来聊。

END