My Third Year as a Solo Developer

Michael Lynch

独立开发者生涯的第三年

今天是我辞去 Google 的工作、创办自己的软件业务的第三周年。我在第一年和第二年结束时都发布过总结,现在是时候分享我的进展了。

一切步入正轨的一年

在为自己工作的头两年里,我总共只赚了不到 1 万美元。第三年,我的目标是获得 2 万美元的收入。

到年中时,看起来我要完不成目标了。我的各项业务加起来每月只有大约 300 美元的收入,而我的新点子没有一个奏效。

奇迹般地,5 月的一个新产品扭转了一切。到年底,我获得了 6.3 万美元的收入,远超目标。

好吧,我的净利润仍然是负数,但这次我有充分的理由!

我现在销售的是实体产品,所以收入比支出滞后两三个月。每笔销售的利润率是 30% 到 50%,所以数字最终会追上来。

等等,你怎么能承受得起一直亏钱?

我在去年的回顾中详细讲过这个问题,简单来说就是:生活成本低、在 Google 工作期间攒下了一笔可观的积蓄,以及被动投资收入。

逐个项目来看

TinyPilot

TinyPilot 是我开发的一款用于远程管理服务器的廉价设备。

过去几年里,我一直在一台家用服务器上进行所有的软件开发。它运行得很好,除非我把网络配置搞砸了,或者想安装一个新的操作系统。我的服务器没有连接显示器和键盘,所以我得把它拖到书桌前,把所有线缆与我的工作站互换,用完后再换回去。

我曾读到过 Raspberry Pi 可以伪装成 USB 键盘,而且我知道它能采集视频。如果一个 Web 应用把这两个功能结合起来,把树莓派变成一个微型远程管理设备会怎样?

经过几个月的折腾,我做出了一个可以工作的原型。

TinyPilot 连接两台电脑的照片

TinyPilot 原型,我的开源 KVM over IP 设备

我曾经怀疑这个产品有没有市场。为什么会有人从我这里买这种设备?它不过是一堆随处可得的硬件组件的组合。也许每周只有一两个客户购买,所以如果每个套件我能赚 80 美元,那打包发货所花的时间还是值得的。

然后,我发布了一篇博客文章

立刻,事情变得很清楚:这项业务与我以前做过的任何事情都不同。博客文章上线不到四个小时,客户就买光了我库存中的全部九个套件,而且在缺货的情况下他们仍在继续下单。

一周之内,这篇博客文章带来了 8800 美元的销售额。它登上了 Hacker News 的首页,并成为有史以来最热门的 “Show HN” 帖子之一

TinyPilot 在 Hacker News 和 reddit 上的反响

在那次最初的爆发之后,销量有所回落,但 TinyPilot 从那以后一直在稳定增长。我完全没有销售实体产品的经验,所以我很快学会了如何管理库存、将订单履约流程系统化,以及与供应商合作生产电路板3D 打印外壳

TinyPilot 在年底实现了近 5.4 万美元的收入。我的净收入仍然是负数,但这是因为成本前置了。TinyPilot 2020 年的开支包括足以支撑到 2021 年 2 月的库存。

收入/支出2020
销售额$53,362
捐赠$380
材料-$46,143
电气工程咨询-$7,130
订单履约-$2,570
软件开发*-$1,321
开源贡献-$1,270
广告-$675
平面设计-$250
托管 / 域名-$64
净利润-$5,681

* 绝大部分代码都是我自己写的,但我雇了一名开发者来协助制作销售页面

Hit the Front Page of Hacker News

Hit the Front Page of Hacker News 是我关于写博客的课程。

5 月,我在一个名为同行导师小组的组织里做了一次非正式演讲,题目是“如何成为一个还算成功的软件博主。”我尝试拆解那些让我的文章在 Hacker News 和 reddit 等网站上获得成功的技巧。分享我的过程很有趣,但我不知道还能拿这些材料做什么。

这一年里,我越来越多地看到开发者通过付费课程教授自己所知的东西。TinyPilot 让我看到,让博客与业务保持一致是多么强大。如果人们喜欢我的博客,他们也许会有兴趣购买一门关于写作的课程。

录制课程比我预想的要难。我原本计划投入 30 到 40 个小时,结果花了将近 200 个小时。

