我 10 YOE,多年大厂经验。2 月中旬开始准备面试,5 月中旬收尾,总共投了 38 家公司:
- 石沉大海 23 家(Flexton、Morgan McKinley、Scoop Solar、Gruve、Google、BlackBerry、CIBC、RBC、Manulife、TouchBistro、EQ Bank、OpenTable、Life360、Fini、AutoDesk、Turo、Kun AI、Yelp、Tangerine、CNN、Lime、TextNow、Rakuten)
- 简历拒 9 家(Slice、3Pillar、Capital One、DuckDuckGo、League Inc、Uber、Constant Contact、Okta、Robinhood)
- 进入面试的 6 家(Quora、Amazon、eBay + 3 家最终 offer)
- offer 都来自市值大概在 $10B 上下的二线互联网公司
由于是直接对接北美岗位,一开始对这边的面试体系完全不熟,只能一步步摸索。从了解面试结构、优化简历、刷题准备到后期谈薪、选 offer,中间踩了不少坑。幸运的是,过程中得到了很多朋友的帮助,也从地里获取了不少有价值的信息。
这篇不讲面经题目,只讲准备方法和心法。需要题目的朋友可以点这里查看真题。
面试结构
北美SDE 面试一般分为:
- 前期筛选( Recruiter Screen | Hiring Manager Screen ) 30 分钟。这一轮的主要目的是初步判断 Candidate 的求职意向,身份情况,简历是否可信。
- Coding 初筛 ( Leet Code | 小 Feature )。 这一轮的主要目的是初步验证 Candidate 的技术能力,快速筛掉部分候选人,节约公司面试资源。
- Onsite:
- Onsite-Coding: 通常有两轮,一轮算法,一轮 Mobile 专项。有些公司不面算法。
- Onsite-System Design: 考察的架构能力,这个面试结果涉及到定级。后文详细分享。
- Behavioral / HM 考察软技能,涉及到定级,后文详细分享。
- 部分公司特有的Onsite项目:Eng Value(文化匹配),Project Deep Dive 等。
了解面试结构帮助我们快速地建立起北美互联网大厂面试的套路,我们就可以针对性地做准备。
Recruiter Screen
这轮比较轻,但依然可能挂。重点是表达你真的想来。
比如 AI 公司可以说:我有多年大厂经验,这个阶段更看重长期方向,我相信 AI 会是技术演进的下一波。
大厂就说:熟悉大厂流程,喜欢做能影响大规模用户的产品。
薪资预期建议别给具体数字,反问 Recruiter 范围后再说 open to discuss,避免直接被刷。
What are you looking for ?.
Recruiter 需要听到你真的非常喜欢这个公司,非常热爱这个公司的业务,才会容易帮你推进到下一轮面试。因此面试前思考几个问题:这家公司的业务是什么?未来发展方向如何?我可以在岗位得到什么?我的经验可以为什么匹配这个岗位?
我的回答通常都是结合对方公司的特点,例如 AI 公司的岗位我的思路是:我已经在大厂工作多年了,在职业生涯的这个阶段,我不在乎公司的大小,我更在乎的是未来的可能性,我希望参与到 next generation 的浪潮中。我认为我的经验可以非常好地在在 AI 时代起到作用。
针对大厂,我的思路是:我拥有多年的大厂工作经验,熟悉大厂的工作流程和合作模式,我非常喜欢为海量的用户带去 feature 这会让我非常有成就感 balabala…
总之要表达出对岗位的强烈兴趣
What led you to move on from your previous role?
Hiring Manager |Recruiter 问这个是想看看是否有 Red flag。 注意不要说上家坏话。合理的离职原因可以是:个人兴趣、业务前景、家庭原因等。
Compensation expectations
.
这个问题也很关键。 Recruiter 会在这一轮获取你的预期薪资范围。此时我们还没开始面试,得到的信息非常少。报少了未来谈 Offer 很被动,报多了可能直接被 Pass。因此尽量不给具体的薪资预期,同时也别把谈话搞僵。
我的策略是反向询问 Recruiter 这个岗位包的 Range,了解岗位薪资范围。同时告诉 Recruiter 如果面试顺利的话自己非常 open to discuss。
Coding – 算法
算法有点像初高中时候的数学竞赛,重点在于理解概念、掌握解题技巧以及大量的练习。它有点像高考,存在的意义是做智商和学习能力筛选,而不是说在工作中有多少使用场景。Mobile 岗位的算法难度通常会低于 Backend,除了 FAANG 还有一些明星厂的算法难度会上升到 Hard 以外,大部分互联网中厂 Mobile 岗位的算法难度在 Medium。鉴于目前的求职市场竞争烈度而言,这个难度还可以接受。大部分科班出身的同学都是能吃下这部分的。
这里我报名了csonsitehelp的 FAANG 求职密训的课程,不得不说老师对算法题的讲解非常深入。而且就算算法题真的不会做,他们还有面试辅助服务,可以在面试的过程及时提醒解题。
System Design
Mobile System Design 相比后端不同,重点在客户端设备适配、性能、架构、缓存、网络管理等方面。
常见考点包括:
- 离线能力(文件系统、数据库、UserDefaults、KeyChain 等)
- 多设备支持(iPhone / iPad / Watch / TV)
- 性能优化(冷启动、卡顿、Crash 率、内存 / CPU)
- 架构选型(MVC、MVVM、VIPER、Redux)
- 可测试性(依赖注入、Mock 支持)
准备时我参考了地里系统设计合集贴 + YouTube System Design 系列,同时用过自己的项目做了一套设计演练。
讲方案时建议先明确功能 + 非功能需求,再讲设计、模块拆分、接口定义,最后补充 tradeoff 和优化点。
Behavioral
这部分通常是由未来的直属 Manager 进行面试,主要考察 Candidate 是否与团队风格匹配,以及核心软技能是否满足公司需求。互联网公司最看重的核心软技能包括:
主人翁精神(Ownership)、领导力(Leadership)、跨团队沟通能力、处理困难对话的能力、面对挫折的态度、时间管理能力(Time-sensitive)、应对挑战的能力(Challenge)、产生影响力(Impact)、权衡取舍能力(Trade-off)、工作流程优化能力、紧急事件处理(Handle Severity)以及冲突处理能力(Conflict handling)。
这部分建议深挖简历中的亮点项目,日常工作中获得其他团队认可的事件,准备 5 – 6 个 Stories,每个故事覆盖上面多个点。故事结构使用 STAR 法则,一到两句讲清楚背景、讲清楚核心冲突和目的、讲清楚当时的行动,得到了什么结果,结果需要有数据支持。最后一定一定要讲一下关于这件事的思考。如果是 negative 的就谈 What I learn。 是 Positive 的就讲当时这么做的底层逻辑是什么。
另外,在讲故事的过程中往往会反应我们在过去业务中的 Scope,这也会是定级的依据之一。
特殊环节
上面说到有些公司除了标准的 Onsite 结构以外,还会有一些特殊轮。讲讲我遇到的特殊轮:
Eng Value:文化匹配,属于小 BQ, 注意不要有 red flag 就行。
Project Deep Dive: 这种属于深挖简历中项目,面试官会抓一些感兴趣的点进行深入挖掘,有点类似 System Design 里面的选型部分,区别是面试官 Drive 整个面试。建议准备一些材料,例如架构图、宣发材料、Demo 演示等,目的是在开场的时候与面试官快速对齐,让面试官知道大家在聊什么。另外就是对简历里的项目需要了然于胸,对其中关键技术点的 trade off, 替代方案的优劣,后续优化计划等要能张口就来。
反问环节
每轮面试最后都会有提问机会。
我最常问:“你们团队接下来 6 个月最重要的目标是什么?”
这个问题能看出团队目标是否清晰,leader 对项目的熟悉度,团队节奏和技术规划。如果回答混乱,那大概率进组后会比较乱。
另外我也会根据不同面试官问一些行业相关或业务趋势的问题,看他们对行业理解和热情。
前提是面试前我会用 perplexity.ai 做调研,了解业务线、竞争态势、近期产品动向,准备好 2-3 个深一点的问题。
总结
总得来说,相比 Golden Age ,目前找工作难度大涨,获得面试机会的概率大大降低。许多我自认为背景非常匹配的公司例如 DuckDuckGo、Uber、Google 都是简历拒,甚至没有机会和面试官坐下来聊聊。而整体面试难度其实不算大, Coding 部分 medium 难度的算法题、Debug、Feature 题好好准备大家都是可以通过的。System Design 和 BQ 部分见仁见智,有时候也需要看眼缘。
另外加拿大的互联网行业全靠美国公司的分部顶着,本土机会太少。许多本土企业存在死结:不认可非加拿大工作经验。这就导致找工愈发艰难。
好在最终还是拿到了几个 Offer,虽然薪资不是最高的,但是是我认为团队氛围,Life Life Work Life Balance 最好的。
最后祝还在找工作的坛友们早日找到满意的工作!如果需要帮助,欢迎留言、私信,我会尽可能回复。
扫码添加微信:csvohelp
