10

Ancestry暑期实习记

 3 years ago
source link: https://nyan.im/posts/5244.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ancestry暑期实习记

November 7, 2020

[En]My Summer Internship at Ancestry

在我拿到offer之后不久,COVID在美国开始爆发,一时间很多公司开始取消offer或改为远程工作。然而由于Ancestry受到Nexus Tax的限制,我们不被允许在外州(除UT和CA之外的州)远程工作。最后公司决定让我们飞到犹他,然后在公寓里remote onboard。

6月初我从雪城出发,经芝加哥中转到达盐湖城。出乎我意料的是Lehi这个城市虽小,但是还挺繁华的,路边有不少科技公司的建筑,有Cisco,Adobe这样的大厂,还有好多没听说过名字的小公司和Startup。Uber司机告诉我近几年有很多公司从加州搬过来,而且Facebook也准备在这附近建新的数据中心。

Virtual Onboarding第一天是一整天的Zoom Meetings,主要在讲一些公司历史,使命,各种手续,如何使用一些公司的内部系统等等。我在之前一直以为Ancestry是一家生物公司(之前朋友跟我聊天都问我“听说你去了一家生物公司”),但实际上是一家数据公司。Ancestry的主要业务一直是家谱,其中最珍贵的就是家谱数据。家谱数据的来源非常广泛,包括记载出生,死亡,婚姻,移民,服役的文件,有些甚至是用古英语写成的。DNA和Health反而是最近几年才成立的新业务。

第一周主要是熟悉环境,配置电脑等等。同时也得知了我们要做的project。我们组是Performance Engineering组,广义上属于Quality Assurance,负责协助其他组发现和优化产品中的性能问题,其中也包括开发各种性能相关的内部工具。我们的project是一个全新的内部工具,由我和另一个base旧金山的实习生一起完成。项目本身规模不大,但是需要我们从零开始,收集需求、设计、实现、测试和部署这个项目。

其实项目本身并不复杂,但是企业项目需要考虑的东西很多,比如性能,可用性,预算等问题。另外由于这是一个全新的项目,所以组里给了我们很大的灵活度,语言,框架等等都由我们来选,只要是AWS里面有的都可以用。

公司使用的敏捷开发模型是Scrum,刚接触的时候真的是一脸懵逼,用了一段时间也就习惯了。不过我们用的这个Rally系统是真的难用。

配置环境的工作量并不大,基本半天就搞定了。之后的几周时间基本上都用来开会讨论需求,研究AWS里的各种技术,研究这些东西能否适应项目需求,然后写成文档,由大家讨论。

我们一开始在设计的时候经常overdesign,结果manager经常跟我们强调要keep it simple。我们最后选用了AWS Lambda和SQS来实现,这样可以大大降低成本并获得很好的scalability。从技术角度来说Lambda确实不够酷,如果这是一个课程项目的话,我们大可以用各种框架,加上重量级的消息中间件,最后写好扔到Kubernetes上。然而对于公司来说,技术上的炫酷并不等于实用,使用最低的成本来解决实际问题,并且secure delivery是首要的任务。技术选型完成后我们花了大概三周时间写了设计文档出来,给全组review。

设计敲定了之后实现就很简单了,没有遇到太大的困难,唯一的问题是我们把三个Lambda塞在一个项目里,结果包结构很混乱,导致了各种花式import出错,不过好在最后也解决了。还有一个Behavior Question中经常会遇到的情形,我做完一个feature之后mentor不同意我的设计,并且他的意见和现有设计是冲突的,要按照mentor的想法就得大改。最后我搞出了A,B,C三种方案去和mentor讨论,最后选定了比较折中的一个。

