tech.

亚马逊云服务香港面试小记

背景

2024年10月,我开始断断续续的投简历。作为一个在亚马逊前前后后干了8年的老人(2016年实习,17年回原组,24年辞职回国), 我认为自己依然可能回到亚马逊工作。在某次线上找工的时候,我随手投了亚马逊云服务的香港职位。 没想到,11月份的时候真的收到了亚马逊的OA。这个岗位叫AI/ML Consultant,OA的内容都是关于如何针对客户的需求设计云服务架构。 彼时我正好在准备BCG的面试,所以顺手在GPT的帮助下把OA做了。没想到几天之后收到HR的电话,要我约第一轮面试。

电面

第一次电面的机会被我错过了。面试前一天我正好面了汇丰银行的高级工程师职位,当天就拿了offer。 应该是心情一下子放松了起来,居然记错了第二天亚马逊电面的时间。反应过来的时候HR已经发邮件问怎么回事了。我只好道歉,然后propose了几个新的时间。 好在后来成功约上了新的时间。

电面我的人姓Mao,看领英在江浙的一个外国合办大学读书,后来又去芝加哥大学读博士。回国之后在亚马逊上海工作。有一点点浙江口音,但是不重。 问了我几种他们在工作中遇到的情况应该怎么解决。我印象最深的是,他说他们帮助客户做基于人工智能的智能客服中心Call Center。 特斯拉的方案已经交付了,但是需要他们在既有的方案上持续迭代。捷豹又来要一个类似的方案,和特斯拉的有很大部份相同,但是细节又不一样。 同时亚马逊自己还在内部的code base上做迭代。问我如何管理。我说应该把code base分成(decouple)底层逻辑和应用逻辑。 理想情况下,每一个客户都有自己的应用逻辑repo,比如特斯拉已有的应用逻辑可以根据他们的需求改进。 也可以根据这个应用逻辑迅速fork新的repo然后改成捷豹的应用逻辑repo。同时特斯拉自己的一些迭代应该归类为底层逻辑,他们自己内部可以在 这个底层逻辑repo上迭代。这种做法不仅分开了code base,实际上也把release和deploy的cycle分开了。在短期内是会有很多工作, 比如code refactoring,把deployment pipeline分开,tests也要分开。但是长期来看对于敏捷开发和CI/CD是有很大的好处。

我猜他对我的回答很认可,当时有点语塞,说感谢你的insights。

之后我问他一些团队架构还有工作内容的问题。时间差不多了就挂断了电话。面试官和我全程都没开视频。

面试完之后对他们的团队(aws professional service)的工作很有兴趣。在网上查了查,reddit上都是一些平均之上的评价,好过北美总体对亚马逊的评价。 再加上对BCG的一些初步了解之后,我认为香港的亚马逊的咨询工作值得期待。

准备

电面通过之后,HR给我打电话又透露了很多信息。讲了香港团队的manager Mark也会在之后的loop interview里面试我,希望我多准备leadership principle的小故事。 她提示我多讲自己的闪光点,面对过的巨大挑战和巨大的成就。我在网上搜了一下,立刻就找到Mark Arel。看领英是一个泛科技业的老兵了。典型的东部人的感觉,在银行业的IT部门做了30多年。 我的第一感觉是这个可能不是很懂技术。之后面试证明事实也的确如此。

我用GPT帮忙准备了7个STAR架构的小故事。基本上都是我在亚马逊这么多年的一些经历。印象最深的是recurring reminders,然后还有走之前最后一个项目 - email extraction。后来这些故事在面试里都用尽了,我不得不现场想出来一个2017年刚入职的时候做的Alexa Shopping List的故事。这个之后再提。

Loop interview

第一轮是一个叫Donald Wong的老好人。香港人,在加拿大读的书,但是英语还是有很重的香港口音。一上来连自我介绍都没有,直接开始问leadership principle。 我讲了三个故事,他看时间差不多了,问我有什么问题。我说你要不自我介绍一下。他笑,道歉说忘记了。介绍完自己又介绍了一下工作。很无奈的说这份工作很tough。

第二轮是叫Yixin Huang的中国人。就是本来要电面我的人,被我鸽掉了🐦。 他很严肃,然后在我说话的时候就盯着我看,好像要盯出破绽来。结果我真的就在这轮拉跨。他听我说做的是NLU相关的工作,就死揪这些。 我也直说了模型的训练都是Applied Scientist在做,那些我是没做过的。他问我模型训练都是怎么调参数的,我答不上来,又问我temparature,max token这些是做什么的,我还是不会。 他问我ASR都用了哪些模型,我说我不知道。他说那你如果做consultant,客户问你这些,你说你不知道,但是你在学。可以吗?然后他笑了,我也笑了。 我就说很多时候都是问题来了才学的,这很正常。他就又问我客户来一个问题之后我怎么思考,我就按照准备BCG的逻辑讲了讲。细节太少,我觉得他也不是很满意。 后来他又问了dynamodb stream的一些问题,包括可不可以整体备份,我答不可以。这个可能是对了,他没有再问。 最后结束的时候他还祝我之后的面试顺利(尽管我当时已经预感到他应该是会评价我专业知识不足了)。

