web3 行业大多是一些创业公司和创业团队,记录所谓的面经没有意义,不像互联网大厂已经形成标准化的选择员工的流程。而且我也希望目标公司能够务实一点,如果在面试前突击准备两天就能通过面试,没准备就不能通过面试,那样的面试有什么意义呢?何况面试通没通过也不能说明什么,又不是高考一样相同试卷比分数,只能说明双方意向不匹配。所以不打算记录具体的面试问题,仅仅只记录一下面试过的公司,以及简要感受。
做 Baas 平台的,说跟 Merlin Chain 合作过。我一面之后拒绝了二面。
一方面不喜欢 Baas 平台,光是 Baas 这个词就很老土,而且是 to B 的业务,这种业务都不挣钱,工作内容上就是部署一些 L2 网络,很没意思,跟官网上提到的 Computer Layer 也没有任何关系。
另一方面,我觉得 Merlin Chain 是骗子项目,和这样项目合作的平台,一定也不怎么样。Merlin Chain 用了以太坊的代码做 BTC L2,是不是很魔幻,而且是中国人搞的,项目里处处体现出中国智慧。
RSS3 是一个 OP 的 L2 网络,现在想要提高执行层客户端的 TPS,有两个优化方向,并行 EVM 和数据库优化。
我记得之前 L2 的 TPS 受限于 L1 上每一笔交易的具体大小,后来有了 blob 之后就不太清楚 L2 的 TPS 瓶颈是不是在 DA 上了。
Bitget Wallet 用户增长部门,非常注重 web2 方面的技能,包括中间件的使用、编程语言方面的细节。
一个比特币 L2 项目。HR 面试让做了一些笔试题,主要是基础类的问题,比如比特币的 21M 是怎么来的。出这份题的人一定喜欢区块链,而且真的“懂”区块链,我挺喜欢这种感觉。
技术面试的过程中详细了解了一下,其实不是比特币 L2,而是比特币 DA,他们用 Cosmos 搭了一条链,然后用比特币的块高度做为数据索引,标识 DA 数据是什么时间上传到链上的。
如果其他链将这条链作为 DA 层把数据传上来,就需要一个索引来知道怎么找到自己的 DA 数据,比特币的块高度就起到索引的功能。所以这个项目其实只是蹭比特币热度,和比特币没啥关系。
如果算是面试的话。面试非常草率,只是电话聊了 10 分钟。要做的是一个为期 3 个月的项目,比特币相关的,搭建比特币节点以及需要开发一些中间件之类。为期 3 个月的含义是,1 个月调研、1 个月开发、1 个月交付,项目结束就散伙。可惜我忘了打听一下具体是做什么的。
这里想说的是,从我的感受上,对于项目期限非常明确的项目,有两种情况,一种情况是发起人特别厉害,有非常丰富的项目管理和开发经验,以及项目本身没什么技术含量、开发难度低的情况下,才有可能预先把时间控制到那么准。第二种情况就是,发起人想赚快钱,但是没技术也没钱,而且无知,既没有能力预判到项目的技术难度,也没有能力组建团队来长期运行下去。由于项目周期里包含了调研,所以这家公司在做的项目显然属于后者。
面试体验比较好的一次,面试官看起来比较有阅历,面试中提问题都是想到哪儿问哪儿,至少说话在同一个频道上,而不是给人刻板的感觉。
对方是做交易所钱包的,所以要招聘的人需要了解各种区块链尤其是收发交易方面,主要关心会不会分叉、回滚之类的问题,然后同时需要要兼顾做后端开发,关心一些中间件、数据库相关的问题。
经过去年和今年的面试经历,根据整体感受能得出结论,就是对于交易所的钱包部门,“懂区块链的 web2 后端开发” 属于他们的理想型。候选人首先有 web2 后端开发的经验,然后再懂一些区块链的基本概念,能够理解如何处理交易,这样的人是最好的。
web2 后端开发在技术方面的特点,是熟悉中间件和数据库的使用以及原理,比如 Kafka、Redis 这些,面试中可能会问你怎么设计和实现一个消息队列,或者如何解决 MySQL 分布式事务的问题,这些都是 web2 互联网开发的经典套路。
当然在 web2 方面我几乎是不了解的,每次面试中也是一问到就抓瞎,后来我知道自己不懂,面试中只要问这方面,我就直接说不知道。如果我没有从事区块链行业的话,可能也会往那些技术方向上去深入吧。记得我刚毕业的时候,还试着一边翻译一边学习一些 经典的技术话题。
另一个这次面试体验比较好的点是,面试官没有问 “Go 语言的 GMP 调度原理是什么” 这种问题。我遇到过很多很多次问这个问题的,直到现在我也没兴趣去搜索一下这个问题想要的答案是什么。可以在 Google 和 YouTube 上搜一下 “Golang GMP” 这个关键词,看看结果列表里中文的比例有多大,到底是哪些人在关心这种问题?
HR 人不错,挺可爱的,说项目是用 Cosmos 开发的一条链,已经上线了测试网而且有很多用户,准备上线主网。
面试官水平比较差,全程一直在问 L2 的细节,我说了不清楚不了解,还继续问,问的我都无语了。而且只问 L2 的细节,问不出别的。后续了解到现在是用 opBNB 的一条 L2,看来是 BNB 生态的项目。
面试体验还算不错(面试体验和面试结果、双方意向是否匹配无关)。面试官即兴提问,有点像 HashKey Group 的面试官,语速稍慢,一边思考一边提问。
这家公司是做托管钱包的。主要问了一些区块链方面的基础概念。
面试中让做一道笔试题,题目属于 Leetcode 的“简单”题,在合并有序链表和翻转链表中挑一个做。最近长时间都没怎么关心这方面的问题,也没有刷题,估计面试过程中写出来的代码是错的。
有意思的一点是,我早在几年前详细写过关于这两道题目的 解析。
解析的内容属于《Ground-Up Blockchain》中的一个章节,这本”书”起源于《『Ground-Up Blockchain』前言》,是我自己写的,源码在这里 smallyunet/ground-up-blockchain。写这本书的计划已经荒废很久很久了。
闲聊局,本以为 “交易所 + Golang” 标签的职位会问很多 Go 语言技术细节的问题,没想到只是简单聊了一些比较宏观的问题,比如区块链在现实生活中有什么实际用处之类。估计面试官在面试之前就已经做出了决定,放弃了面试吧。
从 HR 角度了解到的是,项目是一个 Layer 2 的链,模仿 opBNB 做了一些优化,然后也在模仿 TIA 做 DA 方面的事情。
技术面试的过程还挺有意思,不过懒得具体写了 :P
另外有趣的一点是,面试前 HR 再三叮嘱好好准备面试,这两天可以复习一下什么的。这种突如其来的 “好意” 引起人的警觉,我忽然不明白这是啥意思,可能是 HR 有一定的提成吧。
我一直不知道面试前有什么好准备的,本职工作是时刻在脑子里的,非本职工作则准备两天也根本不可能有结果,简单来说就是会的已经会了,不会的三两天也学不会,所以面试前到底应该准备什么?
而对于招聘方,看的应该也是一个人整体上近几年的工作经历,而不仅仅是有没有准备个两天三天的。
目前还没有找到工作,并没有结束找工作,只是时间跨度有点长,这篇博客有必要先结束,日后新开一篇。至于记录面试经历这种事情,似乎自从工作开始,我都会把每一次 找工作 相关的内容记录下来,以前会,以后应该也会的。
这次阶段性的记录大致从 7月20日开始,到 9月15日结束。
7月20日左右我开始产生离职的想法,并且开始第一次面试。9月15日则是我正式离职的日子。我最近大半个月几乎没有投简历,因为还没有彻底离职,也没太想过早开启全力找工作的阶段。
今年找工作方面的行情怎么样呢,反正没比去年好,感受上今年在招聘的岗位更少了。面对这种情况应该是什么心情呢?大致应该是,对过去不后悔,对未来的不确定存在轻微恐惧,并且对未来抱有盲目的乐观情绪。
话说回来,现在整个加密货币行业的市值在 2 万亿美元左右,你说咱能在这个行业里面,找到一份 3000 块钱让自己生存下来的工作吗?这个世界会给我们留下这样的机会吗?