求职记 —— 秋招篇

Job Hunting for Autumn Recruitment

Posted by JetMuffin on December 11, 2018 | times

九月份开始忙碌比赛、项目,秋招投入精力不是太多,终于忙碌完有空总结和记录下九月份开始的秋招经历。

投递

找实习时立下了个硬 flag,秋招时要把实习没拿到的外企 offer 拿到,于是秋招简历投递和内推就没有考虑国内厂了。一来再次定向投(基础架构方向)又会是这几个部门,再走一次实习面试流程,比较尴尬;二来其实在国内厂里选择做基础架构方向,最后应该还是会选择 Alibaba。

于是乎,秋招就投递了四家公司,Google,Amazon(AWS),Microsoft Azure。不过这几家都没法直接投北美岗位,均需要 base 国内(微软有直招西雅图岗位,但是竞争比较激烈)。

Google

Google 可能对于我来说已经是个情怀问题了,从很早就开始希望能够进入 Google 实习或者工作。从去年开始断断续续练习了一些往年 kickstart 的题目,但因为本科毕业后对 ACM 相关的内容越来越生疏,今年 Google 的笔试准备的并不好。

Google 的投递不同于其他公司,是先做 kickstart,如果通过了笔试,才允许投递简历。此外可以走内推,但是内推也需要做 kickstart。今年的 D 轮和 E 轮是校招轮,两轮只要有一轮通过就能进入面试阶段。两轮笔试都是在暑假的周末,两次都是在实习期间,趁着周末没人溜到实习工位上安静的环境做题

D 轮和 E 轮每轮都是 3 题,D 轮做题时卡第一题签到题卡到心态崩,于是放弃了这一轮押宝 E 轮;而 E 轮时做题还比较顺利,还剩 20 分钟时过了 2 题,看了下 board 大概在 100 名出头,心想按照往年的情况应该能进面试轮了吧,加上基友喊吃鸡,于是没有开第三题的小数据。最后排名在 120 左右,等了一周并没收到面试通知,得知 E 轮也是凉了。

接近 10 月份收到 Google HR 邮件,通知增加了两轮校招轮,估计是针对 D 和 E 轮排名相对靠前但没有进面试的学生。然而新增的两轮,一轮是在晚上 10 点到 12 点,一轮在凌晨 1 点到 3 点,时间比较吃力,再加上心态愈发趋向追求安逸,就主动放弃了这两轮。

Microsoft

微软实习时拿到过 offer,但因为去了 Alibaba 而拒掉了,8 月底收到了微软 HR 电话,询问是否有意向参加秋招,答复有。

秋招时 Azure 的岗位从 Cloud + Engineer(C+E) 变为了 Cloud + AI(C+AI),正好在 Alibaba Intern 期间,做了一个 AIInfrastructure 相关的项目,于是对这个 C+AI 相当感兴趣。

Azure 秋招时没有笔试轮了,在 10 月中旬通知了进行 onsite 面试。一大早从仙林出发,坐两小时地铁,一小时半高铁,两小时地铁到了闵行,慌慌张张吃了顿午饭,就立马开始面试了。

一面是一个比较年轻的小哥,上来花了不到十分钟聊了聊研究方向和做过的一些项目,然后立马开始白板写题。第一题是个图论,给定一个无向图,计算其中的连通分量的个数。拿到题目没怎么想,一顿 bfs 就写出来了,写完给小哥解释了下代码,就开下一题了。第二题是个简单的 DP,最长公共子序列(LCS),现场忘记了递推公式,于是花了一些时间手推了下,然后有了递推公式写 DP 还是比较快的,胡乱一通又写完了,然后和小哥解释了下边界情况,这轮面试就过了。

二面是一个更为年轻的小哥,上来看着简历问了一些实习期间做的内容(底层平台对 AI 需要哪些支持等)。聊到一半小哥忽然想到什么,问了一句是否拿到转正的资格,答是,小哥便顺其自然地问了如果拿到微软 Offer 会怎么选择,这便让人很难回答了,既不能给一个特别肯定的答复(防止到时候翻车),又不能表示太犹豫。于是答到曰,Alibaba 太过要求技术了(其实想隐晦表示 Alibaba 加班比较严重,我是看重你们不怎么加班才来面试的呀 2333),小哥一惊曰,“我们也是很要求技术的好吧”。

扯了一堆以后继续开始白板做题,题目读起来很简单,相当于是个 shift,给定一个序列,要求实现一个 shift 功能,让数组循环左移 n 位。例如 f([2,4,1,5,3], 3) = [5,3,2,4,1]。先给了一两个 naive 算法,分析了下复杂度,然后小哥加高难度,要求空间复杂度 O(1),时间复杂度 O(n)。想了一会儿给了一个递归的方法,然后成功被小哥 challenge 掉,某些情况下会导致循环停不下来。同时由于要求空间复杂度是 O(1),在交换时某些坑位不好确定 index,导致算法不成立。之后又想了一两个方法都被小哥 challenge 掉,然后小哥透露这道题事实上看似简单,但是坑很多,然后开始和我讨论起正解来了(这是在面试啊喂?),然后表示这题还挺有趣的回去可以继续想想。

三面就换了一个沉稳的大佬了(jetmuffin:手里拎着一罐椰奶,???),从气场上看应该至少是一个 team 级别的 leader 了。先是聊了聊前面两轮感觉如何,然后看到简历上写着最近的 intern 在 Alibaba,于是又老生常谈讲到时候如果要选择的话会选哪个的问题了(jetmuffin:这问题堪比女友和妈掉水里一般的尴尬)。这回我就表示比较希望在上海工作,大佬问了下为什么,并表示可以不详细讲到细节,然后隐晦表达了下私人原因,大佬就意会了。然后大佬开始聊起上海的外企,问到投了 Google 没,调侃说 Google Shanghai 做的内容相对比较边缘,但是公司地理位置好(陆家嘴,宇宙中心),他们这儿做的还算比较核心,就是地理位置很偏。

公事私事扯完以后,大佬表示来用英语聊聊,然后开始用英语尬聊。首先是自我介绍,然后介绍自己的研究方向,项目细节等,幸好面试前刚刚更新的自己的 linkedin,细节记得还算清楚。吞吞吐吐聊了十来分钟,大佬表示还不错,然后开始一道系统设计题,要求设计一个分布式存储系统,满足海量存储(PB级),考虑高并发,高可用等细节,要求画出架构图,并详细介绍每块儿如何实现(jetmuffin:我的天)。还好本科期间研究过一段时间的 HDFS,并且硕士期间分布式课也有相关介绍,照着 HDFS 的模子把架构大体设计好,然后和大佬讨论了文件如何分片,分片后怎么索引,块如何存储,索引如何保证高可用,索引如何高效,底层协议如何实现,客户端如何和 datanode 传输数据等详细内容(jetmuffin:真难)。

三面面完已经快六点了(四个小时三轮面试),微软秉承着不加班的原则,面试官下班了,然后通知先回去等消息,下次继续(jetmuffin:???)。大概两周之后通知前几面还不错,再来一趟面试吧。于是又是几个小时地铁火车。

四面算是 AA 面了,面试地点不像前几面是在会议室,是在 AA 的办公室里,AA 面相上看起来非常像李开复,桌上堆满了写着 Azure 的一些奖杯奖牌。AA 比较和蔼,上来先聊了聊学校学业,研究方向,以及实习经历,然后结合实习内容细节挨个问一些细节的技术问题,同时又开始做系统设计题了,还是分布式存储相关的内容,部分问题三面问到过,主要还是分块、索引等内容。系统设计题过了以后,AA 出了一道算法题,给定一棵二叉搜索树(BST),求最右最小叶子节点。上来先想了一个 dfs,然而思路想偏了,一直在搜最右叶子节点,然后再找到最小符合条件节点,导致一些边界情况无法处理,想了有一些时间,AA 询问了下是否有问题,解释了下当前尴尬的情况,然后 AA 提示了一下,表示时间差不多了,便出办公室和另一个 leader 讨论去了(jetmuffin:这下崩了。。)。

还好还有第五面,第五面应该同样是个 AA 级别的人物,在另一个办公室里进行面试。相比前面一个 AA,这个 AA 是第一次拿到我的简历,于是对着简历开始问相关的内容,聊了一些调度框架(Mesos,Kubernetes,Docker Swarm)相关内容,实习做的内容等。然后突然切入主题说,上一面算法题没做好,是为什么,并表示再给你个机会能否完成。表示当时想偏了,这回给了更一般性的搜索方式,花了一些时间写了代码,然后 AA 开始验证算法,画了一棵树根据每种情况挨个进行验证,最后 AA 表示算法 OK。

总结微软的面试经历可以得到以下几点:

  • 算法要求高,虽不达到 ACM 级别,但是思路要求清晰,并且要注意多和面试官沟通
  • 有系统设计题,需要比较丰富的架构层面的知识
  • 英语要有一定准备

AWS

九月初投递了 Amazon,首选的岗位是云计算开发工程师,然而地点只有北京,于是第二志愿增加了上海的云计算解决方案架构师,这个 title 大的让我发慌。

接近十一月初才接到 Amazon 的通知笔试,而且笔试只有半小时(jetmuffin:???),并且当天还在上海参加 KubeCon 2018,很果断的放弃了这次笔试。不过从网上看到在我接到笔试通知之前已经有同学拿到 offer 了,基本上是实习转正的。Amazon 中国的话,还是尽量走内推流程,不然正式流程实在太慢,十一月初其他几家的招聘都已经结束,并且 Alibaba 开始催了三方。

总结

秋招可能因为其他事情太多,加上有些膨胀,整个过程都不太上心,导致结果比较差。最后了解的通过的 Azure 是主要做的存储方面,也就充充推辞了。总结而言,无论是国内厂还是国外厂,都需要有针对性的做足充分的准备,不然基本上挂简历,挂笔试,挂面试。

最后再说说情怀

从年中开始一直有想要继续出国读博的想法,但各个方面的压力让我只能是停留在想法的阶段。再到后来又特别想进外企然后肉身翻墙,因而秋招只投了国外厂。一直觉得不希望局限在狭小的空间,希望能够去更广阔的世界,认识更多的人。而最后还是觉得,事实上脚踏实地,做好自己喜欢的事情,并在自己所长方向能够小有所成,也是足够。

因此最后还是决定去 Alibaba Sigma,继续做调度相关的工作!