一句话总结
Goldman Sachs的软件工程师面试不是考察你会多少种排序算法,而是考察你在高压下能否像交易员一样思考——在有限时间内做出合理的工程权衡。90%的候选人失败不是因为技术不够,而是因为把面试当成了考试而不是对话。
这是一家把“风险”刻进DNA的公司。面试官问的不是“最优解”,而是你能否在约束条件下给出“可接受的次优解”。这不是在考你能不能写代码,而是在考你能不能在真实世界里做决策。
适合谁看
这篇文章写给三类人。
第一类是正在准备Goldman Sachs技术面的工程师。你可能已经通过了简历筛选,收到了面试邀请,但不确定每一轮到底在考什么。New York总部的面试和London、Singapore的流程有细微差别,不同team的hc(hiring committee)权重也不同。
第二类是想要了解金融科技公司面试特点的工程师。你可能一直在互联网公司面试,想看看传统金融机构的考察维度有什么不同。Goldman Sachs的技术栈、代码规范、系统复杂度要求都和FAANG有明显区别。
第三类是想要在2026年申请Goldman Sachs的人。明年的人才市场竞争会更激烈,hc的bar(门槛)会根据当年headcount动态调整。你需要知道什么样的候选人能在现在的环境下拿到offer。
如果你只是想了解一般的软件工程师面试技巧,这篇文章不适合你。这里没有二分查找的代码实现,没有教你如何反转链表。这里只有Goldman Sachs独有的面试逻辑和只有内部人知道的准备策略。
面试流程拆解:每一轮在考什么
Goldman Sachs的软件工程师面试通常有5-7轮,分为电话面试和现场面试两个阶段。电话面试一般是1-2轮,现场面试是4-5轮。每一轮的考察重点不同,淘汰率也不同。
第一轮:HR电话筛选
这一轮通常由recruiter打给你,时长30分钟。不是技术面,而是确认你的基本信息和求职动机。Recruiter会问你的current compensation、notice period、visa status这些基本问题。这一轮看似简单,但Goldman Sachs的recruiter会通过你的回答判断你对这个岗位的真实兴趣度。
一个常见的错误是候选人在这一轮表现得过于被动。Recruiter问“你对这个岗位有什么问题”,你说“没有了谢谢”。这在Goldman Sachs是致命信号,因为这是一家极度重视候选人对金融行业承诺的公司。你应该主动问一些关于team size、tech stack、project type的问题,让recruiter感受到你是真的想了解这个岗位而不是海投。
第二轮:技术电话面试
这一轮是45分钟的技术面,由一个engineer打给你。通常是两道coding题目,难度在LeetCode medium到hard之间。但Goldman Sachs的coding面和Google的coding面有一个本质区别:它更注重你能不能在有限时间内完成一道题,而不是让你做三道题每道都写一半。
具体来说,Goldman Sachs的技术电话通常只考一道题,但要求你从brute force写到最优解,还要讨论time complexity和space complexity。面试官会故意给你hint,看你能不能接受反馈并调整思路。这不是考察你能不能独立解决问题,而是考察你能不能在协作环境中工作。
一个关键细节:Goldman Sachs的coding题目经常和金融场景相关。比如有一道经典题是给定一个股票价格数组,计算最大利润。你需要先问清楚是只能买卖一次还是多次交易,这本身就是考察你会不会clarify requirements。
第三到四轮:现场技术面(2-3轮)
现场面试通常在New York的200 West Street总部进行,也可能是virtual onsite。每轮45分钟,由不同team的engineer进行。
这些轮次考察的核心不是算法难度,而是你能不能在高压环境下保持清晰的思考。Goldman Sachs的交易系统要求工程师在毫秒级时间内做出决策,这种能力从面试中就能看出来。
具体来说,这几轮会考:
Coding题目,通常是系统设计相关的数据结构实现。比如让你实现一个LRU cache,或者让你写一个thread-safe的counter。这些题目不難,但要求你对concurrency、memory management这些底层概念有深刻理解。
Debugging能力。面试官会给你一段有bug的代码,让你在5分钟内找出问题。这考察的是你能不能快速读懂别人的代码并定位问题。在Goldman Sachs的production环境里,你经常需要维护别人写的代码,这种能力比你自己写新代码更重要。
第五轮:系统设计面
这一轮通常是45分钟到一个小时,由senior engineer或者tech lead进行。题目范围包括:设计一个高频交易系统、设计一个订单匹配引擎、设计一个实时风险监控系统。
这不是让你设计一个Twitter或者Facebook。Goldman Sachs的系统设计题有明显的金融特色:强调low latency、high throughput、data consistency。这些词会在面试中反复出现。
一个常见的误区是候选人把系统设计面当成架构设计课,拼命的画架构图、讨论microservices。Goldman Sachs的系统设计更注重细节:你的数据库选型是什么、为什么不用别的、你的partitioning strategy是什么、如何保证强一致性。这些问题比你的架构图重要100倍。
第六轮:行为面(Bar Raiser)
这一轮通常由一个senior manager或者director进行,时长45分钟。考察的是你的leadership principle和Goldman Sachs的14条business principles。
这不是简单的“tell me about yourself”。Bar raiser会深挖你的项目经历,问你具体做了什么决定、这个决定有什么后果、如果你重新来会怎么做。Goldman Sachs的behavioral interview非常注重“specificity”——你要能说出具体的数字、具体的时间、具体的对话内容。
一个关键技巧:Goldman Sachs的behavioral面不是考察你有没有遇到过困难,而是考察你如何处理困难。他们想知道的是你在冲突中如何做决策,而不是你是否遇到过冲突。
第七轮:Hiring Manager面
这一轮是最后一轮,通常由你未来的manager进行,时长30-45分钟。这一轮不是考察技术,而是看你能不能融入team、你的career goal是否和team的发展方向匹配。
Hiring manager会问你为什么想加入Goldman Sachs、你对未来几年的职业规划是什么、你对这个team有什么问题。这是一个双向选择的过程,你也可以问一些尖锐的问题,比如team的tech debt情况、recent project的challenges等等。
技术面考察重点:不是算法,是判断
大多数候选人把Goldman Sachs的技术面当成算法考试来准备。这是第一个错误。
Goldman Sachs的技术面考察的核心不是算法难度,而是你在约束条件下的决策能力。这不是一道题你能不能做出来,而是你在做不出来的时候能不能和面试官有效沟通、能不能接受hint、能不能在有限时间内给出次优解。
Coding题目的金融特色
Goldman Sachs的coding题目有明显的金融行业特色。以下是几类高频出现的题目类型:
第一类是数组和动态规划相关的题目,最常见的是股票买卖系列。有一道经典题是“给定一个股票价格数组,你可以买卖任意多次但每次买卖必须在前一次卖出之后,求最大利润”。这不是一道难题,但面试官会追问:如果有transaction fee怎么办?
如果有holding limit怎么办?这些follow-up考察的是你能不能在现有solution上做incremental improvement。
第二类是系统设计相关的数据结构实现。LRU cache、Thread-safe data structure、Rate limiter这些题目出现频率极高。因为Goldman Sachs的交易系统需要用到这些数据结构,你能不能实现它们直接反映了你对底层系统的理解。
第三类是字符串处理和parsing相关的题目。金融系统需要处理大量的日志文件、交易记录,字符串操作是基本功。有一道常见题是让你实现一个简单的CSV parser,处理各种edge cases比如quoted fields、escaped characters等等。
Debugging轮次的隐藏坑
Goldman Sachs的现场面试通常有一轮是debugging。面试官会给你一段代码,大概50-100行,里面有3-5个bug。你的任务是找出这些bug并修复它们。
这不是考察你能不能写出完美代码,而是考察你能不能快速理解别人的代码。在Goldman Sachs的production环境里,senior engineer写的代码经常需要junior engineer来维护和debug,这种能力比你自己写新代码更重要。
一个关键技巧:不要一上来就开始debug。先花1-2分钟读懂整体逻辑,理解这段代码在做什么,然后再开始找bug。面试官会观察你的debugging process是不是systematic,还是盲目改代码碰运气。
System Design的金融逻辑
Goldman Sachs的系统设计题不是让你设计一个社交网络,而是让你设计金融交易系统。以下是几类高频题目:
设计一个订单匹配引擎。面试官会问你怎么处理market order和limit order、你怎么保证FIFO(先进先出)、你怎么处理partial fill。这些问题考察的是你对金融交易系统的理解,而不是你对微服务的理解。
设计一个实时风险监控系统。面试官会问你怎么计算portfolio的VaR(Value at Risk)、你怎么处理real-time data feed、你怎么保证低延迟。这些问题考察的是你对金融风险的理解,而不是你对大数据架构的理解。
设计一个高可用性的交易系统。面试官会问你怎么处理server failure、你怎么做data replication、你怎么保证consistency vs availability的 tradeoff。这些问题考察的是你对distributed system的理解,但context是金融系统。
一个关键区别:Goldman Sachs的系统设计更注重latency和consistency,而不是scalability。Twitter可以慢一点,但交易系统不能。这是一个根本性的思维转换。
系统设计题目类型与准备策略
Goldman Sachs的系统设计题目有一个鲜明特点:它们都是真实工作场景的简化版本。这意味着你不需要学习很多高深的架构知识,只需要理解金融系统的核心需求。
低延迟系统设计
这是Goldman Sachs最常考的系统设计主题。面试官会给你一个场景,比如设计一个股票价格实时推送系统,然后问你如何在毫秒级别内把价格推送给所有订阅的用户。
这不是让你用WebSocket然后万事大吉。面试官会追问:如果你有100万用户怎么办?如果用户分布在全球各地怎么办?如果网络抖动怎么办?这些问题考察的是你对distributed system的深度理解。
一个常见的错误是候选人把低延迟系统设计当成“用更快硬件”的问题。真正的答案包括:数据压缩、binary protocol、edge computing、pre-computation等等。这些技术细节比“用Redis”这种泛泛之谈重要得多。
强一致性系统设计
金融系统对数据一致性的要求极高。面试官会问你怎么设计一个系统,保证所有的交易记录都被正确记录,不会丢失也不会重复。
这不是简单的“用数据库transaction”的问题。Goldman Sachs的面试官会追问:如果跨数据中心怎么办?如果网络分区怎么办?如果有clock skew怎么办?这些问题考察的是你对CAP theorem的实际理解,而不是你能不能背出CAP theorem的定义。
一个关键概念是eventual consistency vs strong consistency的tradeoff。Goldman Sachs的系统通常需要strong consistency,但面试官想知道你能不能意识到这种选择的代价是什么。
数据处理系统设计
Goldman Sachs每天处理海量的交易数据。面试官会问你怎么设计一个系统,能够实时处理这些数据并生成报告。
这不是简单的“用Kafka然后用Spark”的问题。面试官会追问:如果数据量是10倍怎么办?如果需要支持ad-hoc query怎么办?如果数据有延迟怎么办?这些问题考察的是你对data engineering的实际理解。
行为面考察:不是问你有没有经历,而是问你如何处理
Goldman Sachs的行为面是独立的一轮,叫做“principles interview”。这一轮由经过特殊培训的面试官进行,考察的是你的价值观是否和Goldman Sachs的14条business principles匹配。
14条principles的具体理解
Goldman Sachs的14条business principles包括:client focus、integrity、teamwork、excellence、innovation等等。但这些词在面试中没有任何意义,你需要能够把它们翻译成具体的行为。
比如“client focus”不是说你服务态度好,而是说你在做一个技术决策时会考虑这个决策对client有什么影响。“integrity”不是说你不撒谎,而是说你在发现问题时会不会主动上报,即使这会让你的项目延期。
STAR回答的结构
行为面的回答要用STAR结构:Situation、Task、Action、Result。但Goldman Sachs的behavioral interview有一个特点:它更注重Action而不是Result。
具体来说,面试官会花大量时间追问你具体做了什么,而不是项目最终结果如何。他们想知道的是你在那个情境下做了什么选择、为什么做这个选择、这个选择有什么tradeoff。
一个关键技巧:不要讲团队的故事,要讲你自己的故事。Goldman Sachs的behavioral interview考察的是你个人的判断力,不是你们团队的成就。
常见的behavioral题目
以下是几类高频出现的behavioral题目:
第一类是conflict resolution。面试官会问你有没有和同事意见不合的经历,然后追问你具体是怎么处理的。Goldman Sachs想知道的是你能不能在冲突中保持professional,同时坚持自己的立场。
第二类是failure story。面试官会问你有没有搞砸过的经历,然后追问你从中学到了什么。Goldman Sachs想知道的是你能不能承认错误、能不能从错误中学习,而不是你会不会犯错。
第三类是leadership。面试官会问你在没有正式authority的情况下是怎么推动项目进展的。Goldman Sachs想知道的是你能不能影响别人、能不能在组织中建立影响力。
薪资详情:New York总部的具体数字
Goldman Sachs的软件工程师薪资在金融科技行业属于中等偏上,但比不过一些hedge funds和top tech companies。以下是New York总部的具体数字:
L3级别(Entry-level,约1-2年经验)
Base salary:$100,000 - $130,000
Sign-on bonus:$10,000 - $25,000(第一年)
Annual bonus:$10,000 - $30,000(根据team和个人performance)
RSU:$10,000 - $25,000(分4年 vesting,第一年25%)
Total compensation:$130,000 - $210,000
L4级别(Mid-level,约3-5年经验)
Base salary:$140,000 - $170,000
Sign-on bonus:$20,000 - $50,000
Annual bonus:$25,000 - $60,000
RSU:$30,000 - $75,000(分4年 vesting)
Total compensation:$215,000 - $355,000
L5级别(Senior,约6-9年经验)
Base salary:$180,000 - $220,000
Sign-on bonus:$30,000 - $75,000
Annual bonus:$50,000 - $100,000
RSU:$60,000 - $150,000(分4年 vesting)
Total compensation:$320,000 - $545,000
需要注意的是,这些数字是2024-2025年的市场水平,2026年可能会有调整。Goldman Sachs的薪资有一个特点:bonus的波动很大。如果市场不好,bonus可能只有target的一半;如果市场好,bonus可能翻倍。
另一个需要注意的是,Goldman Sachs的RSU vesting schedule是4年,每年25%,没有cliff。这意味着第一年结束你就能拿到25%,但如果第一年就离开,你只能拿到这25%。
准备清单:5-7条可执行项目
第一条:刷完Goldman Sachs高频考题
不是刷完整个LeetCode,而是刷Goldman Sachs高频出现的题目类型。具体来说:股票买卖系列(5道题)、LRU cache实现、Thread-safe数据结构(3道题)、Rate limiter实现、字符串parsing(2道题)。这15-20道题覆盖了Goldman Sachs 80%的coding题目。
刷题的时候不要只刷一遍。第一遍是理解解法,第二遍是计时练习,第三遍是向朋友讲解。能够把一道题讲清楚才算真正掌握。
第二条:准备两个系统设计故事
Goldman Sachs的系统设计题目虽然多,但万变不离其宗。你需要准备两个故事:一个是低延迟系统设计,一个是强一致性系统设计。每个故事要能讲5分钟,包括:背景、挑战、你的solution、tradeoff、结果。
这两个故事要尽量具体,不要泛泛而谈。比如你可以说“我设计了一个系统,把latency从100ms降到10ms”,而不是“我优化了一个系统的性能”。
第三条:准备5个behavioral stories
每个story要能回答3-4个不同的behavioral问题。Goldman Sachs的behavioral问题虽然看起来不同,但底层逻辑是相通的。一个好的story可以用在多个问题上。
每个story要用STAR结构写下来,然后反复练习。练习的时候要录音,回听自己的回答是否清晰、是否有具体细节、是否体现了你的判断力。
第四条:了解Goldman Sachs的业务
不是让你成为金融专家,而是让你理解Goldman Sachs做什么业务、面临什么挑战。
你需要知道:Goldman Sachs的主要业务线(IBD、trading、asset management、consumer banking)、主要竞争对手(Morgan Stanley、JP Morgan、Jane Street、Two Sigma)、当前面临的挑战(regulatory pressure、tech disruption、competition)。
这些知识在behavioral面试中很有用。当manager问你“为什么想加入Goldman Sachs”时,你不能只说“因为你们是顶级投行”,你得说一些具体的业务理解。
第五条:Mock interview至少3次
找朋友或者找付费服务做至少3次mock interview。每次mock interview之后要 debrief:哪些地方做得好、哪些地方可以改进、下次怎么调整。
Mock interview的目的是让你在高压环境下练习,而不是让你展示完美的表现。你要练习的是如何在不完美的状态下继续前进。
第六条:准备5个问面试官的问题
每一次面试结束,面试官都会问你有没有问题。这不是一个形式问题,而是一个考察你对这个岗位真实兴趣的机会。
好的问题包括:这个team目前最大的技术挑战是什么?你对这个role的expectation是什么?最近有什么project是你特别兴奋的?这些问题展示你对岗位的真实兴趣,也帮助你判断这个岗位是否适合你。
第七条:系统性拆解面试结构
Goldman Sachs的面试每一轮都有特定的考察维度和评分标准。系统性理解这些维度能让你在有限的准备时间内聚焦最重要的内容。PM面试手册里有完整的Goldman Sachs面试流程拆解和实战复盘可以参考,里面包含了不同轮次的常见问题和回答策略。
常见错误:3个具体案例
错误案例一:把coding面当成算法竞赛
BAD版本:面试官给了一道股票买卖的题目,候选人立刻开始写DP solution,写了50行代码,中间有一个bug,修了10分钟才修好。面试官问time complexity,候选人说是O(n),面试官追问space complexity,候选人说是O(1),但其实DP array是O(n)的空间。
GOOD版本:面试官给了一道股票买卖的题目,候选人先clarify requirements——“我可以买卖任意多次吗?有transaction fee吗?”确认完需求后,候选人先说了brute force的思路,time complexity是O(n²),然后问面试官是否可以继续。面试官说可以。
候选人写了brute force的代码,大概30行。然后面试官问能不能优化,候选人说了用one-pass的思路,time complexity变成O(n),space complexity是O(1)。面试官追问如果加transaction fee怎么办,候选人说我可以在买卖时减去fee,然后调整一下逻辑。整个过程是collaborative,而不是candidate一个人在战斗。
关键区别:Goldman Sachs的coding面考察的不是你能不能写出最优解,而是你能不能在有限时间内和面试官有效沟通、共同解决问题。
错误案例二:系统设计面只画架构图
BAD版本:面试官让设计一个订单匹配引擎,候选人花了30分钟画架构图,讲解各种microservices、message queue、database sharding。面试官问了一个细节问题——“你的order book怎么实现?”候选人答不上来,因为order book是整个系统的核心,但候选人完全没深入想。
GOOD版本:面试官让设计一个订单匹配引擎,候选人先clarify需求——“是centralized order book还是distributed?吞吐量要求是多少?需要支持哪些order type?”确认完需求后,候选人先讲整体架构,但只花了5分钟。
然后重点讨论order book的数据结构(红黑树 vs 哈希表)、matching algorithm(price-time priority)、database选型(为什么用PostgreSQL而不是MongoDB)。面试官追问如果系统负载增加10倍怎么办,候选人说了horizontal scaling的策略。整个过程是有重点的,而不是泛泛而谈。
关键区别:Goldman Sachs的系统设计考察的是你对细节的理解,而不是你对架构模式的背诵。
错误案例三:behavioral面讲团队故事
BAD版本:面试官问“你有没有遇到过conflict with teammate”,候选人开始讲“我们团队当时有一个项目,团队成员之间有分歧,最后我协调大家解决了问题”。面试官追问“你个人做了什么”,候选人说不出来,因为一直在讲团队的努力。
GOOD版本:面试官问“你有没有遇到过conflict with teammate”,候选人开始讲“我在上一家公司做一个feature,需要用一个新的database,但我的teammate坚持用旧的database,因为迁移有风险”。候选人详细描述了自己的分析和teammate的concerns,然后说自己做了什么compromise——“我同意先用旧的database做demo,同时做一个小规模的migration test,用数据说服teammate”。
面试官追问如果teammate还是不同意怎么办,候选人说自己会escalate到manager,因为这个technical decision有deadline。
关键区别:Goldman Sachs的behavioral面考察的是你个人的判断力,不是你们团队的成就。你要能说出你具体做了什么、为什么做这个选择、这个选择有什么tradeoff。
准备拿下PM Offer?
如果你正在准备产品经理面试,PM面试手册 提供了顶级科技公司PM使用的框架、模拟答案和内部策略。
FAQ
Q1: Goldman Sachs的技术面到底有多难?是不是需要刷完LeetCode hard?
不是。Goldman Sachs的coding题目难度通常是medium,偶尔是hard,但不会考特别偏门的hard题。它的难度在于题目通常和金融场景相关,你需要先理解业务背景才能开始写代码。
一个更准确的描述是:Goldman Sachs的题目难度中等,但考察的是你在有限时间内的沟通能力和判断能力。如果你能在30分钟内写出一道medium难度的题并解释清楚你的思路,你大概率能过coding面。
真正难的是系统设计面,因为Goldman Sachs的系统设计题需要你对金融系统有一定理解,这不是刷题能解决的。你需要了解order book、matching engine、risk management这些基本概念。
Q2: 没有金融背景能不能通过Goldman Sachs的面试?
能。Goldman Sachs的软件工程师团队中,大部分人没有金融背景。面试官不会期待你是一个金融专家,他们期待的是一个技术能力过关、同时对金融行业有兴趣的工程师。
但是,你需要在behavioral interview中展示你对金融行业的兴趣和基本理解。这不需要你去读一个金融学位,你只需要了解Goldman Sachs的主要业务、当前面临的挑战、为什么想加入这家公司。
一个有效的准备方法是:读Goldman Sachs的2024 annual report,了解公司去年的业绩和战略方向;读几篇关于金融科技的文章,了解行业趋势;准备一个“为什么对金融科技感兴趣”的故事。
Q3: Goldman Sachs的面试流程大概多久?每一轮的淘汰率是多少?
从第一轮HR phone到最后一轮hiring manager,通常需要4-8周。具体时间取决于你的schedule、面试官的availability、以及hc的review速度。
关于淘汰率,没有官方数据,但根据内部信息:第一轮HR phone的淘汰率大概在30%(主要是visa status、compensation expectation不匹配),技术phone的淘汰率大概在50%,现场面试的淘汰率每轮大概在30-40%。总体而言,从apply到offer的conversion rate大概在2-3%左右。
这意味着如果你进入了现场面试,你已经有很大的优势了。现场面试的每一轮都不是独立的,而是综合评估。Hc会看你的整体表现,而不是单轮表现。所以如果你有一轮表现不好,不要放弃,好好准备下一轮。
准备好系统化备战PM面试了吗?
也可在 Gumroad 获取完整手册。