除了实现之外还需要做测试,测试的重要性已经是老生常谈了,不过说实话这是我第一次认真写测试(逃。除了单元测试之外还需要用SonarQube来做静态检查,所以code style还是需要注意的,不然SonarQube的报告会很难看。

我一直坚信Python是最好的语言,但是这次实习过程中也确实体会到了Python的一些劣势。Duck typing确实是一把双刃剑,在跟队友协作的时候,如果不看文档就完全不知道传进来的是什么东西,而且代码越灵活,静态检查能发现的问题就越少,很多问题只有在runtime才会显现出来。

到第7周的时候项目基本warp up,我花了三天时间和各种权限问题做斗争,最后终于部署到了production上。公司有专门的一个Jenkins负责Infrastructure Provisioning,只需要把写好的terraform script扔上去即可,非常简单。唯一比较麻烦的是权限问题,AWS的权限系统实在太复杂了,我自己用AWS的时候都是直接根用户一把梭,但在公司里就不能这么乱搞了。而且很多时候我们使用的权限会依赖组里其他工具的权限,比如组里的Jenkins,这时候就需要发PR去改组里Jenkins的权限。

复盘整个开发过程,其实算下来可能也就50%的时间在写代码,剩下的时间在讨论需求,讨论设计,沟通接口,等Jenkins跑pipeline,以及等着别人unblock…那句话说的没错,工作中最难/最累的并不是工作本身,而是与人沟通,即使是天天和机器打交道的SDE工作。

公司的WLB很不错,即使在WFH的情况下大部分人也是到点就下线。我队友是个肝帝,有一段时间经常半夜push代码或者发PR,我有时候也会死磕一个bug到很晚。后来mentor发现了之后还跟我们说不要加班,如果活干不完就告诉他。

不过第一次实习就是远程实习还是很有挑战的。首先开会就是个大问题,公司给我们订的酒店网很差,结果Zoom通话质量超级差,给我本来就不怎么样的英语水平雪上加霜,不过过了一周左右就差不多适应了。

WFH带来的最大问题还是沟通上的问题,如果是在办公室工作,遇到需要别人改个什么东西或是问问题,直接去工位上说就好了,但WFH的时候,一切都只能通过Slack和Zoom解决,通过share screen来debug的体验也并不怎么好。另外吐槽一下Conluence的搜索简直就是摆设,我遇到问题试图自己找文档解决的时候却发现Confluence上根本搜索不出有帮助的东西,最后只能去找mentor要。

之前看了@MF EA 游戏公司实习记 – Manfong’s Blog ,里面提到了公司举办的各种各样的活动,非常羡慕。我司在往年的8月第一周会有为期3-5天的Intern Days,旧金山office的intern也会飞到Lehi,参加各种活动。可惜的是今年因为COVID,整个Intern Day被削减到只剩下Executive Intern Presentation和Feedback Session。不过我们的项目有幸被选中去做presentation,相当于也是得到了认可。

虽说是远程工作,但是所有Base Lehi的实习生都住在同一地方,所以周末还可以一起烧烤,或者出去玩。大家第一次见面的时候还非常注意Social Distancing,然而过几次之后就放弃治疗了…

  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.
  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.
BBQ
  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.
  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.
Arches National Park
  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.独立日烟火
  • An old pencil drawing of Don Quixote and Sancho Panza sitting on their horses, by Wilhelm Marstrand.Kayak

酒店大厅里有个小柜子,里面全是桌游(?)

C497D469-BBC6-49BB-BD28-7601A5F511B8.JPG!s

虽然因为COVID,整个实习的过程非常坎坷,不过总体来说还是一次很棒的经历。感谢Ancestry让我认识了很多新朋友,得到了知识水平的提升以及短暂的财务自由(狗头


Recommend

  • 49

    问与答 - @Syaoran - 某知名高校和学院合作的几家企业,最低的一家能给出 10+元 /天的薪资……在广州 10+元一顿饭都勉强吧虽然说暑期实习是为了完成作业获得学分,这种短期实习连写上简历的价值都没有但这些企业最

  • 49

    原文首发于我的博客,欢迎关注~ 今年的春招(暑期实习)批已经过去大半了,相信不少同学已经拿到了心仪的offer了~本来打算暑假有空再写写这段经历,不过今天正好有空就记录一下吧,希望能给正在或者今后要找前端实习、工作的同学一点点启发和建议。(由于我妹子在...

  • 18
    • www.v2ex.com 4 years ago
    • Cache

    该如何选择暑期实习 offer 呢

    职场话题 - @keith1126 - 本科大三,暑假打算去实习,经过了一番申请与面试,目前结果大概如下:1. 微软,上海,Cloud + AI,面试已通过,大概率能拿到 offer 。2. 腾讯,深圳,WXG 微信支付,已发

  • 8
    • zhuanlan.zhihu.com 3 years ago
    • Cache

    蘑菇街大三Java后端暑期实习面经

    蘑菇街大三Java后端暑期实习面经思特沃克软件技术(武汉)有限公司 软件工程师...

  • 3

    【暑期实习咨询】有人了解中联基金/中联前源吗? [复制链接] 分享: 楼主

  • 7

    2020 年,我寻找暑期实习的经历与经验2020-04-232020 年,大三,按照常规的人生节奏,我踏上了寻找暑期实习的征途。 先开门见山一下,在写此文时,我基本结束了寻找暑期实习的历程。总的来说,我一共投递了 5 家公司(谷歌,微软,...

  • 4

    【公募基金—留用实习】中邮基金2021年暑期实习招聘 [复制链接] 分享: 楼主

  • 7

    工银理财2021年暑期实习训练营正式启动! 工银理财2021年暑期实习训练营正式启动!      工银理财有限责任公司是中国工商银行全资子公司,注册资本金160亿元,于2019年5月20日获批成立,是国内...

  • 12
    • bbs.pku.edu.cn 3 years ago
    • Cache

    暑期实习咨询:东方红资管

    暑期实习咨询:东方红资管 [复制链接] 分享: 楼主

  • 4
    • bbs.pku.edu.cn 2 years ago
    • Cache

    汇添富暑期实习终面求交流

    汇添富暑期实习终面求交流 [复制链接] 分享: 楼主

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK