114

2020秋招美国SDE New Grad面试总结

 3 years ago
source link: https://nyan.im/posts/5393.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2020秋招美国SDE New Grad面试总结

March 11, 2021

经过大半年的时间,紧张刺激的秋招终于告一段落了。对于New Grad来说,2020年的秋招实在很艰难,我在中间也经历了很多波折,终于成功上岸。整个秋招一共收获了9个面试,4个offer,其中也包括一些比较冷门的公司或职位。本文会介绍我面过的比较有意思的公司或职位,以及我个人在找工过程中的一些体会和经验。

Citrix Software Engineer – Rejected

体验:★★★★☆

Citrix是一家toB的虚拟机公司,主要给企业提供基于虚拟机的IT解决方案。Citrix有Florida,North Carolina,湾区和Boston4个Office,每个Office的面试风格都各不相同,比如有的可能更注重OS,有的更注重网络。总体来说相比其他大厂更注重工程能力,沟通能力和behavior,算法上相对简单一些。

MasterCard Software Engineer – Rejected

体验:★★★★☆

MasterCard是大家都很熟悉的信用卡公司,他家主要有两个location,一个位于OFallen, MO,主要负责支付业务,而Arlington, VA的办公室叫MasterCard Data&Services,是一家被MasterCard收购的startup,原名叫Applied Predictive Technologies。我拿到的面试是位于Arlington的Data&Services。面试风格还是沿用了APT时期的风格,毕竟是startup,题目还是有些难度。除了最后一轮HM面之外的体验都还算不错,就不展开讲了。

Google Cloud Technical Residency – Rejected

体验:★★★☆☆

因为今年Google New Grad没有开,于是投了这个CTR职位。CTR是2018年才开的,在Residency里也算是比较新的。而且CTR并不是一个普通的SDE Residency,而是Google Cloud下面的一个更偏向Customer Support和Solution Engineering的职位。转正后的职位可以是Customer Engineer, Cloud Engineer或Solution Engineer。

整个面试流程是两场两轮背靠背,包括技术,客户支持和behavior。技术面只有一轮,没有coding,而是更偏向HTTP, REST, DNS这类网络技术,以及为客户设计系统架构——如果你能够自己搭建并维护一个性能不算太差的WordPress博客,那技术面试的题目基本上不会有太大难度。技术面的体验超级棒,和面试官聊得很好。不过两轮BQ的体验实在太差,面试官几乎是没有感情的念题机器——完全就是对着屏幕把题目念出来,然后低头打feedback。可能是Google对于面试流程的要求吧,每个面试官几乎都要打超级多的feedback——多到已经有些影响面试进程了。

虽然是很多人(包括我)梦想的Google,但是个人并不推荐这个职位,首先如上文所说,这个职位更偏向客户支持,和SDE还是有差距的,其次,顾名思义这并不是一个全职工作而是residency,需要一年后转正,(据说转正概率很高,>90%)并且会浪费掉一次抽签机会。另外我的两轮BQ面的面试官同样也来自Cloud Residency转正,基于我极差的面试体验,我对团队的氛围感到有些担忧。

Bloomberg SDE – Rejected

体验:★★★★☆

Bloomberg的面试一直是比较中规中矩的,但是我不幸遇到了一个比较有个性的面试官。我的onsite第一轮面试的面试官是一位SRE,看到我简历上写着Linux,于是上来先问了我一堆很细节的Linux问题。紧接着是一个简单的coding和一个系统设计。这个系统设计并不是像短网址和设计Facebook的那种high level的设计题,而是非常low level的system design,我依靠脑子里为数不多的知识储备磕磕绊绊地答出来一半,还是挂掉了。

我并没有预想到会在Bloomberg遇到基础知识题,所以之前完全没有准备。不过之后回想起来,那些Linux问题其实并没有那么难。以shell如何执行命令这个问题为例,即使事先没有准备过,依靠其他知识也完全可以推出来(想想OS里一个进程是如何调用另一个进程的)。不过可能当时太紧张,脑子浆糊了。

Bloomberg其实是我非常喜欢的一家公司,还是有些遗憾的。

Amazon SDE – Declined Offer

体验:★★☆☆☆

Amazon实在是一个让我很一言难尽的一家公司,我经历了他家实习和全职的面试。Amazon的校招流程几乎和摇骰子无异,运气似乎比实力还要更重要一些。我个人的timeline是8月初内推,12月底OA,一月中一轮VO,隔天offer。一轮VO只花了15分钟,内容大致是验证OA2是不是本人做的,不知道意义何在。

