如何更换锈死的雨刷臂(Wiper Arm)

今年3月,我在清理车顶上的积雪的时候,一大块结成冰的积雪顺着后挡风玻璃滑下来,把后玻璃的雨刷臂砸断了。

雨刷臂的更换其实很简单,雨刷只有一个螺母固定,只需要把螺母拧掉,把旧的雨刷臂拿下来,再把新的装上去即可。但是问题是,经过纽约上州的大雪加上融雪剂的十几年的洗礼,雨刷臂的金属部分已经完全锈死在spindle上面了。我一开始按照YouTube上的视频,购买了一个如下图所示的工具试图把旧雨刷拔下来。

然而雨刷的剩余部分实在锈得太死了,加上工具本身不好用并且操作不当(没有把螺母装在螺丝上),导致雨刷的塑料部分下来了,但金属部分还在上面,还把螺丝的螺纹搞坏了(大无语)。

2020秋招美国SDE New Grad面试总结

经过大半年的时间,紧张刺激的秋招终于告一段落了。对于New Grad来说,2020年的秋招实在很艰难,我在中间也经历了很多波折,终于成功上岸。整个秋招一共收获了9个面试,4个offer,其中也包括一些比较冷门的公司或职位。本文会介绍我面过的比较有意思的公司或职位,以及我个人在找工过程中的一些体会和经验。

Citrix Software Engineer – Rejected

体验:★★★★☆

Citrix是一家toB的虚拟机公司,主要给企业提供基于虚拟机的IT解决方案。Citrix有Florida,North Carolina,湾区和Boston4个Office,每个Office的面试风格都各不相同,比如有的可能更注重OS,有的更注重网络。总体来说相比其他大厂更注重工程能力,沟通能力和behavior,算法上相对简单一些。

MasterCard Software Engineer – Rejected

体验:★★★★☆

MasterCard是大家都很熟悉的信用卡公司,他家主要有两个location,一个位于OFallen, MO,主要负责支付业务,而Arlington, VA的办公室叫MasterCard Data&Services,是一家被MasterCard收购的startup,原名叫Applied Predictive Technologies。我拿到的面试是位于Arlington的Data&Services。面试风格还是沿用了APT时期的风格,毕竟是startup,题目还是有些难度。除了最后一轮HM面之外的体验都还算不错,就不展开讲了。

Google Cloud Technical Residency – Rejected

体验:★★★☆☆

因为今年Google New Grad没有开,于是投了这个CTR职位。CTR是2018年才开的,在Residency里也算是比较新的。而且CTR并不是一个普通的SDE Residency,而是Google Cloud下面的一个更偏向Customer Support和Solution Engineering的职位。转正后的职位可以是Customer Engineer, Cloud Engineer或Solution Engineer。

汽车维修101——如何自己动手换机油

去年有一段时间沉迷YouTube上的修车视频,最近终于有些时间了,也想自己动手试一试。换机油其实并不难,但是会有一些潜在的坑,比如很多人都遇到过的螺丝拧不动的问题,我基本上已经遇到了大部分新手可能遇到的坑。第一次录视频,做得有些粗糙,之后有空也会再更新文字版。

如果你方便访问YouTube,也可以前往:https://youtu.be/s4sEJ7rjcTE 观看。

我的2020年终总结

2020年对所有人都是特殊的一年,年初本来有一个很好的开始,结果被疫情打乱了一切。

一月份我回到学校,经过一周的紧张的面试之后终于拿到了Ancestry的实习offer。搞定了找实习这个小boss之后,我开始了理想中的留学生活:我买了车,开始在学校食堂打工,同时计划着春假的旅游计划,女朋友拿到了SU的20Fall offer,除了正在国内肆虐的COVID之外,看起来似乎一切都很好。

二月的时候加州和华州已经开始零散出现一些COVID确诊,纽约这边还是一派祥和,但是大家心里都很清楚纽约市的人口密度和发达的公共交通几乎就是个巨大的培养皿。那时候中国学生已经开始采购口罩和采取防护措施,不过生活还是一切照常。我打工的食堂最初禁止带口罩工作,但后来也默许了。有一次我和带我的老爷子聊了一下,我感觉他们其实也是在关注这个事情的,只不过也没有采取任何的措施。

