Bootstrapping and the Game of Entrepreneurship

11 minute read

Published:

This post supports English / 中文 switching via the site language toggle in the top navigation.

The Pattern

There is a pattern that keeps showing up in places that seem to have nothing to do with each other.

It started when I vibe coded an operating system over a weekend — letting an AI write most of the code while I steered — and watched the system gradually take over its own definition from the host language that birthed it. Then I noticed the same shape in how AI development is evolving. And then again in how startups grow. The pattern has a name — bootstrapping — and once you see it, it is hard to unsee.

At bottom, bootstrapping is about entropy. You cannot conjure order from nothing. To build a new system that sustains itself, you need an already-ordered system to inject the initial structure. A seed crystal dropped into a supersaturated solution. A lit match held to dry kindling. The interesting question is what happens next: does the new system accumulate enough internal order to carry itself forward, or does it fizzle out? That question turns out to have the same shape whether you are building a compiler, training an AI, or starting a company.

The Compiler: A System That Defines Itself

In systems programming, bootstrapping has a precise meaning. A compiler written in its own language cannot compile itself from nothing — it needs an existing compiler, usually written in a different language, to produce the first working binary. Think of it this way: you cannot learn French from a dictionary that is written entirely in French. You need a French-English dictionary first. Once you are fluent, the French-only dictionary becomes useful — but not before.

I watched exactly this happen with my OS project. The system language started out unable to describe its own environment, so a host language handled everything — the shell, the runtime, the filesystem. But as the system language grew more expressive, it took over one layer after another, and the host language shrank to a thin substrate underneath. Each layer of new capability enabled the next. The external dependency never fully vanished, but it receded: the system’s center of gravity shifted from being defined by something else to being defined by itself.

This is the first instance of the entropy principle. The host language was the ordered system that injected structure into a new system that could not yet stand on its own. Once enough internal structure accumulated, the new system became self-sustaining.

AI: The Loop That Closes

The same pattern is playing out in AI at a much larger scale. Early deep learning required enormous human effort: hand-designed architectures, manually curated datasets, hand-tuned training pipelines. The models were entirely passive artifacts of human-built machinery. Humans were the host compiler.

But as models grew more capable, they started participating in their own improvement cycle — writing training code, generating synthetic data, assisting in architecture search. Projects like auto-research push further still: AI agents reading papers, forming hypotheses, running experiments, writing up results. The output of one generation of training becomes the input to the next.

We have arguably crossed a quiet inflection point: the systems we created can now contribute to their own development in ways that go beyond what any individual human could sustain alone. This is not the recursive intelligence explosion of science fiction — human judgment remains essential at every step of the loop, and the bootstrapping is far from complete. But the structural shift is real: AI has moved from being a purely passive product of human engineering to being an active participant in its own evolution.

Here, too, the entropy principle holds. Human researchers are the ordered system that bootstrapped the first generation of models. Those models are now helping to build the next generation. But the question of convergence is open — the loop can compound capability, or it can compound error.

The Startup: A Founder Who Makes Herself Unnecessary

Starting a company follows the same arc. In the earliest stage, the founder does everything — code, sales, finances, supplier negotiations, customer support, and probably taking out the trash. You are the host compiler; the system cannot run without you doing everything by hand.

The first hire shifts one function to dedicated capability, but you are still deeply involved: making key decisions, training the new person, setting processes. The real bootstrapping moment comes later, and you often recognize it only in retrospect. One day you discover that a meeting happened, a decision was made, a customer problem was solved — and you were not in the room. Not only was the outcome fine, it was better than what you would have done yourself, because the person closer to the problem had context you did not. That is the moment the organization starts to self-host.

The recursive structure is the same as in the other two domains: the founder cultivates people who cultivate people, just as the compiler compiles itself and the model trains the next model. The founder’s job is, paradoxically, to make herself less necessary — to inject enough order into the organization that it can generate its own order going forward.

Three Regimes of Bootstrapping

The analogy across these three domains is real, but it hides an important asymmetry that is worth pulling apart.

The converging kind. Compiler self-hosting is a process that converges. Once the compiler can compile itself, the bootstrap is structurally complete, and what follows is incremental improvement on a stable foundation. The external dependency does not disappear — you still need hardware, an OS, a linker — but the core recursive loop closes and stays closed.