Amazon校招的体验差在每个人似乎都像是自动化流水线上的产品一样,身不由己,想要联系到HR简直难如登天。中间的一个小插曲是我的VO survey出了些问题,而唯一能联系到HR的是一个sde-university-interviews的邮箱,我给这个邮箱发了好几次邮件,但是从来没收到回复,直到第二周收到系统发来的新的survey才顺利约上面试。不过没有真人HR的好处就是对于我这种社恐来说拒offer不会有太大心理压力(反正Amazon不缺我一个,手动狗头)。

一方面Amazon是很多New Grad和Intern的救命稻草,另一方面也因为糟糕的招聘体验和有毒的文化为人诟病。关于Amazon的讨论已经有很多了,这里就不展开讲了。

TigerGraph Software Engineer – Accepted Offer

体验:★★★★★

TigerGraph是一家湾区的图数据库公司,近期刚融完C轮,做的产品很前沿。我选择的是一个Cloud方向的职位,负责构建TigerGraph产品的SaaS服务。Tiger的面试题目和风格和图森有些像,不过难度还是比图森低一些,整个过程中面试官很involved,面试的体验很棒。个人很看好TigerGraph的产品和前景,TigerGraph Cloud也是接下来一段时间的重点产品,工作很有impact。考虑一番之后决定加入。

TuSimple Software Engineer, General – Declined Offer

体验:★★★★☆

图森一直以面试很难为名。当我收到图森面试的时候,其实是抱着“我就胡乱面吧反正也面不过”的心态的去面的,但实际上比想象中顺利很多。

图森的面试一共是两轮电面加上四轮Onsite,每一轮基本都是简单过简历加做题。面完之后收到recruiter电话告知我的面试表现卡在boarderline上,加上有HM捞我,最后加面了两轮。最后一轮面了一个放在实际工程场景里的System Design题,还是很有意思的。

可能图森现在的题目已经不像前几年那么难了,我觉得我遇到的题目并不是像contest题那样单纯的难,而更像是思路很简单,但是写起来很复杂的题目,比如一些很复杂的DFS或者BFS题。当然也有一些很难想,但是一旦思路通了写起来就很容易的题目,比如DP。因为签了NDA就不说具体题目了。另外图森几乎每一轮面试都要求代码能跑,所以对代码能力和debug能力的要求很高,但总体来说体验还是很不错的,没有想象中那么劝退。

Lutron Electronics Application Software Engineer – Declined Offer

体验:★★★★★

这是我面过的最有意思的一家公司。Lutron是一家做物联网灯具的公司,在SDE的就业市场上比较小众,但其实Lutron的分公司遍及全球,产品覆盖小到家用智能灯泡,大到帝国大厦的照明系统。

他家的面试风格和别家都不太一样,大多数的题目考验的并不是候选者的编程水平,而是解决工程问题的能力以及和公司的契合程度。整体面试的风格没有那么注重算法,而是更注重解决问题和沟通交流的能力。他家的面试题基本已经是明题库了,Glassdoor已经基本覆盖到了所有的面试问题。但即使有题库,很多问题都是属于完全没办法提前准备的,只能靠现场发挥。面试过程很长,大致是电面加上6-8轮的Onsite。第一轮电面就是一个普通的技术面试,做了一个简单的OOD,结合一些算法。

Onsite第一轮是Problem Solving,大致内容是我们要对公司某个产品做某些改进,问在这个过程中潜在的问题有哪些。我很喜欢这一轮的形式,让我想起了高中时候准备机器人比赛时的发现问题并brainstorm解决问题的过程。

第二轮也是一场普通的技术面试,我遇到的题目是给出一个APP的需求,要求设计这个APP的UI以及数据库Schema。里面没有涉及算法,更偏向设计一些。我还是第一次在面试里遇到UI设计的题目,但其实想一想觉得表面上设计UI,但实际上是梳理需求的一个过程。接下来是午饭轮,现在是virtual就变成了闲聊天。完成三轮之后hiring team会review feedback,然后再约剩下的一天。

第二天的第一轮是Lutron的特色——Role Play,大致内容是模拟一个情景:你在入职的第一天,你的经理交给你一个任务让你协助某个客户解决一个产品问题,然后就跑去开会了,扔下你一个人一脸懵逼。

整体的思路和解谜游戏很像,游戏刚开始你手里只有很有限的资源和线索,比如某个人的联系方式,以及1-2个deskmate。你需要利用这些资源和线索去一步步去联系各种人,收集各种信息,直到找出问题所在。期间两个面试官会扮演各种角色,包括员工,客户,路人甲,邮件列表和搜索引擎。期间还会遇到各种意料之外的情况,比如我给某个可能掌握有必要信息的人打电话,被对方一句“你谁啊,我不认识你,我没法告诉你” 给怼回来了。虽然中间遇到些困难,但最后还是把问题解决掉了。最后是两轮BQ面加上一轮HM面。