课程于 2021 年 1 月上线,所以下面的数字不包括上线后的订单。到目前为止销售额平平,但现在判断长期收入还为时过早。无论如何,我为这些内容感到自豪,而且有好几位学员告诉我,这些课程对他们的写作产生了显著影响。

指标2020
预购数量29
预购收入$1,431
封面设计-$293
录制设备-$584
净利润$554

mtlynch.io(本博客)

今年我在写作上的最大变化是更加策略性地思考文章选题。在 2020 年之前,我抱着这样的心态写作:“我现在正好在想这个话题,所以就写出来看看会发生什么。”有时文章能找到读者,但更多时候找不到。

今年,在动笔写任何新文章之前,我都会问自己两个问题:

  1. 有多少读者对这个话题感兴趣?
  2. 我有办法触达他们吗?

这一点小小的规划给我的读者量带来了巨大的变化。2019 年,我的文章在第一周平均有 5000 名读者。2020 年,这个数字跃升至 25000。在我发布的九篇新博文中,除了一篇之外全部登上了 Hacker News 首页,其中四篇登上了第一名。

指标20192020变化
页面浏览量273,817719,899+446,082(+163%)
联盟营销收入*$374$1,599+$1,225(+328%)
开发-$460$0-$460(-100%)
插画-$769-$964+$195(+25%)
托管 / 域名-$150-$534+$384(+256%)
编辑 + Grammarly-$200-$222+$22(+11%)
净利润-$3,835-$121+$3,714

* 我已于 2020 年底终止了这个博客上的所有联盟合作伙伴关系

失败的项目

去年我学到的最重要的一课是:追求正确的想法意味着拒绝错误的想法。六到八周之后,如果一项业务仍未能产生有意义的收入,我要么转向关注不同的客户群体,要么干脆放弃,开始一个全新的项目。

Is It Keto

Is It Keto 网站截图

Is It Keto 告诉读者哪些食物符合生酮饮食。

我于 2018 年创办了 Is It Keto。这是一个简单的网站,告诉你某种特定的食物是否符合生酮饮食。

我在 2019 年放弃了这个网站,但在几个新的商业想法相继失败后,于 2020 年 4 月灰溜溜地回来了。Is It Keto 是盈利的,但只是勉强盈利。每个访客带来的收入不到 0.01 美元,因此它需要访客量和/或单客收入的急剧增长。

为了扩大增长,我尝试将文章写作自动化。在 Is It Keto 的整个生命周期中,每篇文章都是百分之百原创、由我或我雇用的作者专门撰写的。在审查现有内容时,我发现了一些一致的模式,可以把它们抽象成模板。只要填入正确的食物名称、照片和营养信息,我就能快速生成新页面。

Is It Keto 文章及其生成源代码

用模板以编程方式生成 Is It Keto 文章

起初,模板化内容似乎每周能新增数百篇文章,但事实证明,在不牺牲质量的前提下很难扩展得那么快。两个月里,我只新增了 118 篇文章。模板越多,速度越快,但新增的内容吸引的用户太少,不值得继续投入。

另一个想法来自我的朋友 Justin Vincent(贾斯汀·文森特),当他听说我的网站每月有 7 万到 10 万次页面浏览量却只能赚这么点钱时,他惊呆了。他建议我做一个付费的姊妹产品,并用 Is It Keto 来吸引合格的潜在客户。

我为生酮社区和应用测试了几个落地页,但只有 0.1% 的访客注册了解更多信息。大约在这个时候,TinyPilot 开始起飞,于是我把 Is It Keto 搁置了起来。

指标20192020变化
页面浏览量521,9131,314,583+792,670(+152%)
广告收入$940$2,934+$1,994(+212%)
联盟营销收入$1,315$2,147+$832(+63%)
膳食计划销售*$24$18-$6(-25%)
自由设计师和内容作者-$4,322-$105-$4,217(-98%)
托管 / 域名-$115-$241+$126(+110%)
净利润-$2,158$4,753+$6,911

* 我于 2020 年 1 月放弃了膳食计划

WanderJest

WanderJest 网站截图

WanderJest 帮助喜剧爱好者找到附近的现场喜剧演出。

WanderJest 是我在 2020 年初启动的一个短命项目。我把它描述为“喜剧版的 Bandsintown”。

