HELLO FROM ELEDUCK
NO.71
嗨
你好鸭
我是Cirrus
▌介绍下你本人的经历及当前所做的事情吧
留学 :在国内读完计算机本硕之后,我通过国家留学基金委前往加拿大UBC攻读博士学位,主要研究方向是区块链网络协议安全和优化。不巧赶上疫情,在加拿大待了两年之后我跟导师商量好决定回国远程继续接下来的学习,远程答辩拿学位。
国内实习 :回国之后,为了有一个比较稳定的学习环境,我先后在浙江大学的一个实验室以及阿里巴巴达摩院作为实习生各待了一年,完成了毕业所需的学术工作,之后顺利通过远程答辩,拿到学位。
工作 :博士期间研究方向跟一个海外的区块链创业团队非常契合,在毕业前就跟他们远程进行沟通和合作。在我答辩结束后顺理成章加入他们一起创业,到现在也有一年多了。
▌什么样的契机,让你有了远程的想法?最近的一份远程工作是如何获得的
在加拿大留学的第二年,那个时候我在温哥华的一家区块链创业公司实习。虽然那个时候还是疫情前时代,但那家公司已经允许员工每周有一天 Work-From-Home Day,并且有部分员工全职远程工作。等到疫情的时候,整个公司几乎都转移到了线上,工作效率也没有明显受到影响。在那个时候我就产生了以后要找一份远程工作的想法。
我的很多在海外留学的同学还有师兄都倾向于毕业后找教职或者去大厂上班,但我在浙大和达摩院的实习经历让我彻底放弃了这些想法,因为这些工作免不了固定一个 base,让人不得不面对要么选择长距离通勤,要么选择高租金/房价的窘境。于是我在临近毕业的时候找工作的首要标准就是允许远程工作。
庆幸的是,我博士期间的研究方向主要跟区块链网络协议相关,而且区块链相关的创业公司绝大部分都可以远程工作。在我快毕业的时候我的师兄还有导师给我介绍了一些海外创业团队,其中有一个刚起步的团队跟我的研究方向最为相关,甚至我的导师还是这个团队的大佬的迷弟。在我毕业答辩之后,全职加入了团队,成为了第 6 号员工。
▌以远程答辩的方式拿到加拿大的计算机博士,是一种怎样的困难和体验?
也许是因为计算机专业天然不太受地域的限制,我感觉我拿博士学位的难度跟我是不是远程答辩没有太大关系,因为我的大部分学术成果都是我在实习的时候完成的(加拿大公司一年,国内两年)。在博士四年里,我其实没有太在意我是不是能拿到学位,而是一直专注在自己所做的研究。我的导师也没有特别规定必须要达到什么条件才能毕业(这跟在国内读博有很大的不同),只要他认可我的工作,就可以申请答辩。到了准备答辩的时候我也就是花了一周的时间把之前的工作整理到一起,梳理了一下结构。
答辩是通过 zoom 远程进行的,总共有包括我导师在内的 4 个领域内专家提问。答辩时,我首先做了个半个小时 presentation,接着是3 轮(总计 3 个小时)专家们的狂轰乱炸。我答辩的时候是北京时间的凌晨 2 点开始,等答辩结束已经快到凌晨 6 点,我看着窗外的天空,感觉就像做了一场梦,4 年的博士生涯就这样结束了。
现在回想起来那段时间的主要挑战其实都是来自自己。没有导师监督,也没有身边的同学在卷,因此只能自己 push 自己。在遇到问题的时候很难第一时间找同学或者导师讨论,大部分问题都要自己硬着头皮解决。
▌区块链网络协议,为什么决定研究这个领域呢?
区块链网络协议是比较笼统的说法,其实我主要研究的是区块链的共识协议。简单来说,共识协议就是如何让网络中节点之间保存的数据都是一致的。比如说,一个用户在北京的时候手机是连接北京的服务器,他往某宝购物车里放进一件物品,等到他坐高铁去上海连接到了上海的服务器,这时他再查看购物车时,购物车里的物品应该还是那一件物品。
但区块链中的协议跟传统数据中心(或者说 web2)中的协议最大的不同就是 web2 的网络中的节点都是同一家公司控制的节点(比如 AWS),那么共识协议只需要容忍节点宕机这样简单的错误。但区块链的网络中(比如比特币),节点可能由不同的公司或者组织控制,甚至还会有黑客组织控制的节点。
这也就是为什么说区块链是去中心化的,因为网络中的节点互相不信任。那么区块链的共识协议就要保证即使有恶意节点参与的情况下,网络中的诚实节点存储的数据也是一致的。做到这一点十分困难,但比特币通过一个非常简单的协议做到了(即使性能很差),并且引发了整个 web3的技术变革。
我是大概 15 年的时候在本科的实验室第一次接触到比特币,当时实验室的老师在搭矿机把显卡都烧了,但那个时候太贪玩,并没有想要去研究这个技术。后来2017年硕士快毕业的时候,以太坊带火了 ICO,区块链技术开始被学术界重视。碰巧那个时候我的研究领域就是网络安全,导师鼓励我说可以去研究一下区块链到底是什么玩意,于是我就看了下比特币白皮书还有以太坊黄皮书,然后就迷上了区块链技术。本来想要硕士毕业就找工作,但当时我想要找机会好好研究一下区块链技术,国内也没有什么老师研究区块链,于是就申请了国外大学专门研究区块链技术的导师读博。
▌和分布在欧洲、澳洲还有北美的同事远程协作,都有哪些挑战?比如,时差?
我现在所在的团队成员主要分布在欧洲、澳洲还有北美,可以说遍布了所有主要时区。为了尽量减少时差带来的影响,我们的主要应对策略就是尽量把每样工作拆分成可以个人独立完成的小工作。例如,我们会把一个模块或者功能切分的足够小,可以由一个人(owner)独立完成设计和代码实现,其他一至两个人(staker)做 review。当然,我们也会有些工作需要两人或多人同时在线完成,或者开会讨论,比如模块之间的调用或者整个系统的部署和测试,这种我们会有 leader 提前一至两天安排一个大家都合适的时间一起完成。还有就是尽量减少不必要的会。我们目前每周的例会有两个,一个是每周一跟上级主管的 1-on-1,另外就是每周五小团队的例会,每个会一般在 1 个小时之内完成。
除了时差之外,就是由于成员所在国家和背景不同,休假时间也会不一样。我们一般在休假前至少一周就会给团队沟通好自己将要休假的时间,以及后续工作的交接等。大部分成员在休假的时候是不想被打扰的(甚至所有消息都不会),我们也会尊重其他成员休假的权利,尽量在他们休假前把工作沟通好,不会因为某个成员的离开对项目进展造成影响。
▌方便给我们拍照看看你平时的工作环境/工作台/桌吗
▌平时都用到哪些工具(软/硬件)来开展工作呢
-
Slack:团队即时沟通软件。团队的大部分沟通都在 Slack 上进行
-
Zoom:这个不用多说了,开会用的
-
Goland:我目前写代码主要用 Golang,所以会用 Goland 这种 IDE 作为开发利器
-
Confluence:团队的所有设计文档和会议记录都在上面
-
Jira:用来制定每个 Sprint(两周) 的目标和任务划分
▌很多人说远程易孤独,你是如何排解的
我老婆(对外的线上语言教学)也是远程办公,所以两人一起在家远程办公一点都不孤独,哈哈哈。另外,我们家养了 5 只猫(买二送三),有粘不完的猫毛和铲不完的猫 shit,一点也不会无聊。放些猫片~
▌对于那些也想开始远程工作的同学,你有什么建议么
-
选择自己喜欢的工作,保持热情
-
养成良好的生活习惯
-
多参加户外活动
▌最后,广告时间(招聘/征友/宣传/合作等,说任何你想说的)
我们团队现在迫切需要成熟的 Wasm/Rust 工程师,Comos 工程师(Golang)还有 Full-stack 工程师。
如果有相关 2 年以上工作经验且英语能够达到专业书写和听说能力的同学欢迎到我的电鸭主页找到我的邮箱,提供简历我帮忙内推。
6-7年工作经验
具备独角兽大厂后端、外企全栈工作经历
可全英文口语沟通交流,期待联系
8年后端 希望内推
厉害
牛。
我是一名golang 开发者,期待与您一起共事。