一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 4291|回复: 8
收起左侧

最新 Amazon AWS systems engineer 面经

[复制链接] |试试Instant~ |关注本帖
moleculea 发表于 2014-7-20 06:58:40 | 显示全部楼层 |阅读模式

2014(7-9月) 码农类 硕士 全职@Amazon - 网上海投 - 技术电面 Onsite |Fail

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
三月份被 Amazon HR 搭讪,问我感不感兴趣 AWS Systems Engineer 职位。我以为是 senior level,就一直没回复,直到6月份了,用重新看了下邮件,发现是 University recruiting,又在同学怂恿下,就给 HR 回复问是否还 available, HR 说是,并且这个不影响 SDE 的申请,于是就接受了。后来经过了两轮电面,一轮 onsite,onsite后4天问HR结果,说挂掉了,问我想不想申 SDE。。。

onsite前一周看到了地里一个同学发的 systems engineer 的面经,,起到了一定帮助,感兴趣的同学可以去看看这个帖子(http://www.1point3acres.com/bbs/thread-100399-1-1.html),上面有很多具体的内容,我这里就不重复写了。这个帖子让我对面试的方向大致有了了解,但最后还是因为经验不足,挂掉了。和他一样,我也是直到 onsite 才知道自己面的是 S3 组。. Waral 鍗氬鏈夋洿澶氭枃绔,

以下是面试的具体内容:

先是发了一套测试题让两天做完,是一个处理 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 等条目。
. 1point3acres.com/bbs
电面的面试官是说不太标准英语的白人(后面onsite遇见的一个面试官):

1. 说说你最 challenging project.. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
2. 如何列出进程?ps aux 输出中 STAT 列的代码都代表什么(比如 D, Z, S)。是否能 kill 在 D 状态(uninterruptible sleep)的进程。如果找到造成 D 状态的原因?. Waral 鍗氬鏈夋洿澶氭枃绔,
3. 什么是 inode,有什么用,里面存什么数据。说说 Linux file permission。
4. 什么是 iostat 和 vmstat?
5. lsof 是干嘛的? strace 干嘛的.鏈枃鍘熷垱鑷1point3acres璁哄潧
6. POSIX 是什么
7. Runlevel 是什么?不同的 runlevel 代表什么
8. 如何查看一个 host 的 traffic (ongoing packet)?. visit 1point3acres.com for more.
9. 给一个 CSV 文件,每行用冒号隔开,有一列是 zip code,如何取出这些 zip code,如何 count unique zip code?
10. 如何给 Web server 发 string?
11. TCP 和 UDP 的 区别. 1point3acres.com/bbs
12. TCP connection establishment 的步骤. From 1point 3acres bbs
13. DNS 的默认端口。 DNS 用 TCP 还是 UDP。什么情况下 DNS 用 TCP?.鐣欏璁哄潧-涓浜-涓夊垎鍦
14. 还是哪个 Linux 启动步骤
15. 如何从 kernel ring buffer 获取信息以及boot message?
. more info on 1point3acres.com
主要的我都答上了,有些地方不是很清楚,比如找到 D 状态的原因,还有 DNS 用 TCP 的情况(后来查了知道是 master server 在 zone transfer 的时候)。第3题我说inode存metadata,比如文件类型,uid, gid, atime, ctime, mtime, 权限,他就问关于Linux 八进制权限的问题。第8题我一开始没理解,以为他要抓包呢,后来知道了意思,我答的 netstat 或 lsof。 第十题我不理解他的用意,我说了可以用 curl,他用换了种问法,我说用 telnet, netcat (nc),他貌似满意了。

过了两天后, HR 说通过了,给安排 onsite。我给安排到两周之后,因为之前才面完 Yelp onsite 和 google 电面。想准备下,最后发现在知识积累和经验不足的情况下现学现卖什么的真没什么用啊。

周四飞到 Seattle,用 uber 打车,遇到一个三哥司机,问我是面试的吗? 我说是,Amazon。他说什么部门,我说AWS。他立刻就明白了,说我也是在 Blackfoot 那个楼面试吧,他说他也是 AWS 的,在业余时间开车。这么一说我还以为他是大神在外面开车转外快呢,问他是 Software Engineer 吗? 他说不不不,他是给 AWS 搞运输接客户的。这三哥很热情,给我讲他面试的经历,让我看看 Amazon 那个 Leadership principles。最后到了酒店,吃完饭。餐厅服务员,一个白人小哥,对着我笑着说,你是来面试的吧?我说是的。他问:面 microsoft 还是 Amazon? 我说 Amazon。他又问是 technical 还是 non-technical,我说 technical。他又问backend or frontend ? 我说 systems。他明白了。这个对话让我瞬间感觉仿佛 Seattle 只有 Microsoft 和 Amazon 这两个公司的存在,而且连酒店服务员都达到了对 candidate 如此专业的的了解程度。。。。

面试在第二天9:00。一大早用 Uber 打车,从旁边的贝市到 Seattle 也需要20多分钟,最后下车的时候司机说忘记计费了,是他的失误,不怪我。进大楼,在reception大厅等 HR,半个小时候 HR 来了,也没带我转工作区,直接把我带到了面试的小屋。

1st Round
是第二轮电话面试的面试官,一个纹身+光头(吴克)白人,英语有口音:
1. 问我知道 CIDR 吧,让我用 Python 写个程序,判断一个 IP 是否属于一个 subnetwork, 比如 10.0.0.1 属于 10.0.0.0/8。. 1point 3acres 璁哄潧
2. 给一个 web server access log,每行包含 IP address,让我写 shell command,找出所有 LAN address,只需考虑前缀 10., 172. or 192.168.即可。follow up是统计每个 LAN address 的数量。
. visit 1point3acres.com for more.
第一题上来我有点蒙,没想到会问编程。而且 IP address 这个处理我以前也是用 Python 3 的 ipaddress module 帮别人做过一个。他应该让我具体实现。还好,他后面给出一个 socket.inet_aton 函数让我用,假设用它把 IP address 转成 二进制,就这样在他提示下写出来了。第二题用 cut, grep, 和 awk 写的。有点小错误,grep 用的 BRE,“或”需要加反斜杠(\|),我没加,就应该用 egrep,他好像不在意。就这样结束了。

2nd Round
很明显是 bar raiser,大胡子,说他是另外一个部门的(貌似是 user 那块的),还带了一个徒弟,是个光头(吴克)。开问:
. from: 1point3acres.com/bbs
1. Talk about your overall experience, most challenging project?
我说了个我 GitHub 的项目,他就问我如何 deal with user issues的 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

2. Talk about the time you did not agree with a teammate and how you persuade him into accepting your ideas?
我说了实习时遇到的问题,关于域名和virtual host的, 他就问Why there is difference between "www.amazon.com" and "amazon.com"? What is the scenario that "www1.amazon.com" is useful even if it has same content as "www.amazon.com"?

3. DNS 的 TTL 是神马? 很短的 TTL 有什么优缺点?
4. 给100台 web severs,如何找出 top 10 most visited URLs from access logs of these servers?
. from: 1point3acres.com/bbs
总体说的还不错,他问how to deal with user issues时候,我就尽量往 amazon 那个 leadership principle 里面那个 customer obsession 上靠。DNS 这个也比较好说,很短的 TTL 有 overhead,但是对于频繁跟新 IP 的 record 很方便。第4题这个我先说了个最土的方法,用 bash 写个 for loop,把 access log 全部 cat 追加到一个本地文件在做统计。他说这样需要很大的 RAM, 然后我就说可以用类似于 external sort 的方法,他还算满意。

. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
3rd Round
白人小哥. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

1. 讲讲你实现 automation 的 scripting 例子
2. 给 a cluser of servers, including web servers and database servers, along with a load balancer。用户抱怨网站访问慢,如何troubleshoot这个情况,需要收集什么信息?
3. 如何 troubleshoot server overload?
4. 如何 troubleshoot write error?
5. What is the advantage of discrete parititions (e.g. separating /, /var, /home to different partitions)?. 1point3acres.com/bbs
6. Linux 的 logging 机制。你是否配置过 /etc/rsyslog.conf 文件. 鍥磋鎴戜滑@1point 3 acres
7. How to determine if the server is down? (我直接说 ping )
8. 如何通过监视 access logs 来获得 web server 实时运行状态?
9. How to make sure the website is accessible to users around the world (edge)?

总体来说答得都还行,他都很满意。第8题,他的意思是监测access logs 里面 HTTP status 的比例,比如50X很多的时候就表示不正常了。就是最后一个题我一开始一直没理解他的意思。他的意思是,如何保证网站在分布在各个区域用户的 availability。类似于与 edge 和 CDN 的原理。
. Waral 鍗氬鏈夋洿澶氭枃绔,
4th
白人,大胡子,hiring manager, lunch。
带我到楼下的一个餐厅吃饭,他点了个汉堡,我点了个三明治(最后上了两个三明治,我最后吃了一个,另一个吃不下了)

吃饭前,他说他今天不问我linux booting,要问我network。他拿出一个纸本子,说你懂 routing 吗。我说懂 very little,其实心里在说“饶了我吧”。吃饭前后在餐厅,问了以下问题。

1. 路由器的工作原理
2. NAT 的工作原理。What information is included in the router when it forwards packets to and from between LAN addresses (e.g. clients) and outside IP (e.g. server)?
3. 什么时候路由器在它的 translation table 里面增加或减少 entry?
4,What is the maximum number of ports?
5. 如果 LAN 内有 1000台 PC,每个 PC 有 1000 connections of different ports,如何设计 router 的架构。

说实话,我真的没有网络的经验,更不懂 routing protocols。前4道题基本上答出来了,有的是在他提示下打出来了。最后主要在纠结第5题。主要是这种情况使用 基于 port 的SNAT无法满足,因为 1000 * 1000 超过了 2^16。最后他讲了 S3 非常重要的几个因素,比如 durability, capacity, availability,然后就回来了。

5th
白人,有点黑,很胖,貌似是西班牙裔

1. What have you been doing recently?. 1point3acres.com/bbs
2. (Project-specific) What is your XXX project?
3. What is a dictionary in Python? How does a hash table work? 然后让我设计一个 hash table, 能够 deal with collision and buckets expansion in an efficient way。
4. How does DNS work (go 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还有戏嘛。在地里潜水了一个月,于是今天想花个一两个小时写个面经,基点人品吧。祝大家找工作顺利!

评分

3

查看全部评分

本帖被以下淘专辑推荐:

tbu 发表于 2014-7-20 08:30:19 | 显示全部楼层
还是觉得LZ好牛哇!这些知识我只知道一点点= =||||
LZ下面的面试加油~!
回复 支持 反对

使用道具 举报

weiqitoby600 发表于 2014-7-20 12:39:44 | 显示全部楼层
紐約大學的孩兒! 祝樓主google一切順利!
回复 支持 反对

使用道具 举报

johnnywsd 发表于 2014-7-20 12:42:29 | 显示全部楼层
weiqitoby600 发表于 2014-7-20 12:39
紐約大學的孩兒! 祝樓主google一切順利!

呵呵。我也是NYU的。
回复 支持 反对

使用道具 举报

readman 发表于 2014-7-20 12:43:01 | 显示全部楼层
github project . plz link
回复 支持 反对

使用道具 举报

stevecao 发表于 2014-7-20 23:59:45 | 显示全部楼层
这个点面的这个是准备什么时候入职的呀?
回复 支持 反对

使用道具 举报

yzl232 发表于 2014-7-21 00:05:02 | 显示全部楼层
楼主挺厉害的。 会有好offer的!
回复 支持 反对

使用道具 举报

neomiracle 发表于 2014-7-21 02:57:20 | 显示全部楼层
很好奇这个怂恿的同学是谁啊
回复 支持 反对

使用道具 举报

skndmx 发表于 2014-8-11 15:13:22 | 显示全部楼层
厉害,网络方面的问的也太仔细了吧。LZ加油~!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 09:07

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表