Lutron给我的感觉是虽然整个公司很偏硬件,但其实软件方面也很先进,技术栈很新。很多面试我的员工在Lutron都工作了10年以上,很多人也在多个职位之间轮转过,算是Lutron的一个特色吧。公司的整体风格可能和喜欢湾区大厂的朋友们不是很match,不过如果是硬件方面的职位或者是对IoT有兴趣,Lutron还是很值得加入的。

TikTok SDE/SRE – Discontinued

体验:★★★★★

我面了Infra组的SWE和SRE两个职位,一共六轮面试,过了一轮才会约下一轮。TikTok的工作和招聘体验在网上得到的评价非常两极分化,也包括今年校招第一轮OA引起的争议,不过我个人的面试体验其实非常好,远超过我的预期。TikTok的每轮面试的流程大概包括寒暄+经历/简历+基础知识+算法+反向BQ。基础知识部分我没有遇到想象中的那种八股文,而是基本上每个问题都是放在一个具体的工程场景里面问的,并不是单纯靠背八股文就可以解决的。我个人很喜欢基础知识题目(不包括JVM等真·八股文),并且不太喜欢那种纯做题的面试——我并不反感做题,但是我认为如果只考做题,尤其是考些超级难的题目是没有意义的——毕竟公司招人是为了构建产品解决问题而不是去考试的。

和面试官交流的过程中也了解了Infra组的一些业务。用一句话简略地概括的话就是将基础设施封装成一些服务,交付给上层的中间件(或者说,中台)和业务层。北美的Infra组是新组建的组,做的东西很有impact。

TikTok流程走得比预想的要慢一些,最后已经面到HR轮,也算是半个offer了,但是因为已经接了Tiger就没有继续面了。个人还是很看好TikTok的前景的,也相信在TikTok能够收获的个人成长会比在大厂拧螺丝会好很多,但是相应的也可能会遇到中国公司的一些通病,比如大家讨论了很久的WLB问题。获得机遇的同时也会有挑战,就看个人如何取舍了。

———分割线———

2020年是很特殊的一年,对于new grad来说问题主要有两个:首先很多公司根本就不开new grad职位,导致根本没有多少new grad职位可以投。第二个是很多公司的bar开始变高,也会有白嫖候选者的现象出现,比如白嫖OA的泛滥(Codesignal恐成最大赢家),还有一些公司(比如Citrix和Bloomberg)发了大量的面试但实际上没招几个人。毕竟僧多粥少,就卷起来了。

我个人以海投SDE new grad职位为主,也投了一些不要求工作经验的社招职位。和很多人建议优先找内推的观点不同,我个人并不喜欢从地里或者LinkedIn上找海内推,因为实在太费时间了,而且陌生人内推并没有很多人预想的那么有效。另外一个需要注意的是在LinkedIn上联系别人,尤其是recruiter,的时候语言尽量简洁,我在Ancestry实习的时候一位recruiter给我展示过他的LinkedIn收件箱,里面充斥着各种长达一整屏幕的小作文,recruiter都很忙,太长的小作文是不会有人看的。

综合时间/机会成本和有效程度,我个人认为投简历方式的优先级如下:

认识的人内推/强推 > 联系recruiter >> 3天内的地里内推 > 海投 > LinkedIn找陌生人内推

Leetcode上我一共刷了大概450道题,其中高频题做过4-5遍,个人觉得对于绝大多数的面试已经足够了。前期的面试的准备主要靠自己做题和mock interview。同学间mock的一个问题是大家提问都比较循规蹈矩,然而真正面试的时候经常是不按常理出牌的,所以mock的时候可以试着think out of the box,尤其是对于behavior题目。比如我在面MasterCard的时候的最后一轮HM面试,我在讲我暑假实习的项目的时候对方没有听明白,从各种稀奇古怪的角度去追问,结果最后我的思路都被他带跑了,回答得一塌糊涂。

准备面试是一项很庞大的工程,从一开始话都说不利索到和面试官谈笑风生需要经历很长一段时间的磨练。前几个面试失利是完全正常的,等经历了几个面试之后就会慢慢找到感觉,就可以知己知彼百战不殆了。我自己在2020下半年一连挂了4个onsite,而且都是挂在奇奇怪怪的地方,一度心态爆炸,之后才变得顺利一些。实际上一次真正的面试带来的经验可能会比多次mock或者上百道leetcode更有用。这种提升一方面是技术上的,更重要的是心态上的。可能很多人都有这种体会:手里只有一个面试的时候的那种如履薄冰的心态会让人容易去想这场面试的得失,而无法静下心思考题目本身,是很容易影响发挥的。但是经历的面试多了之后,心态就会平和很多,相应地也越容易成功。

感谢找工过程中一起并肩战斗的朋友们,也感谢你能够读到这里。祝大家都顺利上岸。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK