其次,我会支持并鼓励大家在社区提出自己的想法,无论事情对错,TA 只要愿意提出来,愿意站出来,都是一件好事。作为 Apache APISIX 的 PMC 成员,我会始终坚持 Apache 的理念和原则,坚持 The Apache Way 和我们常说的「Community Over Code 」,将其融入到社区治理当中。我们有公开的 Dev 邮件列表,也有 Private 私人邮件列表。在仅有 PMC 成员的私人邮件列表里,我们偶尔会有一些争论,比如“哪位贡献者可以成为 Committer”、“社区里的问题要怎么解决”。在这些场合,有些 PMC 成员会选择沉默,有些 PMC 成员会积极参与讨论,而我就属于积极的讨论派。Apache APISIX 社区:在开源贡献或参与开源社区方面,后续有什么计划吗?致远:我依然会积极参与社区活动,为社区做贡献。还记得 2019 年年末至 2020 年年初,Web 项目的贡献者很少,我就鼓励我身边的人参与进来,这个项目才得以为继。现在这个项目又进入了一个瓶颈期,所以我还需要鼓励更多的开发者参与进来。加入 Apache APISIX 社区后,我的注意力主要集中在这一个社区。成为 Apache Member 后,我会站在整个基金会的角度思考问题,会承担更多的责任。不仅关注 Apache APISIX 这一个开源项目,还会关注 ASF 的其他项目,包括孵化中的项目和已毕业的项目,和诸位 Apache Member 一起为开源布道,为项目注入活力,提供帮助和指导,期望 Apache 基金会在未来无数个 20 年里依旧常青。
个人生活与成长
Apache APISIX 社区:我看你在博客和分享中有提到,自己热衷于 Web 技术,正在努力成为一名优秀的 Web 全栈工程师。请问你当初为什么会选择 Web 前端这个技术方向?在成为 Web 全栈工程师这条路上,现在处于什么阶段?致远:高中课余时间,我一直在做 Web 渗透,也想做 Web 安全。对于 Web 安全,我是知其然而不知其所以然,我不知道 Web 服务是如何搭建起来的,所以我开始学习 Web 的整套理论体系和运作原理。在 Web 学习过程中,我经历了三个阶段,从最初的茫然、不知所措到以项目驱动、动手实践,再到最后拥抱开源、回馈开源。在第一个阶段,对于页面渲染、页面访问的原理和过程,我毫无头绪。2015 年高考结束后,我有了第一台 MacBook,便开始通过搜索引擎学习相关教程。到了大学,我开始以项目为驱动,动手实践,提升技术,拓展技术栈。我接了各种各样的项目,或单打独斗,或集团队之力。随着项目越来越多,需求变得越来越复杂,接触到的技术栈也越来越多。我在大学接的第一个项目是一个全栈项目——帮学生处开发一套内容管理系统,需要独立负责需求、设计、前端、服务端、数据库。通过不断地学习、尝试、踩坑,我最终完成了这个项目,也实践了所学内容。到了大四,我接触到了开源项目,并开始关注开源社区。因为我是自学 Web 技术,所以绕了许多弯路,没有体系化地学习 Web 技术。重复做外包项目虽然可以带来暂时性的收入,但不利于个人技术成长。偶然的一次思考,让我意识到在开发过程中使用到的开源库代码质量高、协作流程规范。因此我毅然把大部分时间投入到学习开源项目代码、关注开源社区动态中。虽然 Web 全栈涉及前端、后端、需求、设计、测试等各种能力和活动,但没有一个具体的指标可以衡量一个人是否拥有全栈能力。就当初定下的这个小目标而言,我觉得我已经达成了。至少面对任何需求,我会表现得更加从容淡定,内心会更加坚定,自信自己可以基于已有经验做前后端的技术选型,可以给出最终的方案。Apache APISIX 社区:阿里云创始人王坚博士在 ArchSummit 全球架构师峰会上提到,“只有这个世界的挑战离年轻人更近,未来才会离我们更近。” 你是怎么理解这句话的?致远:当时王坚博士做了一个致辞,他说完这句话后,我的第一印象是我要继续帮助更多的人,帮助更多身边的人。那个时候,我在 freeCodeCamp 比较活跃,除了线上邀请世界各地的朋友学习编程,也会在学校机房里举办一些计算机活动,带同学、室友学习 Web 技术,其中就有我隔壁宿舍的大学同学孙毅。我们在大学做了很多项目,后来他也是加入了 Apache APISIX 社区,加入了我现在的公司 API7.ai。记得有一次,我和孙毅还专门给一个江苏学校的几千名同学在线讲课。这个活动是科大讯飞组织的,当时还有点紧张,我们找了个酒店,特意准备了很久,最后分享了一个多小时。Apache APISIX 社区:参与开源项目往往是远程工作,你也很早就开始远程工作了。你是如何看待远程工作和自由职业的区别?致远:大二时,我在想毕业后一定要从事自由职业,而不是远程工作,但当时我没有搞清楚这两者的区别。2018 年,我以交换生的身份在法兰克福待了半年。当时我有了第一份正式的远程工作,每个月会有一笔收入,体验非常好。出国前,在学校里接的各种项目其实也算远程,双方提前约定好 deadline,到点交付成果,工作比较自由。回国后,我在网易工作了一段时间,离开后又加入了一家美国的公司——Team 247,继续远程办公。那是我第一次强烈地感受到 remote work 和 freelancer 的区别。Team 247 要求我们保持 Slack 通信,要响应得非常及时,这让我感觉不太自由,有点受限制。后来我来到了现在的这家公司,在远程协作方面会有一些要求。最开始我会比较抵触,因为我来公司比较早,刚开始规模比较小,没有这么多要求。但和大家聊过后,我慢慢理解了公司在远程协作方面的考虑,因为国内整个行业还没有形成一个很好的远程办公环境,无论是工程师还是其他岗位的同学,还没有养成很好的远程办公习惯,所以公司会通过远程办公相关要求来帮助大家养成良好的远程协作习惯。在以往的远程工作经历中,我发现大家在远程协作中普遍存在两个明显的问题。第一个问题是大家潜意识里会被条条框框约束,不敢问,不敢说。举个例子,在远程协作时,大家可能会有这些想法——“我需要技术同学的帮助,但我不知道对方忙不忙,我 @TA 合不合适”,“我是一个实习生,我 @TA 合不合适”,“我问的问题会不会太蠢”。其实我们不用顾虑这么多,只管大大方方请教,没人会在意这些细枝末节。而且大部分支持远程办公的公司都提倡"Remote First",在远程协作中,沟通很重要。第二个问题是大家还没有完全养成 Document Anything 的习惯。Document Anything 是很多 Remote First 的公司普遍提倡的做法,这也是我带领的 Global Team 把事项写进邮件列表的原因。一方面,如果有人员变动,至少后来人可以看到 Global Team 从刚搭建到现在的整个过程,了解大家做过什么事情,当前在做什么事情和当前的进展。另一方面,如果每次都是口头交流,没有文字记录,会导致信息流通、新人上手的成本非常高。所以在日常工作中,即使是面对面沟通,只要不是私事,我都会在公开渠道表达,这样既可以溯源,也可以尽可能地覆盖到更多的人。Apache APISIX 社区:远程工作需要工程师有较强的自我驱动力。在远程工作中,你如何保持自驱力?致远:首先,我们是一个创业公司,所以会有很多事情要做。其次,我早上醒得比较早,一般 5 点就会自然醒,醒后便开始计划一天的工作。我喜欢清晨独处的几个小时,可以安安静静地做很多事情,效率非常高。往往大家开会前,我已经处理完了今天的所有工作,所以下午偶尔会看看书,稍微放松一下。但大部分时间,我还是会和公司的同事保持同样的节奏。既然早上已经忙完了,下午可以再多做一点,多想一点。因为对我来说,事情真的是永远做不完。Apache APISIX 社区:你如何平衡工作和生活?进行两种模式的切换?致远:在工作和生活方面,我正在逐渐平衡它们的关系。从 2020 年到现在,我平均每天有 13 个小时在工作。从我来公司的第一天,我就说我是来创业的,所以我会投入非常多的精力。在这十多个小时里,我的效率会非常高,因为我知道我要做什么,我要优先做什么,我也知道这个问题该怎么解决。从 2020 年末,我开始做公司内部的一些管理工作,今年开始带领我们的全球化团队。虽然我们的流程制度还在不断完善,但整个团队走在一个正确的轨道上,以目标为导向,用数据来验证,协作沟通越来越顺畅。所以到了月底,我应该也会休息一段时间,慢下来,充充电。过去两年,我在不停地处理公司内部的事务,从这个月开始,我会报名参加活动,做更多的对外分享,讲 Apache 文化、讲 Apache APISIX 开源项目、讲开源、讲社区。Apache APISIX 社区:除了工作以外,平时生活中会关注哪些领域的东西呢?致远:我把当前的工作看成一个事业,也是一个兴趣爱好。而且创业本身很有趣,我现在负责公司的 Global Team,团队内有很多外国同事。我也会关心教育公益,比如参与或组织 freeCodeCamp 的活动,鼓励帮助身边的人学习计算机、学习技术。我认为有一点很重要——自己成长的前提是身边的人一起成长。能帮助他们通过自己的手艺实现自己的想法,这是一件很酷的事情。虽然我现在个人精力有限,但是我会鼓励我 Mentor 过的同学带新人,帮助新人学习 Web 技术。有时我也在想,如果我不干这行,我会做什么。我的博客签名是「用魔法打败魔法」。我觉得化学是一种很神奇的东西,小时候参加过巴斯夫小小化学家活动,知道著名化工企业巴斯夫在用化学改变生活。我对自然、生物也比较感兴趣,看过很多宇宙、自然相关的百科全书。