Goldman Sachs Engineering New Analyst 面经:Bellevue 三轮 Superday

Goldman Sachs Bellevue Engineering New Analyst 面经:HackerRank 之后进 3 轮 Superday,LRU 的并发追问、flight booking 的 double booking,以及 Kafka 和 BQ。

Goldman SachsEngineering New Analyst更新于 2026年9月17日4 分钟阅读
English
分享

面经 | Engineering New Analyst | 🔥🔥 | Goldman Sachs Bellevue

2027 NG 全职 @ Goldman Sachs Bellevue Engineering - 官网海投 - HackerRank + Superday | 🙂 Positive | Medium | Pending

投的是 Bellevue 新开的 Engineering office。

一开始看到他们一直在讲 AI / cloud transformation,我还以为面试会有很多 AI infra 或 ML 的东西,实际没有。整体还是很传统的软件工程面试,coding、database、项目和 BQ 都有。

前面是 HackerRank 和 video interview,后面进 Superday。Superday 我是 3 轮。

HackerRank

两道 coding。

第一题

Meeting Rooms 那一类。

给一堆 meeting interval,先问有没有 overlap,后面让求最少需要几个 meeting room。

我直接用了 min heap。

这题本身不难,写完以后有几个 testcase,主要就是注意 interval 边界。

第二题

Graph,具体题面我有点记不清了,最后是 topological sort。

第一问就是 BFS + indegree,写完以后 follow-up 问:

如果要输出所有可能的 topological order 怎么办?

这个我当时没有完整写,只说了 DFS / backtracking,每次从当前所有 indegree 为 0 的点里面选一个继续往下。

HackerRank 整体比我想象中正常,没有什么特别 Goldman-specific 的题。

Superday Round 1 — Coding

这一轮面试官挺 friendly 的,前面简单聊了五分钟简历,然后开始 coding。

题就是 LRU Cache。

让我实现 get 和 put,要求 O(1)。

这个算比较熟,我用了 hashmap + doubly linked list。

写完以后 interviewer 看了下,又问了一句:

如果有多个 thread 同时读写这个 cache 怎么办?

我第一反应说加 read/write lock。

然后他问:

get 真的是 read 吗?

这里我卡了一下,因为 LRU 的 get 虽然没有改 value,但是会把 node 移到最前面,其实还是会修改 linked list。

后面就聊了一会儿 locking。

我一开始讲得有点复杂,想拆 read lock / write lock,后面发现对这个实现来说很多操作其实都会改 recency,最后说如果先保证 correctness,用一个 mutex 反而更直接。

这一轮大概就这一道题,没有再塞第二道 LC。

感觉面试官更在意代码是不是 clean,还有你知不知道自己的 data structure 在 concurrency 下哪里会出问题。

Superday Round 2 — Backend / Database

这一轮没有让我设计一个特别大的系统。

题目是 flight ticket booking。

大概先让我从用户搜 flight、选票、付款到 booking 成功走一遍。

我刚开始还在讲 service 怎么拆,interviewer 很快就把话题拉到 database。

Index

先问:What indexes to build?

比如用户一般会按 origin / destination / date 查航班,那 index 怎么建。

聊完以后又问了一点 B-tree,不过没有深挖特别久,大概就是为什么 database index 常用 B/B+ tree、查找怎么走。

Double booking

后面问得最久的是:How to avoid double booking?

假设最后只剩一个 seat,两个人同时点进来。

我先说 transaction,然后他马上问:

两个人都已经 read 到 available 了呢?

这里就开始聊 row lock、optimistic locking、conditional update。

后面我提到可以先 hold seat 一小段时间。

他又问如果 payment 很慢,seat hold 已经过期,但是 payment callback 后面又成功了怎么办。

这个地方我答得不是特别顺。

我大概说 booking 和 payment 应该有各自的 state,不能因为 payment success 就直接认为 booking success。如果 seat 已经 release,可能要走 refund / compensation。

Retry

最后还有一个 retry 的问题。

client timeout 以后重新发 booking request,怎么避免重复创建。

这里就是 idempotency key。

这一轮我觉得是三轮里面最难的,因为一开始题看起来很普通,但一直往 transaction / concurrency 里面追。

Superday Round 3 — Project + BQ

最后一轮基本没写代码。

先让我挑一个过去的 project 讲。

我的项目里提到了 Kafka,所以 interviewer 顺着问了一点:Kafka partition 怎么分、consumer group 是什么、什么时候会 rebalance。

有一个问题我记得比较清楚:consumer 已经处理完 message,但是还没 commit offset 就挂了,会怎么样?

我说 message 会重新被消费,所以 downstream 最好自己保证 idempotent。

他没有继续往 Kafka internals 深挖,后面就转 BQ 了。

这轮有个问题我觉得挺符合 Bellevue 这个新 office 的方向:平时有没有用 GenAI 提效?

我讲了自己用 AI 帮忙读 code / 写 test / 整理一些 repetitive work。

然后他不是听完就过了,还继续问:你怎么确认 AI 生成的东西是对的?

我说至少 production code 不会直接拿生成结果就 merge,还是靠 tests、review,还有自己确认重要的 edge case。

之后就是比较正常的 BQ。

问了 tight deadline 怎么排 priority,还有一次和 manager / teammate 意见不一致是怎么处理的。

我那个 disagreement 的故事准备过,所以还算顺。

反而 GenAI 那一段我之前没有专门准备,讲得比较散。

最后问 Why Goldman / Why Bellevue。

我没有硬讲自己多喜欢 finance,主要说 Bellevue 这边是新的 engineering hub,而且明显在扩 cloud / AI engineering,这一点跟我想做的方向比较接近。

整体

整体比我预期正常很多。

没有因为 Bellevue office 主打 AI / cloud 就突然考一堆模型原理。

Coding 就是常见题,database 那一轮最容易被追。

我觉得比较需要准备的是:LRU 这种题除了能写出来,最好顺手想一下 concurrency;system design 不一定要背很大的 architecture,transaction / index / locking 这些基础反而很容易一直往下问。

BQ 也不是只把 STAR 背完就行。

比如我说用了 GenAI,他马上就问怎么 validate;说和 teammate disagreement,也会追最后到底是谁决定、结果怎么样。

现在还在等结果。