The open-ended kind. Entrepreneurship never truly converges. There is no steady-state self-hosting for a company. External dependencies — markets, customers, regulation, competition — are always shifting, and the organization itself needs continuous restructuring. A company that stops adapting does not remain self-hosted; it decays. The bootstrapping never “finishes.”

The fragile kind. AI sits somewhere in between, and this is what makes it the most interesting case. The self-improvement loop can compound capability, but it can also go wrong. Reward hacking, model collapse, and distribution drift are all failure modes where the recursive process amplifies errors instead of capability. A model trained on its own outputs can spiral into incoherence — the exact opposite of the virtuous loop you want. The bootstrap can amplify failure just as easily as success.

Recognizing which regime you are in matters enormously, because it determines what vigilance looks like. In the converging regime, you can eventually relax. In the open-ended regime, you never stop adapting. In the fragile regime, you monitor the loop itself for signs of decay.

Why Cold Starts Kill

Bootstrapping fails more often than it succeeds, and the failure modes are instructive.

Not every language that attempted self-hosting got there. Some were too weak to express their own compiler before the community lost interest — the initial injection of order was not sufficient, and the window of opportunity closed. In AI, self-training can produce a vicious cycle: biases and hallucinations amplified round after round until the model collapses into noise. In entrepreneurship, many companies die precisely in the bootstrap phase, because the initial external structure — the founder’s skills, the quality of the first hires, the size of the seed capital — was not good enough to reach escape velocity.

This is the entropy principle made concrete. You need an already-ordered system to help you build a new ordered system. When the initial injection of order is insufficient, the new system never accumulates enough internal structure to sustain itself. The quality of the cold start — the bootloader, the training set, the founding team — is not just important. It is often decisive.

Bootstrapping Is Not Scaling

There is a saying: one person can go fast, but a group can go far. The connection to bootstrapping is tighter than it first appears, but also different from what it seems.

The essence of bootstrapping is not “more people, more capability.” It is that the output of each stage becomes the input of the next. The compiler compiles itself. The trained model helps train the next model. The people you cultivated go on to cultivate more people. This recursive self-application is the soul of bootstrapping, and it is what separates it from mere scaling. Scaling adds resources linearly. Bootstrapping makes the system generative — capable of producing more of its own capability.

This distinction has a practical edge. A company that keeps hiring but never develops internal leadership has scaled, not bootstrapped. A training pipeline that uses more data but never lets the model contribute to its own improvement has scaled, not bootstrapped. The question is always: can the system reproduce and extend its own capability, or does it depend on external injection for every increment of growth?

What Bootstrapping Teaches

Once you see bootstrapping as a recursive, entropy-fighting process, several things become clearer.

The cold start is everything. A weak bootloader, a noisy training set, a bad founding hire — each can doom the entire chain before it has a chance to become self-sustaining.

Self-sustenance is not the finish line. Even after a system achieves the ability to maintain itself, complexity grows with capability, and unchecked complexity becomes fragility. Continuous internal optimization is not optional; it is the price of survival.

Know which game you are playing. The converging kind of bootstrapping lets you rest once the loop closes. The open-ended kind demands perpetual adaptation. The fragile kind requires you to watch the loop itself, because it can turn against you.

I started this line of thinking by watching an operating system slowly take over its own definition from the language that built it. By the end of that weekend, the host language had receded into the background, and the system was — for all practical purposes — defining itself. It was a small thing, a toy OS on a hobby project. But the shape of it has stayed with me, because it is the same shape I see everywhere: a new system borrowing order from an old one, accumulating enough structure to stand on its own, and then — if things go well — becoming the source of order for the next thing that needs to bootstrap.

Bootstrapping is about building the ability to build — and knowing when the thing you built can carry itself forward.

本文支持通过顶部导航中的语言切换按钮在 English / 中文 之间切换。

一个反复出现的模式

有一个模式,一直在看似毫无关联的地方反复冒出来。

最早是我花一个周末 vibe code 了一个操作系统——让 AI 写大部分代码,我来把方向——然后看着这个系统一步步从宿主语言手里接管了自己的定义权。后来在 AI 的演进中看到了同样的情形。再后来在创业这件事上又看到了。这个模式有个名字——bootstrapping——一旦看到了就很难再无视。

