最近面完 OpenAI SWE (偏 Infra 方向),把几份近期匿名面经按同一条流程重新拼成综合版,不对应某一个人的单场经历。整体考察非常务实,算法不是重点,系统思维、工程落地和需求变化下的适应能力才是核心。

OpenAI SWE 面试流程总览
- Screen:Coding + System Design
- VO:Coding、Design、Project Deep Dive + BQ
- 节奏:从 Screen 到 VO 间隔 1-2 周,VO 通常一天或分两天完成
Screen Coding
这道题是渐进式的,从简单状态扩展到复杂场景,考的就是你的代码能不能随着需求变化保持干净。
第一问:二维网格,植物有“正常”和“感染”两种状态,感染的每天向四邻传播。求多少天后所有能感染的植物都被感染。标准多源 BFS,所有初始感染点同时入队,按层扩散计天数。
第二问:加入免疫状态,免疫植物不会被感染。BFS 时跳过免疫格子,其余不变。
第三问:植物感染 D 天后康复并获得免疫。每个格子要记录感染开始时间,每天先处理感染扩散、再检查是否到期康复。求系统什么时候进入稳定状态(没有正在感染的植物且不会再有新感染)。
第四问:加入死亡状态,感染超过一定天数后死亡。多加一个时间维度判断,逻辑和第三问类似,死亡格子不再传播。
第五问:第 0 天可以烧掉一整行或一整列,被烧掉的植物不会继续传播,但也算死亡,要求最小化最终死亡数量。这问是真正的难题,需要枚举所有行列组合、模拟各种情况下的最终死亡数,贪心不一定成立,暴力枚举 O(n+m) 种选择加模拟是可行的方向。
最大的坑:每天“先感染、先康复还是先死亡”的顺序,一开始没问清楚很可能方向全错。第一件事就是 clarify 这个顺序,别急着写代码。
Screen Design:Cloud IDE Sandbox
设计一个在线写代码并运行的云端 IDE。
重点追问:
- 代码如何上传和执行
- 不可信代码的隔离(这是 OpenAI 最在意的,容器/沙箱隔离、syscall 限制)
- VM 是现开还是维护 warm pool(冷启动 vs 资源成本的 trade-off)
- 超时、爆内存、死循环怎么处理(资源限制 + watchdog + 强制 kill)
VO Coding
Social Network Snapshot:实现 follow、unfollow 和 snapshot;给定快照返回当时的好友;基于快照推荐好友;比较两个快照之间新增和删除的关系。
核心 trade-off:每次 snap 做整张图的 deep copy(空间大但查询简单)vs. 记录关系历史再用二分查询(空间省但实现复杂)。主动讲清楚这个取舍是加分点。
VersionedArray:实现 set(index, value)、snap() 返回版本号、get(index, version)。
空间优化的关键:不存完整快照,只存每个 index 的历史修改记录(时间戳 + 值),get 时二分找目标版本最近的一次修改。追问“100 万次 set 和 snap 怎么优化”——稀疏快照 + 二分查历史,避免线性扫描。
VO Design
正常支付流程讲完,真正考点全在追问里:幂等性设计,同一笔请求重复打过来怎么处理;账本和状态机,订单状态流转要无歧义;第三方回调重试,使用幂等 + 指数退避;长时间卡住的订单怎么处理,超时检测 + 人工介入或自动 rollback;夜间统一结算的一致性;Worker 中途挂掉后任务如何恢复,持久化任务状态 + at-least-once 语义。
这道题考的是你有没有在生产环境真的踩过这些坑。
Project Deep Dive + BQ
Project Deep Dive 就是深挖你简历上最复杂的项目,和亚马逊那套类似,但追问更偏技术决策——为什么选这个方案、trade-off 是什么、如果重来会怎么改。
BQ 高频题包括:Why OpenAI、怎么看 AI safety,这题认真准备,没有标准答案但要有自己的观点;跨团队冲突怎么处理;有没有做完但决定不上线的项目,考工程判断力和责任心。
写在最后
OpenAI 的面试强度高,但也非常公平。准备时多练“需求变化下的适应能力”,会更有优势。
如果你也在准备 OpenAI 或类似前沿 AI 公司,Interview Show 是专注北美技术岗位的面试辅助团队,凭借多年硅谷及北美求职实战经验,提供 面试辅助、OA辅助、VO辅助 与面试协助 一体化方案。团队成员来自北美一线互联网公司,从笔试到视频面试,从技术细节到表达策略,他们深知大厂招聘的每一道关卡,能够为你量身定制解法。