注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
三月份被 Amazon HR 搭讪,问我感不感兴趣 AWS Systems Engineer 职位。我以为是 senior level,就一直没回复,直到6月份了,用重新看了下邮件,发现是 University recruiting,又在同学怂恿下,就给 HR 回复问是否还 available, HR 说是,并且这个不影响 SDE 的申请,于是就接受了。后来经过了两轮电面,一轮 onsite,onsite后4天问HR结果,说挂掉了,问我想不想申 SDE。。。
onsite前一周看到了地里一个同学发的 systems engineer 的面经,,起到了一定帮助,感兴趣的同学可以去看看这个帖子(),上面有很多具体的内容,我这里就不重复写了。这个帖子让我对面试的方向大致有了了解,但最后还是因为经验不足,挂掉了。和他一样,我也是直到 onsite 才知道自己面的是 S3 组。
以下是面试的具体内容:
先是发了一套测试题让两天做完,是一个处理 email 的,extra part需要考虑内存不足的情况。总体来说不是很难,当做一个 small project 来做就可以搞定了。然后发给 HR,两天后 HR 说 hiring manager 通过了,说约个时间 15-min talk。我以为是 HR 的聊天,就没放在心上。结果那天打来电话,明显不是 HR (后来 onsite 知道是 hiring manager),开问:
1st Phone Screen (15 min)
1. 浏览器输入网址回车后发生了什么
2. 如何找到占用硬盘空间最大的(几个)process?
3. Linux的启动步骤与过程
4. TCP connection termination 是怎样的?
由于完全没有预期会问 technical,直接靠自己的知识答得,对方还算满意。第一题就是主要是扯 DNS resolver,TCP 和 HTTP。第二题说时候我貌似在 glassdoor 上见过,当时没在意,因为这个直观上真的是没逻辑啊。最后说了用 fuser -v,对方又问如何查看磁盘空间,我说 df,对方又问如何查看 directory 的 usage,我说 du。然后就没追问了。第三题扯从 BIOS/UEFI 到 kernel loading 再到 getty/login 的出现。第四题就是那个 four-way handshake。
2nd Phone Screen (45 min)
过了两天后,HR 说将给我第二轮电面。约到一两周之后。不知道会问什么,就发邮件给HR,HR说需要了解 networking ,比如 TCP, DNS, HTTP。还需要熟悉一门脚本语言。这其实就跟啥都没说差不多,之后就随便看了看 Wikipedia 上 DNS 和 TCP 等条目。
电面的面试官是说不太标准英语的白人(后面onsite遇见的一个面试官):
1. 说说你最 challenging project.
2. 如何列出进程?ps aux 输出中 STAT 列的代码都代表什么(比如 D, Z, S)。是否能 kill 在 D 状态(uninterruptible sleep)的进程。如果找到造成 D 状态的原因?
3. 什么是 inode,有什么用,里面存什么数据。说说 Linux file permission。
4. 什么是 iostat 和 vmstat?
5. lsof 是干嘛的? strace 干嘛的
6. POSIX 是什么
7. Runlevel 是什么?不同的 runlevel 代表什么
8. 如何查看一个 host 的 traffic (ongoing packet)?
9. 给一个 CSV 文件, benchmark 图,算是提示吧,我照着他的意思改进了下我的设计,这题就这样结束了。总之这题可以说是基本全灭。后面几道题答得还可以。最后,他把我带到了大厅,面试就结束了。
HR 在一开始的时候说了下周二出结果。我知道自己太菜了,但是面完之后,还是存有一线希望。等到周二晚上,给 HR 发邮件,HR 打来电话说挂了,问我是否想申请 SDE ,可以立刻给我安排电话面试,我答曰我想8月份在尝试投 SDE,HR就说到时候可以直接给她发邮件。后来有发邮件要 feedback,没有给回复。然后,就没然后了 。。
总结
总之,就说实力还是太弱,虽然自己对系统很感兴趣,有一点系统管理经验,但与 AWS 的要求还差很远。查了下,AWS 算是少数几个 System Engineers 职位招 New grad 的大公司,与其他公司同类型职位相比(比如 Google 的 SRE),难度还是不算太高,至少不问 kernel/ device driver programming。此外就是网络这块经验太少, routing 这块基本不懂。以至于被 HM 那轮虐成了渣渣。一开始看网上面经包括地里那个同学和 glassdoor上的,问linux starup process这个,我觉得没什么难度嘛。后来翻了下 Understanding the Linux Kernel 那大厚书最后附录那几页才发现我的理解就是个皮毛,这个booting steps基本上是按照 kernel code 走的。此外,就是系统管理的经验不足,没有 multiple servers/multiple platforms 的经历。平时也就是折腾折腾 VPS 和 自己的 Fedora 本,和 twitter 上各路玩 Arch 和 Gentoo 的大神们相比我真的就是个战5渣。自己考的 RHCE/RHCSA 也基本上没用到。
希望我的帖子能对今后申请这个职位的大神有点帮助。从需求上说,S3他们组主要是用 Python 的,然后需要很多网络、系统管理以及一些内核的知识。scalability 和 distributed 是他们很重视的方面。此外,面试官也说了,他们不怎么接触 bare-metal machine,基本都是从宏观上做部署、监测和排错,bare-metal的都是让 datacenter的人去解决,所以系统架构和编程也是非常重要的技能。
PS~ 明天要飞去 Google onsite,是software engineer。以我这种战5渣的实力我一直没抱太大希望,yelp都挂了,google还有戏嘛。在地里潜水了一个月,于是今天想花个一两个小时写个面经,基点人品吧。祝大家找工作顺利!
|