说到底,bootstrapping 是一个关于熵的问题。你没法凭空造出秩序。要建一个能自我维持的新系统,你需要一个 已经有序的 系统来注入最初的结构。就像把一颗种子晶体丢进过饱和溶液,或者用一根燃着的火柴去点燃干柴。真正有意思的问题是接下来会发生什么:新系统能不能积累出足够的内部秩序来支撑自己往前走,还是半途熄火?这个问题在编译器、AI 和创业三个领域里,情况惊人地一致。

编译器:一个定义自己的系统

在系统编程里,bootstrapping 有一个很精确的含义。用自己语言写的编译器没法凭空编译自己——得先有一个已经存在的编译器(通常是另一门语言写的)来生成第一个可用的二进制文件。打个比方:你没法用一本纯法语词典从零学法语,你得先有一本法英词典才行。等你法语流利了,纯法语词典才有用——但反过来不行。

我做那个操作系统的时候亲眼看到了这个过程。系统语言一开始什么都描述不了,所以宿主语言包揽了一切——shell、runtime、文件系统。但随着系统语言越写越强,它一层一层地接管了这些东西,宿主语言退缩成了底下一层薄薄的 substrate。每一层新能力都在为下一层搭台子。外部依赖没有完全消失,但它退到了后面:系统的重心从”被别的东西定义”变成了”定义自己”。

这是熵原理的第一个实例。宿主语言就是那个有序的系统,它把结构注入到一个还站不住的新系统里。等内部结构积累得够多了,新系统就能自我维持了。

AI:正在闭合的循环

同样的模式在 AI 领域正在以大得多的尺度上演。早期深度学习全靠人力:手工设计架构、手工整理数据集、手工调参的训练流水线。模型完全是人搭出来的机器的被动产物。人类就是那个宿主编译器。

但模型越来越强之后,它们开始参与自身的改进循环了——帮写训练代码、生成合成数据、辅助架构搜索。Auto-research 类的项目走得更远:AI agent 读论文、提假设、跑实验、写报告。上一代训练的输出变成了下一代训练的输入。

可以说我们已经安静地越过了一个拐点:我们造出来的系统已经可以参与到自身的发展中,做到任何单个人类独力维持不了的事情。这不是科幻小说里那种递归智能爆炸——每一步循环里人类的判断仍然不可或缺,bootstrapping 远未完成。但结构性的转变是真实的:AI 已经从人类工程的纯被动产物,变成了自身进化的主动参与者。

这里熵原理同样成立。人类研究者是那个有序系统,bootstrapped 出了第一代模型。那些模型现在反过来在帮助构建下一代。但收敛与否是个开放问题——循环可以正向复利,也可以复利放大错误。

创业:让自己变得不那么必要的创始人

创业走的也是同一条弧线。最早期的创始人什么都得自己干——写代码、跑销售、管财务、对接供应商、处理客服,大概率还得自己倒垃圾。你就是那个宿主编译器,离了你系统跑不起来。

招来第一个人以后,某一个职能开始有了专人执行,但你仍然深度参与:关键决策你做,新人你带,流程你定。真正的 bootstrapping 时刻来得更晚,而且你往往是事后才意识到的。某一天你发现一个会开了、一个决定做了、一个客户问题解决了——你根本不在场。结果不仅没问题,甚至比你自己来更好,因为离问题更近的那个人拥有你没有的上下文。这就是组织开始 self-host 的时刻。

递归结构和另外两个领域一模一样:创始人培养人,被培养的人再去培养更多的人,就像编译器编译自己、模型训练下一代模型。创始人的工作,悖论式地,就是让自己变得不那么必要——往组织里注入足够多的秩序,让它能自己产生秩序。

Bootstrapping 的三种机制

三个领域的类比是真实的,但它掩盖了一个值得拆开看的重要不对称性。

可收敛。 编译器的 self-hosting 是一个会收敛的过程。一旦编译器能编译自己,bootstrap 在结构上就完成了,后面是在稳定基础上做增量改进。外部依赖不会消失——你还是需要硬件、操作系统、链接器——但核心的递归循环闭合了,而且会保持闭合。