我喜欢喜剧,但曾无数次错过观看喜剧演员在我附近演出的机会。要么是我没订阅合适的邮件列表,没关注对的社交媒体账号,要么就是没有在对的时间查看 Ticketmaster。WanderJest 本打算通过尽可能多地聚合各来源的演出信息来解决这个问题。

我的计划是通过与剧院的联盟合作赚钱,但从没有人使用过我的折扣码。新冠疫情暴发后,我关闭了网站

Portfolio Rebalancer

Is It Keto 网站截图

Portfolio Rebalancer 帮助被动投资者管理他们的投资组合。

我的投资组合由不同类别的股票和债券组成,每种资产类型都有一个目标比例。随着价格波动,投资的平衡会被打破,所以我必须调整资金配置,使其回到目标比例。我每年会做几次这件事,方式是把数字枯燥地填进电子表格,直到一切看起来正确为止。

如果一个 Web 应用能自动完成这一切呢?我快速做了一个原型,并在 reddit、我的博客上以及通过 Google 广告进行了分享。这个工具在第一个月吸引了 1000 名访客。遗憾的是,只有一个人注册了免费试用,而且那个人从未升级为付费计划。我对这个想法本来就没有多少信心,所以一个月后我就转而去做别的了

经验教训

Product/market fit(产品市场契合)就像魔法一样

找到“product/market fit”意味着打造出一个产品,并与足够多的客户建立联系,使你的业务能够立足。当创始人们谈到实现 product/market fit 时,他们会用一种如同找到真爱般的激动语气来形容它。现在,我明白为什么了。

在为自己工作的前两年半里,我常常花几百个小时执行一个想法,结果只看到几美元的新增收入。而 TinyPilot 则是一见钟情式的 product/market fit。博客文章一发布,我就知道了。

有了 TinyPilot,感觉就像是产品在推动业务前进,而我只是搭了个顺风车。有好几个月,我在管理业务上犯了严重错误,但它依然在增长。

当我确实改进产品时,效果立竿见影且十分可观。11 月,我发布了 TinyPilot 的一款新的高端型号。它在第一个月售出了 55 台,带来了额外的 1.4 万美元收入。这感觉比 Is It Keto 和 Portfolio Rebalancer 上那 0.1% 的注册率好太多了。

你不必全天候待命也能建成成功的业务

我至今仍清楚地记得 2017 年底在 UCB 喜剧剧场看过的一场演出,但我却说不出其中的任何一个笑点。我只记得整场演出期间我都在担心口袋里的传呼机随时可能响起,逼我冲回家去。

我在 Google 的团队实行“值班轮换”制度,也就是说每隔两个月,你要连续两周随身携带传呼机。如果传呼机响了,你必须“手指放在键盘上”,也就是在 30 分钟内到位处理。

离开 Google 时,我对自己的未来计划并不确定,但有一样东西我很确定:我再也不要带传呼机了。我也确实做到了——我拒绝考虑任何一旦宕机就会成为大麻烦的商业想法。

到了两年左右的时候,一些念头开始悄悄爬进我的脑海:正是这一点在拖累我。其他创始人都在构建承诺持续在线的服务,那我凭什么能用更低的标准取得成功呢?

幸运的是,自力更生创业界的传奇人物 Jason Cohen(杰森·科恩)告诉我,继续按自己的方式做下去。嗯,严格来说他不是对我说的,但感觉就像他在直接对我讲话。在他那场精彩的演讲“Designing the Ideal Bootstrapped Business”(设计理想的自力更生型业务)第 32 分钟处,Cohen 明确告诫创始人不要创建“实时”业务。他解释说,如果你是一家自筹资金的小企业,让客户半夜把你叫醒是不值得的。

我很庆幸自己没有向恐惧屈服。TinyPilot 几乎是与“实时”相距最远的业务。客户在他们自己的硬件上运行我的软件,所以就算我关掉所有服务器和代码仓库,也不会打断任何人的工作流程。

成功比失败更有压力

尽管 TinyPilot 并不需要持续在线,我的大脑却经常忘记这一点。

那次盛大的发布之后,我两天没能入睡。我把全部九个套件寄给了客户,然后为接下来会发生什么而备受煎熬。万一大家收到了设备,却没有一个能用怎么办?万一客户期望 TinyPilot 做完全不同的事情怎么办?万一存在某个可怕的 bug,毁掉了所有人的服务器怎么办?