这样看似正常的生活持续到了三月中,随着纽约的Westchester County出现了社区传播,情况开始急转直下。3月10日学校发了邮件,宣布春假之后开始网课。当时朋友问我春假有什么计划,我苦笑说只能在家自闭了。

My Summer Internship at Ancestry

[中文]Ancestry暑期实习记

Shortly after I got the internship offer from Ancestry, the COVID outbreak flamed across the US. A number of companies rescinded their offers or switched to remote working. However, because of the Nexus Tax restrictions to companies that provide digital subscription products, we are not allowed to work remotely out-of-state (in states other than UT and CA). Finally, the company let us fly to Utah and remote onboard in the corporate housing.

In early June, I departed from Syracuse and headed for SLC. Lehi is a small but bustling town near SLC. There are quite a lot of tech companies, there are big names like Cisco and Adobe, there’re also small companies and start-ups. The Uber driver told me lots of companies moved here from California, Facebook is also going to build a new datacenter around here.

Ancestry暑期实习记

[En]My Summer Internship at Ancestry

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

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

一个谜之CORS Bug的调试过程

这学期的Object Oriented Design课程要求以组为单位做一个项目,我们的项目前端使用Vuejs,后端使用Spring Boot,通过REST API通信。

有一天前端的朋友告诉我她在调试的时候遇到了一个问题。她在本地运行Vue项目,连接位于AWS上的API。这是一个跨域请求,浏览器会首先发送一个Preflight请求来预检。奇怪的是虽然Preflight请求正常返回了200,但是后面的请求却并没有继续进行。

* Preflight request – 术语表 | MDN

我试图在我的电脑上复现这个问题,然而我的电脑上却一切正常,完全不能重现。

经过各种尝试之后找到了一个突破口——出现问题的这个接口是通过Cloudflare和nginx转发的,而换成直接从Docker暴露出来的8080端口则一切正常。

配置Docker Remote Host

这学期的Object Oriented Design课程的项目我使用Docker来做打包和部署,过去我都是手动ssh到服务器上执行Docker命令来部署新版本。但是这种方式对CI系统则不太友好,我们的确可以让CI系统使用ssh登录到目标主机并执行Docker命令,但是这样就涉及到密码,密钥及sudo的安全性问题,(主要是不够优雅。

这一次我使用了Docker Remote Host来解决这个问题。Remote Host可以使我们无需ssh登录服务器,仅通过网络即可控制目标主机上的docker daemon。

首先我们需要了解Docker的命令是如何执行的

Docker主要分为两部分,daemon和client。

Docker daemon (dockerd) 监听Docker API的请求,并管理镜像,容器,网络,卷等Docker对象。daemon 也可以和其他Docker daemon通信来管理Docker服务。

Docker client (docker) 是与Docker引擎交互的主要方式。当使用类似于docker run的命令时,client将命令通过Docker API发送到dockerd。

AWS网络基础设施

前段时间我拿到了一个Take Home Project,其中一个题目的内容和在AWS VPC中规划子网(Subnet)有关。借此机会我们可以了解一下AWS的网络架构。

上图是一个典型的AWS网络架构,本文中我们将介绍上图中各组件的概念及用途。

2020 Summer 实习上岸总结

前文提到,我的秋季学期在无数简历石沉大海之后,以面挂了亚麻VO的惨淡结局收场。

我当时为了亚麻的VO改了回国的机票,所以回国的时间总共只有十几天。虽然我在回去之前发誓假期要好好刷题,不过大部分的时间都在外面浪,所以爆肝刷题计划失败(

虽然题没怎么刷,不过简历倒是投了不少。当时春招刚开启,每天都能看到有新的公司放出职位来。这次我在投简历的时候也不仅限于SDE了,DevOps,SRE相关的职位我也投了不少。

因为这期间投的大多是小公司,回复的速度比大厂快了很多。形式大多是先HR电面,再进行OA和技术电面。我在寒假期间收到了一个VO和1个HR电面,分别来自Ancestry和Shipt,再加上之前就已经约好的Naveego。相对来说都是比较冷门的公司,我把这些面试都排在了开学第一周。

我在一月初飞回美国之后在纽约玩了两天,在一天早上起来刷LinkedIn的时候看到了一个Quicken Loan的SDE职位,就顺手投了一个。令我没想到的是当天上午,在我坐在1线地铁上前往Battery Park的途中收到了HR发来的短信(是的,短信),和我约了HR电面,同样在开学第一周。