最近完成了微软 Sharepoint SRE 团队的面试,收到了 Offer 准备入职,鉴于在面试之前准备的时候很少能看到有关微软 SRE 面试的信息,所以把这次面试的情况分享一下。
先简单说一下情况:
下面来说说详细的,timeline 我会以时间间隔的形式标出来,但 timeline 只能参考,毕竟也有知乎轮子哥 4 个月收到 offer 的先例。
8 月初有朋友通知我 Sharepoint 团队有一个 SRE 职位,拿了 JD 看过之后表示感兴趣,朋友建议我以一个月为期做准备,主要要准备的内容是 算法 PowerShell 和一些平时运维的经验,思想,对于云的概念等等(这个比较宽发,具体是什么后面再说);
之后一个月时间主要是刷 LeetCode,看 PowerShell 的文档(这个平时工作有用但是用的极少,所以还得熟悉下),准备英文简历,稍微刷刷美剧练练听力口语什么的;
9 月初通知朋友已经接近准备完毕,可以开始了,朋友收到简历之后当天进行了内推。之后收到邮件已被推荐,当天按照指引完善了一些个人信息后就开始等待了。
1 Day Later,收到微软 HR 的电话,电话中介绍了关于这个职位的更多信息,并了解了目前在做的事情,之后询问英语情况,要求用英语做自我介绍。由于之前没什么准备所以有点措手不及,稍微准备了一分钟后完成了自我介绍,由于还是不够充分,内容比较简单且有点结巴,所以 HR 又额外用英语问了几个问题(主要是现在的工作和对之后工作的期望一类的)。回答完毕之后 HR 表示没问题,接下来会有人来进行面试预约。
1 Day Later,接到用人部门同事的电话,预约了第一轮面试的时间,对方表示可以不远程进行现场面试,同意并约定了时间地点,这次吸取教训晚上回家提前写了大约一分半钟的英文自我介绍稿子并简单背了背。
1 Day Later,早晨按照约定去苏州微软进行面试。面试过程比较轻松,先聊了几个问题,比如如何处理线上环境的故障,如何处理性能问题等等。最后要求写了两段代码,要求是处理一段日志,按照紧急程度进行筛选并按照时间排序,使用语言不限。我选择了 Python (主要是当天带了 mac 用 python 更方便),并用正则表达式来处理,结果第一问钻了牛角尖,但也做出来了,和面试官沟通了想法之后面试官表示没有问题。并表示接下来的面试如果出现 coding 要注意效率,最好能更熟练一点。coding 过程总体压力不大,面试官并没有来看我的过程,我把在 regex 101 上 group 出的结果给面试官看了,面试官表示也没有问题,第一问可以直接过,然后开始做了第二问。
当日下午,收到微软的邮件,第一轮面试通过。紧接着 HR 电话就来了,预约了接下来的面试,HR 表示最好留出一整天的时间,所以最后预约了两周之后的周一,并且由于疫情,所有面试远程进行。
3 Days Later,收到了接下来面试的 Schedule,说好的一天变成了一个下午,感觉更加紧张了,并且最后两轮是外国人,应该都是英语了。接下来的时间就继续看书准备了,以及准备 Teams 和各种环境,测试设备什么的。另外 Schedule 里会有会议链接和远程面试的指引,可以参考下。
1 Week Later,面试当日,每一轮大概是一个小时时间,具体内容就一轮一轮说了。
Round 1,一个小插曲是面试官由于网络问题连线晚了(整个面试过程小插曲还挺多的)。面试内容是 Coding,要求修改一段 PowerShell 脚本,脚本的作用类似 Linux 中的 cal 命令,在控制台输出一个日历。第一个问题是需要找出问题并修改,直接注意到了问题是日历的 Title 居中出了问题,但 Debug 卡住了。当天面试用了 mac,所以第一轮面试 PowerShell 使用了线上 IDE,但是实在是使用不便所以最后桌面了家里的台式机给面试官看。比较狗血的是,卡住的原因是,不熟悉 PowerShell 的字体,以为'是`了,结果到最后才发现。虽然面试官因为中间的各种情况延长了 15 分钟,但还是来不及做后面的了,所以简单说了后面的思路,后面的问题是添加一个参数可以连续输出 n 个月的日历。提交代码之后第一轮结束,自我感觉比较糟糕。另外,第二轮的面试官在第一轮预定结束时间的 5 分钟前进入了会议,第一轮面试官说明情况后就先离开了。
Round 2,面试官表示是否需要 5 分钟时间调整下,由于已经趁之前第一轮面试官离开的时间喝了水,所以表示可以直接开始。第二轮面试官主要是就简历上的工作经历进行提问,比如说处理问题,日志分析,以及一些产线 Outage 的策略,以及业务如何部署比较合理等等。问完之后问我有没有想要问的,我表示没有之后就正常退会了。
Round 3,由于之前了解到的情况是,一般前两轮走完之后,如果情况不好第三轮可能就没有了,所以比较紧张,但没多久第三轮面试官就出现了。第三轮面试官的问题是,要设计一个类似 Google Photos 的线上照片库,需要注意什么,这个问题结合了之前自己的工作经验和之前看书准备的内容进行了回答。之后面试官让我简单讲讲之前提到的需要注意的几点应该怎么实现。其他都还讲的比较好,但是在前面讲到了数据安全和隐私,由于是在不知道这些应该怎么实现,所以说了自己开发经验不多,不太了解,面试官表示没问题。之后讲了讲目前的发版流程等等。提问环节,因为面试官之前自我介绍是产品经理,所以问了对待需求的情况,面试官给出了回答,第三轮结束。
Round 4,面试官是老美,开了摄像头(没错前面都是没开摄像头的),我问面试官是否我也需要开,面试官表示随便,所以我也打开了摄像头。面试官先问了前面几轮感觉怎么样,我说第一轮有点艰难,后面还好。面试官询问第一轮出现了什么情况,此时我发现面试官的印度口音有点难以理解,所以推说网络不好要求面试官重复一下问题(并顺手打开了 Teams 的实时字幕功能,赞一下这功能,真好用,印度口音也能准确的听写)。面试官表示可能是他的网络问题并关掉了摄像头,听清问题后给出了回复。
接下来是正式的提问环节,提问接着第三轮,提问主要集中在处理问题方面,假设了一个位于新西兰的用户遭遇了访问缓慢的情况,一开始听到问题的时候我一愣,面试官以为我不知道 New Zealand,用标准的中文说出了新西兰(哈哈哈哈哈哈)。接下来就是顺着面试官的 what if,进行了回答。提问环节问了跨国合作的模式。这轮面试时间比较短,接下来就进入了漫长的等待,等待的我一度以为自己已经凉了。
Round 5,面试官表示自己迟到了,原因是他们在处理线上问题,之后简单说了说线上问题是什么。然后问我有什么想问的,我回答暂时没有,然后他简单介绍了下目前业务的情况,以及看到我的简历上写了容器相关的经验,问了我如果业务想要做容器化部署,需要注意些什么。这里就直接按照工作经验给出了回答,面试官表示,wow,原来还有这么多需要注意的地方。之后又问我有没有想问的,然后我问了如果按照面试官所说,架构是云和实体 Datacenter 同时存在的话,协同是怎么做的。面试官也给出了回答。然后简单聊了聊关于问题处理的经验,离面试结束只有几分钟了,面试官似乎处理了一些和我面试相关事情之后,简单总结了一下。然而我没有听清他说了什么,只听到了关键词 unsatisified,并让我等最多两周,以为是不合适,结果稍有沮丧(事实证明我最后完全没有集中注意力),最后面试官还比较友好的纠正了我的一个英文表达。然后面试结束。
1 Day Later,晚上睡前听到 Outlook 有邮件进来的声音了,但已经 11 点多并且有的时候是小广告,无视之。
1 Day Later,发现前一天收到的邮件是来通知面试通过的,迅速下载附件填表。下午有 HR 来联系表示 Offer 本周下发。
2 Days Later,收到 offer 。
总的来说整个过程还是比较快的。另外就是,微软的面试,可以说是非常紧张。按说疫情期间线上面试应该能相对轻松一点,但整个面试结束了还是感觉非常的累。整体的节奏非常快,但也有比较好的地方,比如可以随便查 Google,面试官也会再某些问题上给出指引,所以照着面试官的提示走下去,尽可能的把自己的能力展示出来就好了,总之,引用站里韩老师的话说,就是离不开平时的内功修炼和面试前的最后冲刺。
关于面试准备方面,其实其他的微软面经上已经说得比较详细了,但是 SRE 的整个面试和开发职位有所不同,所以说说 SRE 面试需要注意的地方:
SRE 的纯 coding 面试可能只有一轮,但同样对代码能力有要求,有可能不问算法,但不代表不需要准备,有些思想可能还是有用的。
如果有自己的项目觉得可以展示的,不妨简历上留下自己的 Github (我留了虽然不知道看没看)。
PowerShell 还是很重要的,平时工作用的少的话要多看。
哪怕平时运维工作就是手动操作,也要了解自动化是怎么做的,免得面试时候答不上来。
英语很重要,自我介绍英文简历这些建议尽早准备。
最后推荐两本对面试有点帮助的书吧,剑指 offer 和 O'Reilly 的 Site Reliability Engineering,第二本书有中文版,但建议看原版练练英语,第二本书 Google 有免费的网页版。当然和开发相关的书,比如算法导论那些,平时也要看一下。
有什么再想到的就 Append 补充了,最后祝看到这里的都能面试成功。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.