登录
  • #美国面经
  • #码农类general
  • #面试经验
  • #amazon

最新 Amazon AWS systems engineer 面经

moleculea
15590
12
三月份被 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

本帖隐藏的内容需要积分高于 188 才可浏览,点击前往一亩三分地论坛阅读

through client request to server until the answer is obtained)? How does a resolver work? How does a cache server work? What is TTL?

5. What is A, AAAA, CNAME and NS record?

6. 软件工程师和系统工程师的区别?

到第五轮了,我体会到一丝疲倦,前两题说的有点语无伦次。第三题上来,真的有点懵。我用的就是那种最简单的链表处理冲突的结构,他问我怎么expand buckets,如何让这个结构 scalable,总之答得磕磕巴巴。最后,他讲了 Python dictionary 的实现原理,给出了 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还有戏嘛。在地里潜水了一个月,于是今天想花个一两个小时写个面经,基点人品吧。祝大家找工作顺利!
12条回复
热度排序

发表回复