我打包的第一批九份 TinyPilot 订单

幸运的是,最早的客户都很喜欢他们的 TinyPilot,我终于松了一口气。但每隔几周,就会有新的状况冒出来,让我担心好几天。邮局弄丢了一批关键零件。一条好评带来订单激增,耗尽了我的库存。我填错了一张报关单,做好了被关进“出口监狱”的心理准备。

现实地说,我感受到的压力全都是自己施加的。如果我缺货几天,谁会在乎呢?当我糟糕的计划延误了某个订单时,我会因为可能让客户失望而焦虑,但其实从没有人抱怨过。事实上,当我为发货延迟道歉时,客户的回复无一例外都是:他们很感动我愿意花时间通知他们。

我在缓解自身压力、把工作和个人生活分开这方面正在进步,但这仍是一个持续的过程。

给去年的目标打分

去年年初,我设定了三个高层次的目标

各项业务合计获得 2 万美元收入

  • 结果:获得了 6.3 万美元收入
  • 评分:A+

年初时情况看起来很不妙,但我远超目标。考虑到我 2019 年的收入只有 7200 美元,近 9 倍的增长算得上是一项重大成就。

发布 10 篇博文

  • 结果:发布了九篇博文
  • 评分:A-

我本来有望发布 10 篇文章,但为了制作我的写作课程,我牺牲了第十篇。尽管如此,我对今年博客的成绩感到满意。我写了几篇让自己引以为豪的文章,它们也打动了心怀感激的读者。

学习一项新技术

  • 结果:学了更多 JavaScript
  • 评分:B-

我本来希望找个借口学 Rust,但始终没找到合适的机会。

相反,我在 JavaScript 上拓展了广度和深度。我已经会 Vue 了,但今年我学习了 Gridsome,一个基于 Vue 的静态站点生成器。我用它构建了我的 TinyPilot 销售网站,并重写了 Is It Keto

我还学会了更有效地使用原生 JavaScript。TinyPilot 的 Web 应用是纯 JavaScript,没有任何构建或编译步骤。摒弃现代 JavaScript 框架能省掉多少复杂性,实在令人惊叹。

第四年的目标

把 TinyPilot 做到年收入 60 万美元

好吧,虽然从每年 2 万美元的目标跳到每年 60 万美元听起来很疯狂,但我认为这是可以实现的。

TinyPilot 在 2021 年 1 月赚了 4.3 万美元,所以只要每月平均增长 3%,全年就能达到 60 万美元。

发布六篇博文和一本书

自从开始为自己工作以来,我一直隐隐幻想着自出版一本书。今年,我终于要动手了。

这本书将教软件工程师切实可行的方法来提升写作水平。暂定书名是 Refactoring English: Effective Writing for Software Developers(《重构英语:软件开发者的高效写作》)。

实现 TinyPilot 运营自动化

我的女朋友和我一起兼职打理 TinyPilot,负责管理库存和打包订单。我们喜欢一起工作,但这是一个脆弱的系统,难以扩展。只要我们中有谁几天不在,积压的订单就会迅速堆积如山。

我希望把我们的流程系统化并外包出去足够多的一部分,这样即使我们去度两周假,一切也不至于陷入停顿。

结语

辞职之前,我不停地阅读关于创业的书、收听相关的播客。最让我着迷的部分是那种无限的可能性。

当你经营自己的生意时,你可以做任何事。只要有一个月的时间和 1 万美元的资金,就有无数种发展业务的方式。你可以添加新功能,尝试新的营销策略,或者雇一名新的销售人员。你甚至可以发明一种你的行业里从来没人见过的全新方法。

在我的整个职业生涯中,我一直身处某条预设好的职业阶梯之上。要晋升,我就必须证明自己满足那些与日常工作只有一丝关联的武断标准。如果经理让我添加一个新功能,我不能说:“不,我觉得我们需要更好的营销策略,所以我要去做那个。”但经营自己的生意时,我天天都在说这种话!(只不过现在,经理和员工都是我自己。)

随着我终于在其中一项业务上看到了财务上的成功,收入增加了,也就意味着更多的可能性。一切都像我期望的那样有趣。有压力,但也很有趣。

再一次,我为自己能够为自己工作而感到无比幸运,我希望永远这样下去。

原文由 Michael Lynch 发布

本文章由 stealth/ox-alpha 进行翻译