在美帝工作两年有多,按理早应该有些总结和记录。一直拖拖拉拉到现在。

这两年有不少有遗憾,没有自己期望的进步那么快,但也很庆幸见识了很多很有趣,很有能耐的人,学到了不少东西。

两年前在罗切斯特经历了研究生毕业季,经过几个月里刷题看书感觉编程水平达到了这辈子进步最快的速度。身边已经有几位大牛早早拿到谷歌微软的 Offer,而我度过了不少电话面试加上飞来飞去的 on-site 仍然没有任何消息。在最绝望的时候当时带我做一个编译器小项目的教授 John 主动提出帮我修改了简历。我当时告诉他我想投一个 web dev 的职位因为 web dev 职位最多而且最好找工作,John 鼓励我说,“你应该努力争取自己喜欢且擅长的方向,而不是因为面临困难就找一个简单的出路”。

John 不仅是个精力旺盛的教授,经验丰富的程序员,还是一个非常难得的导师和朋友。在 John 的鼓励和帮助下我终于在毕业前拿到三星在奥斯丁的一个研究所的职位,从每年有半年时间冰天冻地的罗村赶到了每年有半年时间酷热夏天的大德州。

三星在奥斯丁有的是一个芯片研发和生产的中心,当时人数还不多。而我们组可能是整个中心唯一一个研究纯软件的小组:给芯片优化编译器。我开始的任务是 — — 打杂: 测试数据的脚本,展示数据的网页,等等。接下来的时间里开始学习东西,慢慢接触到了一些性能分析,汇编,编译原理,等等。组里人来自五湖四海几乎每个人都来自不同国家,但是气氛非常融洽,关系也非常要好。这也是我最怀念的地方。在这里的同事相处都让人很舒服,从他们身上很容易理解到了如何和人正确相处。可能很多人觉得码农都是反社交的动物,而且程序员情商无足轻重。而这几年的体会是一个程序员待人的水平对身边同事效率的影响可谓天差地别,对自身也会有更多帮助。感谢几位同事在职业生涯初期给了我足够的尊重和成长机会。

我们组里有些整个公司最多的自由支配时间。没有很多 Deadline 或是硬性的指标。这可能是个非常理想的钻研编译器方向的小组。组里的工作基本上是找到开源编译器性能的瓶颈,然后提交补丁给开源项目。虽说没有老板成天催促但是大家都很有职业精神,干劲都不错。组里几个都是老资历研究了十几二十几年编译器的工程师,而且依旧无比热爱自己的工作。和很多人心目中的创业明星或是银幕上的技术宅可能不同,有很大一批的程序员是在依靠自身对技术的痴恋在守护着软件行业的基础架构。

这里很讲究所谓的“Work-Life Balance”,大部分工作时间都不会太忙。顺便待遇福利,员工餐厅,基础设施都算是一流的。

后来一家一岁半多一些的创业公司联系了我。我挣扎了很久最终没有这次这个舒适的环境里留下来。走时候最难受的还是放弃了一批天天见面的朋友。

当时的想法是,呆在原地按部就班的研究性任务更多,更容易进入舒适区,但在一个万事待兴的创业公司工作受到的挑战和锻炼会更多,有更多创造性的任务,更容易接触新的不同的事物,更加有成就感。公司研究做的是 AI 服务,也是我一直长期看好的方向。代价当然是更大的风险和更大的压力。

挣扎了很久,想到世界那么大,我想去看看。于是来到了这个节奏更快压力更大的小公司,主要做 GPU 相关的管理软件。大家干劲都不错,尤其是直接负责我的 CTO,要求每天早上都有组会总结前一天工作,布置今天工作。CTO 是个精力充沛到让人嫉妒的人,不仅要安排组里的工作,协调公司里两个组之间交流,还要和合作公司的工程师斡旋,负责和各大投资人 VC 吹牛。每次瞥见他的日历都是满满的。

CEO 是个同样精力旺盛的小个大嗓门印度人,爱哈哈傻笑,说话连珠炮不换气说上很久。这位爷每每需要出差和各大合作公司和 VC 扯淡,频率大概是一周一次。我是一个想到坐飞机就觉得很痛苦人,这位却乐此不疲。另外和人交流是件非常累心的事,作为 CEO 的主要职责是费老大劲跑来跑去被人泼冷水,这样的心理素质恐怕也是我做不到的东西。

顺便 CEO 是印度人,CTO 是巴基斯坦裔,公司里连我一共有两个来自中国,非常和谐。

来到公司的第一件事是:打杂 — — 这可能是新员工躲不开的活。刚来的时候组里还没有很完善的持续集成测试的流程和机器管理,所以我就接了下来,差不多身兼了 DevOps 和 SysAdmin 的角色,服务核心开发人员的测试和发布。以前没有太多经验,花了几个月搭建测试环境,写了一堆 Python 脚本来管理机器,最高时候需要同时管理大概几十台 Azure 云服务器。由于缺乏经验加上脚本质量不高,(加上渣软 Azure 莫名其妙的小问题多,)刚开始经常忙得手忙脚乱。顺便这是桩苦差活,看上去简单想起来简单,真要开始做便会觉得棘手,需要时刻面临各种想得到想不到的问题,还要极大程度的耐心和细心。想要做好并不简单。

随后开始和组里学习核心的软件,接手核心开发的 C++ 的任务。C++ 是门非常庞杂的语言,我的基础也不是很强,于是也是硬着头皮上。今后的任务和学习方向应该还会是底层软件性能和高性能计算,感觉有很多东西要学。

不过总之还是很庆幸能有这样的学习机会。

两年多过去了,经历了不少,有挫折有喜悦,而初心还是没变: 精湛自己的技艺,成为优秀的工程师;多见见世面,不受拘束做个有趣的人。很多事情只有在摸爬滚打中才能学会,我只求我会继续做出不会让自己后悔的选择。

2017/11/19


Originally published at www.jianshu.com.