tech-interview-handbook:硅谷头部公司软件工程师面试格式全景拆解与备考指南
本篇基于 tech-interview-handbook 仓库中的 头部公司面试格式文档,逐家拆解 Airbnb、Asana、Dropbox、Google、Indeed、Lyft、Meta、Palantir、WhatsApp 共 9 家公司软件工程师岗位的完整面试流程:每一轮的类型(Recruiter 初筛、技术电面、Onsite 各轮)、使用的编码环境(CoderPad、CodePen、HackerRank、白板、JSFiddle 等)、轮次数量与特殊规则,并给出跨公司模式对比与可落地的备考清单。读完后你能针对任一目标公司制定精确的针对性准备方案。
一个重要的前提:远程面试已成为常态
原文档在正文开头就给出了一条全局性说明:
Due to COVID travel restrictions, many companies hold interviews remotely even for the onsite rounds, so the instructions might differ.
也就是说,即使某家公司传统上要求到场(on-site)面试,疫情以来的差旅限制让很多公司把 Onsite 轮次也改成了远程形式,因此你实际收到的面试说明可能与下文描述的线下细节有所出入。读本文所有流程时,都要记住:轮次结构(几轮、每轮考什么)通常不变,但“在白板前”“在自己笔记本上”等物理环境细节可能已被远程形式替代。
通用的面试漏斗:理解各公司流程的骨架
把 9 家公司的流程放在一起看,会发现一个高度一致的三级漏斗,这是本文所有细节的骨架:
- Recruiter phone screen(招聘官电话初筛):9 家公司全部包含这一轮,通常不涉及技术内容,考察动机、背景和基本匹配度。
- Technical phone interview(技术电面):8 家公司包含这一轮(只有 Indeed 标注为 optional 可选)。核心载体是“N x Algorithm / Front end”,即 1~2 道算法或前端编码题,编码环境因公司而异(CoderPad、Google Doc、HackerRank、JSFiddle 等)。
- Onsite(终面轮组):通常是 3~6 个 session 的组合,算法编码是绝对主体,再按公司特色搭配 System Design、Behavioral(行为面)、Cross functional(跨职能面)等轮次。
理解了这个漏斗后,下面逐家公司的拆解就是在骨架上叠加各家独有的“参数”。
逐家拆解:9 家公司的完整面试流程
Airbnb
- Recruiter phone screen
- Technical phone interview:1 或 2 轮算法/前端编码,在 CoderPad/CodePen 上进行
- Onsite(General 通用岗):
- 2 x 算法编码(CoderPad)
- 1 x System Design / 架构
- 1 x 过往经历/项目
- 2 x Cross functional(跨职能)
- Onsite(Front End 前端岗):
- 2 x 前端编码(CodePen,可使用任意框架/库)
- 1 x 通用编码(在自己笔记本上)
- 1 x 过往经历/项目
- 2 x Cross functional
- Tips(原文档保留要点):
- 所有 session 都涉及在自己笔记本上编码,需提前准备好开发环境
- 允许查阅 API 文档
- 公司在所有编码轮次中非常强调“可编译、可运行”的代码
- Cross functional 面试会安排 Airbnb 任意职能的员工与你对话,内容大多非技术,但因公司高度重视文化契合(cultural fit),这类轮次极其重要——建议提前浏览仓库中的 Airbnb 行为面试题单(“Airbnb Software Engineer behavioral interview questions”一节,含 28 道高频题,如 “What does 'belong anywhere' mean to you?”)
注意 Airbnb 是 9 家中轮次最多的一家(General 岗 Onsite 共 6 个 session),且是唯一把 “Cross functional” 单列出来的公司,行为/文化面的权重在全部公司中最重。
Asana
- Recruiter phone screen
- Technical phone interview
- Onsite(Product Engineer 产品工程师岗):
- 3 x 算法与 System Design 合并在同一 session 内,在白板上进行
- 1 x 算法 + System Design,在自己笔记本上写代码:大约 45 分钟内解决 3 道定义明确的算法题,随后一位工程师进来与你 review 代码。解题过程中不允许运行代码
- Tips:
- 未出现前端问题
- Asana 高度重视 System Design,大量使用白板;前 3 轮中的算法题不要求你一定要写出完整代码
- 全部 4 个 session 都涉及算法与 System Design,其中 1 个 session 由 Engineering Manager(工程经理)主持
- 最后一个 session 需要在你自己的笔记本上编码,请提前准备开发环境
- Product Engineer 与 Engineering Generalist 岗位的面试格式与题目相似
Asana 的显著特点是“算法 + System Design 同场出现”,且 45 分钟 3 道题的节奏很快——这要求在有限时间内快速区分题目难度、先保证高完成度而非全部完美。
Dropbox
- Recruiter phone screen
- Technical phone interviews:2 轮算法/前端编码(CoderPad/CodePen)
- Onsite(Front End 前端岗):
- 2 x 前端编码(CodePen,只允许 Vanilla JS 或 jQuery)
- 1 x 通用编码(CoderPad)
- 1 x All around:与 Engineering Manager 交流过往经历与工作方式
- Tips:
- 允许在自己笔记本上编码、查阅 API
- Dropbox 的 recruiter 很友好,会主动告诉你后续各轮可能遇到什么类型的题目
- 其中一个前端 session 要求像素级复刻 Dropbox 官网的一个真实页面:你会拿到目标页面的 spec,并被要求在面试期间写出一个可工作的版本
Dropbox 的“像素级复刻真实页面”是全部 9 家中最有辨识度的考察形式,对 CSS 布局(flex/grid)、尺寸还原与细节把控要求很高,建议备考时专门练习“看设计稿写页面”的限时训练。
- Recruiter phone screen
- Technical phone interview:1 或 2 轮算法,在 Google Doc 上进行
- Onsite:
- 1 或 2 轮前端编码,在白板上进行;视题目要求可能只允许 Vanilla JS(最多到 jQuery)(仅前端岗)
- 2 到 4 轮算法,在白板上进行
- 1 轮 General Cognitive Ability、Leadership 与 “Googleyness”(价值观/文化匹配)
- Team matching(团队匹配):与对感兴趣于你 profile 的不同团队经理对话
- Tips:
- 极少数情况下,候选人可以跳过电面轮直接进入 Onsite
- 对非应届(non-fresh grad)候选人,只有成功匹配到某个团队(matched with a team)才会收到 offer
Google 独有的 Team matching 环节值得特别注意:技术面通过后,offer 的发放取决于你与具体团队的匹配,这意味着你在各轮中表达的技术方向偏好会影响最终去向。
Indeed
- Recruiter phone screen
- Technical phone interview(可选)
- Onsite(按级别分层):
- 1 x Online Assessment(HackerRank 在线测评,适用于 L0–L2)
- 1 x 简历讨论(Resume discussion)
- 1 或 2 轮算法(HackerRank)
- 1 x Code Review(在 GitHub 上进行)
- 1 或 2 轮 System Design(适用于 L3+)
- 1 x 技术演讲 Technical Presentation(适用于 L4+)
- Tips:
- 面试的是具体职位时,考察标准(bar)会因职位而异
- 录用决策(hiring decision)与定级(leveling)是分开讨论的;定级由经验和领导力信号(leadership signals)决定
- 如果面试表现好但目标职位已招满,其他 hiring manager 可以“接走”你的 candidate packet
Indeed 是唯一一份按 L0–L4 级别分层配置轮次的流程:级别越高,System Design 与技术演讲占比越大;GitHub Code Review 轮也是 9 家中独有——建议提前准备“如何评审陌生代码”的表达框架。
Lyft
- Recruiter phone screen
- Technical phone interview:1 轮算法/前端,在 JSFiddle 上进行
- Onsite(Front End 前端岗):
- 4 x 前端编码(CoderPad 或自己的笔记本,可使用任何语言/框架)
- 1 x Behavioral:与 Engineering Manager 对话,过一遍候选人的简历
- Tips:
- 可以用白板和/或笔记本
- 前端编码环节作者本人选择了 React,并在现场用
create-react-app临时搭建项目
Lyft 的前端 Onsite 轮次密度很高(4 个前端编码 session),而行为面仅 1 轮且由 EM 主持——技术深度是这家公司的绝对重心。仓库 behavioral-interview.md 中也有对应印证:“Lyft has one round (out of five) dedicated to past experience and situational questions by a hiring manager”。
Meta(原 Facebook)
- Recruiter phone screen
- Technical phone interviews:1 或 2 轮算法/前端(Skype/CoderPad)
- Onsite:
- 2 x 技术编码(白板)
- 1 x Behavioral:与 Engineering Manager 交流过往经历与工作方式
- 1 x Design/架构(白板)
- Onsite(University Grad 应届生):
- 2 x 技术编码(白板)
- 1 x Behavioral:与 Engineering Manager 交流过往经历与工作方式
- Tips:
- 只允许使用白板(或墙面),全程不涉及笔记本
- 行为轮末尾可能会追问一道技术问题;前端候选人在 session 结尾会拿到一道小型 HTML/CSS 题
- 编码轮中,题目数量取决于你解题的速度——进展快就可能被追问更多题
仓库中 behavioral-interview.md 给出了佐证数据:“At the time of writing, Facebook has one round (out of four) dedicated to behavioral interviews”,与上文的 4 轮 Onsite 结构一致。Meta 的白板规则是所有公司中最严格的,白板推演与伪代码表达能力是硬要求。
Palantir
- Recruiter phone screen
- Technical phone interview:1 轮算法(HackerRank CodePair + Skype)
- Onsite(General 通用岗):
- 2 x 算法(白板)
- 1 x Decomposition(即 System Design)(白板)
- Onsite(Front End 前端岗):
- 1 x 前端编码(自己的笔记本,时长约 1.5 小时,可使用任意库/框架)
- 1 x Decomposition(即 System Design)(白板)
- Tips:
- 作者选择了 React,并在现场用
create-react-app搭建项目 - 技术面结束后可能被要求再与 Engineering Manager 面谈一次,这本身不代表好或坏
- 作者选择了 React,并在现场用
Palantir 将 System Design 称为 “Decomposition”(问题分解),前端岗则是“1.5 小时长题”模式——考察的是一段时间内的完整交付能力,而非多题快刷。
- Recruiter phone screen
- Technical phone interview:2 轮算法(CoderPad)
- Onsite(Web Client Developer 岗位):
- 4 x 算法(白板)
- Tips:
- 未出现前端问题
- 面试官中有 1 位是 Engineering Manager
WhatsApp 是 9 家中流程最“纯粹”的一家:没有 System Design、没有行为面的单独轮次,Onsite 全部是白板算法。Web Client Developer 岗位考的是通用算法能力,准备时不必按前端方向押题。
跨公司模式对比:轮次、工具与环境速查
将上文的流程汇总成一张对照表(均源自 原文档 的逐家描述),便于快速定位各公司的差异点:
| 公司 | 电面(技术) | Onsite 主体 | 编码环境 | 特色轮次 |
|---|---|---|---|---|
| Airbnb | 1–2 x 算法/前端 | General:6 session;FE:6 session | CoderPad / CodePen / 自带笔记本 | 2 x Cross functional(文化面) |
| Asana | 有 | 4 session(3 白板 + 1 笔记本) | 白板 / 自带笔记本 | 算法+系统设计同场;45 分钟 3 题且禁运行 |
| Dropbox | 2 x 算法/前端 | 4 session(FE 岗) | CodePen(仅 Vanilla JS/jQuery)/ CoderPad | 像素级复刻官网页面 |
| 1–2 x 算法 | 前端 1–2 + 算法 2–4 + 文化 1 | Google Doc / 白板 | Team matching 决定 offer | |
| Indeed | 可选 | 按 L0–L4 分层的 6 类轮次 | HackerRank / GitHub | GitHub Code Review、技术演讲 |
| Lyft | 1 x 算法/前端 | 5 session(FE 岗,4 前端编码) | JSFiddle / CoderPad / 笔记本 | EM 主持的行为面过简历 |
| Meta | 1–2 x 算法/前端 | 4 session(应届 3 session) | 仅白板,禁笔记本 | 行为轮末尾附技术小问 |
| Palantir | 1 x 算法(CodePair) | General 3 session / FE 2 session | 白板 / 笔记本(1.5h 长题) | Decomposition;EM 追加面谈 |
| 2 x 算法 | 4 x 算法(白板) | CoderPad / 白板 | 无(最简流程) |
从这张表可以读出三条备考优先级规律:
- 白板是最大公约数。Google、Meta、WhatsApp、Palantir、Asana 都重度使用白板;即使流程描述中写“on your own laptop”的公司(Airbnb、Dropbox),Tips 也普遍允许笔记本+查 API。练算法题时请刻意练习“手推”而非直接敲代码,因为 Meta 明确禁止笔记本,而多数公司的远程形式也会退化为共享白板/共享文档。
- 前端岗的框架自由度差异极大:Lyft 和 Airbnb 允许任意框架(作者实际用了 React +
create-react-app现场搭项目),Palantir 前端岗也允许任意库;但 Dropbox 只允许 Vanilla JS 或 jQuery,Google 前端题可能只允许 Vanilla JS(最多 jQuery)。如果你的目标公司在这两类中,必须把原生 JS 的基本功练到位。 - 行为面与文化面不可忽视:Airbnb 有 2 轮 Cross functional,Google 有 Googleyness 轮,Meta/Lyft/Dropbox/Asana 均有 EM 主持的行为轮。仓库中的 行为面试问题库 收录了 Airbnb、Dropbox、Lyft、Palantir 等公司的真实高频题(标注来源为 Glassdoor),是各公司 Tips 中“了解预期问题”建议的直接落地资源;behavioral-interview.md 则系统讲了 STAR 回答格式与各公司行为面权重,可与本文配合阅读。
备考落地清单
结合原文档各家 Tips,可以收敛出一份通用准备清单:
- 开发环境预配置:Airbnb(所有 session)、Asana(最后一个 session)、Dropbox 都明确写了 “Prepare your development environment in advance”。建议提前在常用机器上装好编辑器、终端环境,并确保远程面试时共享屏幕流畅。
- 现场搭项目的能力:Lyft 与 Palantir 的前端作者都提到用
create-react-app现场初始化项目。若你的目标是类似轮次,提前熟悉从零初始化到跑通的最小流程,避免把宝贵的面试时间耗在环境问题上。 - 白板推演训练:Meta/Google/WhatsApp/Palantir/Asana 的算法轮都在白板上。Asana 特别说明“前 3 轮算法题不要求一定写出代码”、WhatsApp 4 轮全是白板算法——练习时用白板/纸面推导 + 口头描述复杂度,与敲代码的练习交替进行。
- 可运行代码的标准:Airbnb 强调 “compilable, runnable code”,即交付的代码要能编译能跑;而 Asana 恰好相反,明确要求解题过程中不要运行代码,45 分钟后由工程师 review。目标不同公司时,这两种习惯都要会切换。
- 限制条件下的前端题:针对 Dropbox/Google 的 Vanilla JS 限制,专门练习不用框架完成常见交互(事件委托、DOM 操作、fetch、布局还原);针对 Dropbox 的像素级复刻题,限时练习“给 spec 出成品”。
- 行为面题库:优先刷目标公司自己的题单(behavioral-interview-questions.md 按公司分节,Airbnb 一节多达 28 题),并用 STAR 格式组织答案。
- 特殊流程的心理准备:Google 非应届的 offer 取决于 Team matching 结果;Indeed 中表现好但职位已满时你的 packet 可能被其他 manager 接手;Palantir 的 EM 追加面谈“不必然代表好或坏”——这些都属于流程机制而非个人表现信号,提前了解可以避免误判。
- 远程形式的弹性:如开头所述,多数公司的 Onsite 现在也可能远程进行,实际指令以你收到的面试说明为准,轮次结构不变。
在仓库中查看与引用本文内容
- 本篇主体内容的原始文档:apps/website/contents/interview-formats-top-companies.md
- 该页在 Docusaurus 侧边栏 “Beyond the interview” 分类下的注册位置:apps/website/sidebars.js
- 配套行为面试题库:apps/website/contents/behavioral-interview-questions.md
- 配套行为面试方法论:apps/website/contents/behavioral-interview.md
- 文中出现的各公司流程数据均为原作者与候选人的一手经验记录,且原文明确提示疫情后远程形式可能存在差异——在制定你自己的准备方案时,请以最新收到的官方面试说明为最终依据。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00