摘要:开源热潮下,开源开发者的收入始终是影响项目可持续发展的一个核心问题,也曾有许多开源开发者因维持不了生计而中途放弃。而本文作者,在明知这些现象后,仍辞去了高薪工作转向全职做开源——如今 6 个月后的他,对这个决定依然毫不后悔。
原文链接:https://mfiano.net/posts/2022-09-04-from-common-lisp-to-julia/
声明:本文为 CSDN 翻译,未经授权,禁止转载。
多年以来,我一直对开源软件充满了热情。因此,2022 年 1 月下旬我正式辞职,并于 2022 年 3 月开始从事全职开源软件开发的工作。
就目前的情况来看,这是一段令人振奋的旅程。我会很高兴地对你说:我会将这份事业继续下去!
开源工作的好处是,我可以选择很有趣的技术和/或能够推动现代 Web 开发向前发展的项目。但我也必须承认,开源存在不足之处:作为一个行业,我们依然没有找到可持续的资金来支持绝大多数维护者。
我有机会与一些了不起的人一起从事有趣的项目。以下是我引以为豪的一些开源工作:
TypeScript ESLint:错误修复、改进文档、添加新功能。
对自己在自动化规则文档方面所做的工作尤其满意
TypeStat:错误修复、改进文档、添加新功能。
Stryker:添加方法表达式修改器。
eslint-plugin-expect-type:接管维护工作,并修复了一些 bug。
TypeScript:修复了一些 bug。
发布 learningtypescript.com,并撰写了几十篇有关 TypeScript 的文章。
发布 chooseyourframework.dev,包括 EightBittr 的一整套重构和改进。
开源 Refined Saved Replies Chrome 扩展。
此外,我重新开始在 Twitch 上直播,并将这些视频上传到了我的 YouTube 频道。
下面是我于 2022 年 3 月之后发送的所有合并拉取请求:https://github.com/pulls?q=is%3Apr+author%3AJoshuaKGoldberg+is%3Amerged+created%3A2022-02-28..2023-01-01+is%3Apublic
截止到目前,虽然我完成了所有这些工作,但每月只能获得大约 600 美元的开源资助:
我自己的 GitHub 主页获得的资助:每月 200 美元;
TypeScript ESLint 的资助:每月 400 美元。
美国联邦规定的最低收入为每小时 7.25 美元,即每月 1200 美元,也就是说我全职工作收入的每月 600 美元,大约是最低工资的一半。以我 2021 年的基本工资来计算,当时一天的薪水甚至高于我现在一个月的开源收入。
为了将个人收入提高到可以接受的水平,我想尽了各种办法,比如为私人公司提供咨询服务、发布书籍《Learning TypeScript》以及偶尔审核 pullrequest.com 上的拉取请求。但这些兼职占用了开源工作的时间和精力,导致我的工作进入了一个恶性循环:作为开源维护者,我无法赚取可持续的收入,所以我必须从事兼职工作,但兼职工作会占用开源工作的时间,导致我无法提升自己并获得资助。
幸运的是,随着我个人和我的项目受到越来越多的关注,我收到的资助也在增加。我的目标是到 2022 年底将收入提升到每月 1000 美元。
此次全职开源开发的冒险经历让我学到了很多经验教训,以下是三个我一直在努力的领域。
有趣的开源项目有很多,从可爱的业余项目到具有很高影响力的开发工具。起初,我强忍住了跳来跳去的冲动,试图强迫自己从事我认为影响力和知名度都非常高的项目。然而,我的内心却不赞同:我发现只有从事梦寐以求的工作,效率才能达到巅峰。
这些天来,我总结了一份我感兴趣的项目清单,并经常在这些项目之间来回穿梭。但是,如果遇到一些时间非常紧迫的问题,比如某个严重的 bug,我就会强迫自己专心做好一个项目。
我其实不喜欢吹牛或主动提要求,也不喜欢花宝贵的时间在互联网上乞讨(比如写这篇文章)。我的直觉告诉我,如果我从事具有重大意义的工作,并出色地完成了,人们就会资助我。
然而,现实很残酷。我必须积极地宣传自己,否则就只能默默无闻。而且,当其他人知道我是谁以及我在做什么时,他们就可以向我诉说自己的想法,并让我帮助他们解决痛点。积极地宣传自己可以产生连锁反应,因为随着越来越多的人了解我,口口相传的效果也会越来越好。
获得他人的资助比为公司工作更直接。我觉得这种方式能在我们之间建立感情上的连接。有一段时间里,我不愿意喝好咖啡,不愿意出去吃饭,也不愿在自己身上花任何钱。我觉得,他人资助的钱是为了让我从事开源工作,我又怎么能奢侈浪费呢?
但是对我自己来说,这种心态既不健康也不公平。我不应该因为收入来源的变化而放弃生活的乐趣。如果我将自己限制在最基本的生活消费上,那么就无法创作出最好的作品。
当然,我也不会随意挥霍我获得的资助。
如果你认为我的项目列表很有趣,那么敬请期待接下来六个月会发生什么吧。我的目标是到 2023 年春季之前完成以下工作:
与其他开发人员通力合作,将 TypeScript ESLint 升级到一个新版本6.x。
了解 TypeScript ESLintx 的内部结构,并着手解决大规模性能问题。
进一步完善TypeStat,使其稳定,并应用到一些常见的 React 项目。
标准化工具,并解决我的一些小型代码库中的错误和功能,其中包括emojisplosion、konamomijisplosion、console-fail-test、eslint-plugin-expect-type 等。
继续撰写文章,解答常见的 TypeScript 问题。
还有一些未知的项目。开源 Web 开发的神奇之处就在于整个大环境都在不断变化中。我非常期待接下来几个月内会出现哪些技术创新。
上述所有伟大的目标都需要有所付出。我非常感谢大家给予我的支持,也非常感谢你们支持全职开源开发。你可以通过以下渠道支持我:
github.com/sponsors/JoshuaKGoldberg:你可以支持通过 GitHub 提供资金支持。
opencollective.com/typescript-eslint:支持 TypeScript ESLint 维护团队。
learningtypescript.com:可以看看我的书籍《Learning TypeScript》,如果你喜欢,请给五星好评。
twitch.tv/JoshuaKGoldberg,twitter.com/JoshuaKGoldberg:请关注/点赞/订阅我的频道。
如果你在计划举办会议、聚会或播客,也可以联系我。
感谢你的阅读,开源快乐!
— 推荐阅读 —
1024 程序员节狂欢盛会,等了一年终于来了!