我是 LinkedIn 新人。

职业生涯中的大部分时间,我都藏在一家家私营企业内部,编写代码、设计系统架构,而且那些系统毫无疑问都是闭源的。它们由我诞生在企业的地下墓穴里,注定永远见不到外面的阳光。

我一直是个高产的程序员,只不过这些产出几乎全都属于私下完成的工作。

偶尔,雇主会明确批准把某些东西发布给社区:一个旧原型、一条已放弃的分支,或一个经过删减、与最终交付系统早已面目全非的版本。这样,我便有了可以公开分享的东西,又不会暴露仍留在高墙之后的专有成果。

但这些发布只是例外。工作、家庭和生活用光了所有时间。我偶尔会启动一个开源项目,取得一些进展,然后眼看着它慢慢变成化石;与此同时,那些别人付钱让我编写的软件仍在紧锁的大门后不断生长。

后来,两件事变了。

自由与杠杆

第一,我不再供职于别人的公司,而是创办了自己的咨询业务。

这给了我自由。我可以决定哪些问题值得解决、哪些软件应该公开,以及用什么许可证发布。我不再需要一个委员会来裁决一段有用的代码能否逃到外面的世界。

第二,AI 到来了。

这给了我杠杆。

AI 让我的生产力提高了大约 50 倍。在 AI 出现以前,别人就已经认为我的产出异乎寻常;但每一项实现、实验、测试框架、基准和文档改动,仍然必须经过同一双手。

软件开发中有很大一部分工作,是把一个决定变成现实:编写样板代码、追踪陌生代码、找到 /proc 下那个确切的文件、想起哪个系统调用会暴露所需信息、构造测试数据、接好基准测试,或发现某个库对“超时”的理解与你的不太一样。

思考也许只需两分钟,通过键盘把它表达出来却可能要花两天。

AI 改变了这个比例。

该存在什么,仍然由我决定。架构、数据结构、取舍和基准由我选择。我审查实现,也对结果是否正确负责。但我不必再亲手拧紧每一颗螺栓。

第一个变化给了我发布的许可。

第二个变化给了我时间。

所以现在,我开始源源不断地产出制品

Goblin Core 是一款兼容 Redis 的数据库,在许多方面性能更好,内存占用更是显著优于现有实现。

Goblin Store 是一款兼容 Memcached、面向大对象工作负载的对象存储。在我关心的场景中,它同样比现有实现性能更高、内存占用更低。

而且不只这两个。我大约有十几个项目正在向前推进:数据库、缓存、SIMD 实现、网络实验、编译器工作,还有其他从实验室里爬出来的奇怪生物。

它们不是提示词生成的演示项目,不会只在 README 里宣称自己战胜了计算机科学。

它们是制品。

它们有测试,有基准,运行在真实硬件上。我用精心构造的工作负载将它们与严肃的现有实现比较。那些看着我一连消失几天、埋头设计基准的人会说,我的认真程度或许已经到了痴迷的地步。

这正是有趣的部分。

遗憾的是,写出好软件还不够。

没人会下载自己根本不知道存在的软件

无人发现的公共软件,远不如一套正在积极服务其开发企业的私有软件有用。

你必须解释它能做什么。

你必须证明为什么别人应该在意。

你必须赢得足够的信任,让某个人愿意下载它、运行它,甚至把自己基础设施中的一个小角落,托付给一个住在佛蒙特州、拥有太多旧服务器的陌生人。

换句话说,你必须推广它。

市场推广对我来说是一项新技能。

我的本能是发布一张图,展示某个实现少用了 36% 的内存,把 P99 延迟砍掉一半,或让一台老到已经拥有投票权的机器搬运多得令人尴尬的字节。

所有人肯定会立刻明白这有多棒。

显然并不会。

人们关心基准,也关心基准背后的人。他们想知道项目为何存在、什么问题把我惹恼到非得亲手解决、哪里出了错、什么让我意外,以及我在残骸中爬行时学到了什么。

基准告诉人们发生了什么。

故事告诉他们为什么应该记住。

学习 LinkedIn

我正在 LinkedIn 上开始这门功课。

我的项目还很年轻,而这里的受众对此相对温和,至少肯定比 Reddit 或 Lobsters 温和。在后两个地方,第三段少一个分号都可能招来一场审判。

LinkedIn 很奇怪,但也很有用。它会奖励技术工作,前提是技术工作到来时,外面包裹着某种一眼就能认出的人情味。

这要求我做一点调整。

无论我多么想谈论最新的基准、新功能、内存分配器、编译器实验,或与 Linux 内核之间一场晦涩的争论,我都不能没完没了地发布图表,还指望人们始终在意。

每赢下一次基准,我就需要先发两篇关于软件开发中人性一面的帖子。

那些挫折。

那些历史。

牵涉其中的古怪机器。

我为什么选择一种取舍而不是另一种。

某个让我在基准连续运行六小时期间保持愉快的小笑话。

某个我相信了二十年,却发现其中藏着微妙错误的观念。

这些其实并不是次一等的帖子。很多时候,人们对它们的反应最强烈。对于那些没有坐在我身旁、看着我构建软件的人,它们让技术工作变得可以理解。

但我的工程师大脑仍然把它们视为挡在我和甜点之间的蔬菜。

或者,更准确地说:

两坨便便和一根棒棒糖。

棒棒糖是那篇我迫不及待想发布的基准文章。

两坨便便则是我必须先写的人情故事。只有这样,当我终于亮出一张图,展示自己仅仅通过重新排列十二个字节,就多跑了每秒 1400 万次操作时,还会有人愿意听。

显然,这就是市场推广。

这个 Goblin 还在学习。