浅谈Google的internship和full-time招人流程

avatar 913667
meowgarcia
17153
19
我先简单自我介绍一下自己,我之前面试过五六个北美一线软件公司和top startup比如Stripe和Databricks,很幸运都拿到了offer,这些offer里面也有senior的offer。除此之外我之前在湾区创业公司和Google mountain view也有工作过。我不会在这个帖子提及太多关于我的信息,之前找实习和第一份工作地里的朋友都给我提供了很大的帮助,好心帮我内推并且帮我修改简历,因此我的目的是帮地里的朋友尽快渡过这半年寒冬经济形势,拿到自己心仪的offer。

Google招聘的大致流程
投递简历/内推
对于实习的同学来说,一般是先申请。你可以自己在谷歌网站上申请,也可以找Googler帮你内推。找人内推时一定要注意,内推表格上面是可以选择你是top candidate,还是一般的candidate,如果有机会建议选一个跟你熟的,了解你的,或者你确定会帮你好好推的人。这个表格上面还会问你和candidate是如何认识的,也会让你简单介绍为什么candidate fits Google。一般来说内推人会把你的邮箱和名字写到表格上,他提交表格后你就会收到一封Invitation from XXX to apply to Google的邮件,你接受invitation之后可以申请三个jobs。

coding sample/recruiter reaching out
接下来是resume screening,这个部分如果之后我有时间会详细展开再发一个帖子。假设你通过了resume screening,就会有recruiter联系你,询问你的简要情况,然后给你安排1轮电话面试(对于full-time来说),或者2轮电话面试(对于intern来说)。但是注意,对于intern和new grad来说可能在收到面试之前还会有一个coding sample(其实就是online assessment)。里面一般是有2个coding题,这两个题会比较容易,也没有太多陷阱和隐藏的test case,也不会对你的算法的时间和空间有要求,因为我们不想仅仅因为两道题就错失掉可能实力很不错的同学们。

virtual interview
以Google为例,本科毕业生一般是以L3进入公司,比较出色的本科和硕士生以及刚毕业的博士生会以L4进入Google。同一个题目对于不同的level来说也是有不同的expectations的。有人可能问对于不同的level使用同样的题目会不会有什么不妥,我个人的做法是这样:实习生,校招,和industry hire都应该达到最低的coding和algorithm要求,除此之外我会留时间考察硕士生,博士生,和industry hire一些follow up questions,比如一些design question,通过这些follow up问题他们可以展示他们把一个问题转化成系统的解决方案的能力,以及他们对分布式系统基本概念的掌握。对于实习的同学和本科毕业的同学,我会把45分钟的面试focus在algorithm和coding上,主要看communication,算法和code的正确性,以及candidate是否注意到了corner case,如果这些都做好的话,没有想出optimal time/space complexity的solution也是可以拿到hire通过这一轮的。

实习面试会简单点,或者放水吗?
对于想来Google实习的同学来说,我们打分会比对应级别的全职(本科对应L3,硕士大概是在L3和L4之间)稍微打分松一点。如果candidate的表现已经可以胜任对应职位的full-time工作,我们会推荐通过。如果candidate的表现让我认为他/她可以在3个月内提升到对应的全职水平,我也会推荐通过。可能有同学觉得我们对于intern的面试会放很多水,但是这个想法是不正确的。正如我上面所提及的,我们会选用类似难度的题目,而不是问一个非常直接,简单,不需要任何思考的问题,因为在Google对实习生的要求是可以在mentor(host)的帮助下独立地完成任务,比如研究内部的工具,写设计文档(design doc),实现代码并且测试,优秀的intern也会将他/她的feature部署到生产环境,所以我们不希望一个同学实习的三个月每天都问我们非常基础的问题。但是在面试这个环节,我们不会对你过去的经历有太多expectations,因为对于很多学生来说这是他们的第一份实习,所以我们会更多考察你的problem solving能力和communication,在45分钟内尽量看出你是否可以在实习过程中自己解决大部分问题,意识到并且提出好的问题,以及你是否是一个相对好相处的人。

代码需要运行吗?
大家注意,这部分technical interview是不要求你现场运行代码的。相信有的同学可能听说过Google的白板面试。虽然疫情发生了面试都要被转到线上,但是其本质是没有变的,我们还是把大部分时间focus在讨论问题和算法本身,不会过于关注你是否记住某个API的第几个parameter应该是什么类型的input。所以平时练习时建议使用Google Docs(实际的面试系统实际就是个针对coding的google doc,界面都很相似),也不能运行代码。不过面试官对自己准备的题目是非常了解的,他们大部分人会花至少几个小时的时间和同事讨论这个题目可能出现的所有解法,以及过去面试者在哪里可能会犯错误或者浪费太多时间,也会针对这些常见情况准备相应的hint;当你卡住时,不要害怕,把你的想法清晰,不慌不忙地解释给面试官听,他/她也会根据你的思路对应的给你一些线索,如果你能成功听懂面试官给你的线索并且继续思考下去,这对于communication的打分是非常有帮助的,因为这说明了你是一个可以和面试官并肩作战的人。虽然你没法运行代码,但是我们还是希望你自己全面地测试你代码的正确性。这部分对full-time L4以上要求更高一些,对于intern和undergrad的new grad来说如果最后剩余时间不是很多,没有fully test你的code,也是可以通过这轮面试的,所以不用太过担心。

feedback/hiring committee
面试结束后,你的面试官会把他给你的feedback通过一个内部系统传上去。我们推荐是在面试24-48小时内把feedback传上去,但是有的面试官可能没有那么快就传上去,这时候你的recruiter就会去跟你的面试官去跟进。feedback是非常详细的,不仅包含了面试官对你的整体评价,还包含了你们花了多少时间在讨论什么问题,你全程在interview doc上写下来的代码和comments,以及面试官在你的code上面额外加的注释。面试官还会参考面试前就准备好的target specific rubric对你的coding, algorithm and data structures, communication, problem solving的每个维度给你打分。一个面试官不能决定你被拒绝还是拿到offer。对于实习来说2个面试,对于全职来说3-6个面试的feedback会被打包送到每周进行一次的一个hiring committee来review。这个committee也是分级别的,比如L3/4的committee里面有几个senior一些的工程师,他们几个人里面也有一个老大来host这个committee,然后committee member一起来看interview feedback(包含面试官的打分和你的code),resume和系统里面的其他资料,来决定你是否能通过hiring committee。

team match
之后的流程是需要选一个team。对于有的organization来说可能先给你发offer再让你match,但是对于一些其他的org来说会等你match到team才给你发offer。这部分涉及的内容也十分多,我没办法在这里cover所有的注意事项。简单来说就是recruiter给你安排一个工程经理/tech lead跟你聊一下天,聊聊你想做什么,你过去的经历,然后你们进行双向选择。如果你喜欢这个组,他们也喜欢你的话,你们就match成功了,你之后就加入他们的组。对于intern来说你可能只能在你对应的product area(比如Google cloud,ads,search等)里面的组match,这部分我之后有时间再细讲,如果有具体的问题也可以给我发邮件,我有时间会回复。

担心遇到不好的面试官
有同学可能说如果我遇到不好的面试官怎么办,我可以说这个你不用过于担心。仔细想一下,你可能看到好多人说自己面的很差,最后却拿到了Google的offer。实际上我们内部也是会统计的,我们会做一些data analysis,比如说一个面试官给candidate的打分和最后candidate是否通过hiring committee的相关度。如果这个面试官的打分总是无法提供任何valuable signal,那么committee也会给这个面试官提供feedback on feedback。

我平常不怎么写文章, 文笔可能有些一般,但是每个字都是我自己打出来的干货,我之前也经历过这些,毫无保留地分享给大家。之后我再想到什么,或者如果有朋友有什么问题也可以回复我,然后我看我时间安排再给大家贡献一些干货。如果有什么遗漏或者不准确的,欢迎大家补充和更正。
  • 367
置顶回复
收起
楼主应该已经不在google了吧,现在hiring process已经不是这样了。
full time是面试之后收集完feedback后,先进行team match,match之后再送hc。一方面,如果面试结果比较好,理论上可以skip hc,另一方面,如果面试结果不好,即使match到了team也有可能hc不过。
而且理论上之以后的resume screen是team specified的,并且phone和onsite都是本组的人来面试,所以可能会涉及domain knowledge。不过现在是施行还比较松散,只是有些org有开始组织自己org level的hiring了。
另外hc看的资料不光是面试官提供的面试结果,还有成绩单(实习和ng),endorsement,过往工作经历等等。
大米 13
5
OnePointStar+1赞一个
Yeahan+1赞一个
sclion12345+1赞一个
彼岸幽光+2给你点个赞!
halaheyjsplsdr+1赞一个
19条回复