前两轮连着两个小时,最后的时候我已经生无可恋。挂掉视频只想骂一句拉长版的biiiiiiiitch。

之后的面试都安排在第二天(12月18日周三,从下午一点半到晚上六点)。

第三轮面试的面试官叫Willie Vu,好像也是加拿大读书的香港人。依然是leadership principles,问了一些问题,他不说话,我问他"You don't buy it?" 他笑了,说他只是在记笔记。 最后他问我会不会讲广东话,我用白话说"识少少咯"。然后他就笑,我们又聊了聊就挂了电话。

第四轮的面试官叫Hao,我本来指望是中国人。结果是一个越南华人。Hao Huynh。他之前在洛杉矶的亚马逊做Solution Architect。后来到香港,做到senior。 照例是leadership principles。他问我更prefer用普通话,广东话,还是英语面试。我说还是英语吧。到这里我已经隐约觉得不太妙,好像大家都很在乎广东话的水平。 我想一定是亚马逊这种美国公司的制度决定了他们不可以在面试前提出语言的要求,但是又必须把这个语言要求考虑进来,所以他们才会问。最后Hao提醒我,最后一轮是Mark,他可能会花一些时间跟你聊聊客户的需求之类的。

最后一轮就是Mark,他看上去人很和善。跟我说终于面到一个Amazonian了,不用解释那么多有的没的。然后他问了我几个leadership principle的问题。 我知道因为第二轮很多基础知识露怯了,我必须多强调learn and be curious。我灵光一闪想到17年刚入职的时候的Alexa Shopping List。那个时候我一个人被派去在amazon.com上写这个alexa购物清单。 亚马逊的网站的后端是perl写的,非常老旧的语言。对于我来说很难,一方面没有同事可以聊,另外一方面没有别人的work可以参考。我只能揪住隔壁组的大哥不停的问。 他们组的中国人都认识我了,我每次去她都揶揄我一下。总之我讲了一下这个项目的难点 - 学习曲线很陡峭,没有什么旁边的人可以问,时间线比较紧。 这中间跑出来一个Kenneth Ma,说是enterprise service manager。他说自己也是科大的,问我会不会广东话(again?) 我说a little bit,mamadei。然后Mark挽尊说at least he speaks better than me。 之后他重点讲了一下他们的困难。大约就是人手不够。客户的要求太多,每个客户的要求又不一样。客户的技术栈各种各样,香港公司喜欢用好多不同的外包团队拼凑自己的网络服务。 他先是说这个职位他其实是在找一个人可以干三种角色的人,又说自己想要一个四分卫。最后说这份工作你周末还是有时间去hiking的。最后我问他“你觉得你的团队五年后会在哪里?” 他说了很多关于虚拟货币客户的潜力,因为内地政策的原因,虚拟货币的客户只能到香港找他们。

复盘

这个面试对我来说意义有两点:

  1. 明确了自己的知识盲点:最多的就是在训练模型上。我不知道怎么用SageMaker和bedrock。这个本来是在计划中,但是只是看了一些概念的东西,最后浅尝辄止。
  2. 大概了解了咨询,尤其是人工智能咨询的一些问题。

对于第二点,我意识到,如果我真的想要做咨询,香港并不是一个好的地方。 我语言不通,即使我不在乎这一点,周围人的态度也将阻碍我进一步发展。退一万步讲,即使周围人没有问题,我也很难在长期的香港咨询工作中积累人脉,找到未来的机会。 另外,亚马逊可能也不是一个做咨询的好地方。本质上来说这份工作依然是销售。 因为尽管是一个咨询的岗位,实际上确要用亚马逊云服务的产品。然而正如Mark指出的那样,香港的公司互联网基础很差,没有一个行业规范。这一点在美国和中国都很难想像。 大部分客户只是希望有一个可用的方案,而这个方案很多时候并不一定是亚马逊。 如何在客户已有的旧设施中间嵌入一个云服务的模块,还能满足客户的需求。本身就是一个非常困难的任务。

如果以后还想尝试亚马逊的话,我觉得可以先做一个基于SageMaker和Bedrock的项目,比如我一直在思考的trading infra。

另外,之后再投的话要投亚马逊中国,而不是香港。