开放性。 创业永远不会真正收敛。企业不存在稳态的 self-hosting。市场、客户、监管、竞争这些外部依赖一直在变,组织本身也需要持续重构。一家停止适应的公司不会停在 self-hosted 状态,它会退化。Bootstrapping 永远不会”结束”。

脆弱性。 AI 处在两者之间,这也是它最有意思的地方。自我改进循环可以正向复利,但也可以出问题。Reward hacking、model collapse、distribution drift 都是递归过程放大错误而非能力的失败模式。模型在自己的输出上训练可以螺旋式坍缩成乱码——恰恰是正向循环的反面。Bootstrap 放大失败和放大成功的概率一样大。

认清自己处在哪种机制里非常关键,因为这决定了”保持警惕”意味着什么。在收敛机制里,循环闭合之后可以松口气。在开放式机制里,你永远不能停止适应。在脆弱机制里,你需要监控循环本身有没有退化的迹象。

冷启动为什么致命

Bootstrapping 失败的次数比成功的多得多,而失败模式本身很有说明性。

不是每门尝试过 self-hosting 的语言都做到了。有些语言在自己的表达力足够写出编译器之前社区就散了——初始注入的秩序不够,而窗口期关闭了。AI 的自训练可以产生恶性循环:偏差和幻觉被逐轮放大,最后坍缩成噪声。创业也一样,大量公司恰恰死在 bootstrap 阶段,因为冷启动时借来的外部结构——创始人的能力、早期员工的水平、种子资金的规模——质量不够,不足以达到逃逸速度。

这就是熵原理的具体体现。你需要一个已经有序的系统来帮你建立新的有序系统。初始注入的有序度不够,新系统就永远攒不出足以自我维持的内部结构。冷启动的质量——bootloader、训练集、创始团队——不只是重要,它往往是决定性的。

Bootstrapping 不是 Scaling

常说”一个人可以走得很快,一群人才能走得更远”。这句话和 bootstrapping 的关系比表面看起来更紧,但含义也不太一样。

Bootstrapping 的核心不是”人多力量大”。核心是 每一阶段的输出变成下一阶段的输入。编译器编译自己。训练出来的模型帮着训练下一个模型。你带的人再去带人。这种递归的自我应用才是 bootstrapping 的灵魂,也是它和单纯 scaling 之间的区别。Scaling 线性地加资源。Bootstrapping 让系统本身具备 生成性——能自行产生更多的自身能力。

这个区分有实际的锋刃。一家不断招人但从来没培养出内部 leadership 的公司,只是 scaled,没有 bootstrapped。一条不断加数据但从来不让模型参与自身改进的训练流水线,也只是 scaled,没有 bootstrapped。真正的问题永远是:系统能不能自行复制和扩展自身的能力,还是每一步增长都依赖外部注入?

Bootstrapping 教会我们什么

一旦把 bootstrapping 理解为一个递归的、对抗熵的过程,很多事情就变得更清楚了。

冷启动就是一切。 一个弱的 bootloader、一个噪声太大的训练集、一个糟糕的早期员工——都可能在整条链有机会自我维持之前就毁掉它。

自维持不是终点线。 即使系统已经具备了维持自身的能力,复杂度也会随能力一起增长,放任不管就会变脆。持续的内部优化不是可选的,而是生存的代价。

认清你在玩哪种游戏。 可以收敛的 bootstrapping 让你在循环闭合后可以喘口气。开放式的要求你永不停止适应。脆弱的那种要求你盯着循环本身,因为它随时可能反噬。

最初让我想到这些的,是看着一个操作系统一步步从构建它的语言手里接管了自己的定义权。那个周末结束时,宿主语言已经退到了背景里,系统在实质上已经在定义自己了。那只是一个小东西,一个玩具 OS、一个业余项目。但它的模式给我留下了很深的印象,并且随处可见:一个新系统从旧系统那里借来秩序,积累出足以独立的结构,然后——如果一切顺利的话——成为下一个需要 bootstrap 的东西的秩序源头。

Bootstrapping 的本质是建造”能建造的东西”——然后判断它什么时候可以自己往前走了。