Gergely Orosz(匈牙利人,现居阿姆斯特丹)· 博客名 The Pragmatic Engineer(「务实的工程师」)· 2015 年 11 月开写,到本页核对日为止约十一年,站点 sitemap 全量 239 篇,仍在周更——本页核对日前四天(2026-09-27)还发了新文 · 产量曲线有一个明显的断层:2015–2016 年 6 篇,2017–2018 几乎空白,2019 年起每年 11→15→20→34 篇,2023 年 63 篇为峰值,此后稳定在每年二三十篇 · 两个转折:2019 年他从「工程师写技术笔记」转向「工程经理写组织与职业」;2021 年 8 月前后,重心从免费博客搬到付费 newsletter(newsletter.pragmaticengineer.com),文体也从经验总结转向行业调查报道 · 付费墙说明:他现在的主要产出在付费 newsletter 上(自称读者超过一百万、Substack 上最大的技术刊物,并声明「I don't take sponsorships of any kind」);blog.pragmaticengineer.com 这 239 篇全部免费,且付费 newsletter 的部分文章会以免费版回流到这里。本页基于这个免费语料,付费墙后面的内容未计入 · 本页通读 18 篇正文,跨度 2015 年 11 月 8 日(全站第一篇)至 2026 年 7 月 8 日:最早期 4 篇(2015-11 至 2016-03,该站前 20% 时间跨度内),2021 年转折两侧均有覆盖 · 选文以他自己维护的 Popular Articles 页为主序(作者本人说「该读什么」优先于传播量),再补上三条主线各自的原始出处与最近一年的近况
2026 年 7 月,Gergely Orosz 收到一封通知:Google 把他的一篇文章从搜索结果里删掉了,理由是版权投诉。
被删的那篇,是他 2022 年对英国活动科技公司 Pollen 崩塌的调查报道。那家公司四月刚宣布新融资 1.5 亿美元,三周后裁掉三分之一的员工;此后工资停发,养老金缴纳消失,美国员工的医保被停而没人告诉他们。8 月 9 日,Atlassian 受够了欠费,把这家公司的 JIRA 停了。8 月 10 日,Pollen 破产。
投诉说他抄袭。抄袭的对象是《纽约邮报》1998 年一篇叫 Band Leader Hits Winning Chord 的文章。两篇文字,用他自己的话说,「do not even share a single sentence」——连一个句子都不重合。投诉人署名 Ellie Piee,申报的居住地是布韦岛(Bouvet Island):南大西洋上一座挪威属地,常被称作世界上最偏远的岛,人口零。
一个不存在的人,从一座没有人的岛上,让 Google 删掉了一篇全部由事实构成的报道。而这篇报道的作者,身份是「写软件工程的博主」。
所以值得先问一句:为什么会有人花钱删一篇技术博客的文章?
2016 年,Orosz 在伦敦的 Skyscanner 做首席工程师(principal engineer),年薪 £93,000。所有薪酬调查都告诉他,他已经远在中位数之上,进了第 90 百分位。换句话说:到顶了。
然后 Uber 阿姆斯特丹给了他一个 offer,总包(total compensation,工资+奖金+股权)大约 €220,000–250,000。到第四年,€283,000。
It felt like I discovered a "secret, upper-tier" of the market that no one else knew about.那感觉像是我发现了一个别人都不知道的、市场的「秘密上层」。TechPays has been acquired by Levels.fyi, 2026
更要命的是他接下来看到的另一半。他在 Uber 当上了工程经理,开始招人,于是不断遇到这样的候选人:很强,但不肯进面试流程——因为他们相信自己已经在市场顶端,跳一次最多涨 5–10%,不值得折腾。
I had no way of telling them "your data is wrong, this place pays a lot more!" and so several of them just never bothered to interview, assuming the most raise they would get would be 5-10%. When they could have potentially doubled their compensation…我没有办法告诉他们「你手上的数据是错的,这里给得多得多!」,于是其中好几个人干脆没来面试,以为自己最多能涨 5–10%。而他们本来可能把收入翻一倍……
这件事有一个一般形式,他后来十年都在它上面打转:软件工程师每天要做的那些重大决定——去哪家公司、这个 offer 接不接、我现在这个团队算不算正常——几乎全部是在没有数据的情况下做的。而数据缺失不是因为难收集,是因为对任何单个人来说收集它都不划算,对公司来说则是不收集更有利。
他收了近 200 个荷兰工程师的薪酬数据点,然后发现那不是一条有长尾的正态曲线,是三个几乎不重叠的峰。
分档的依据既不是公司大小也不是行业,而是一个听起来很无聊的东西:这家公司拿谁当薪酬标杆。只跟本地同行比的,荷兰资深岗位 €50,000–75,000;跟本地所有公司比、不限行业的,€75,000–125,000;跟区域乃至全球比的(Uber、Booking.com、Stripe、Netflix),€125,000–250,000+。
There is no longer an "average" salary for software engineers in Europe / the Netherlands: just an average salary per one of the three, distinct categories.在欧洲/荷兰,软件工程师已经没有「平均」工资这回事了:只有三个彼此分离的类别各自的平均工资。The Trimodal Nature of Software Engineering Salaries, 2021
关键的下一句是:第三档的数据在公开薪酬网站上基本不存在。所以那些调查报告给出的「平均值」并不是全市场的平均值,而是前两档的平均值被当成了全市场的在流通。他 2016 年看到的「第 90 百分位」没有骗他——它只是在一个不含第三档的分布里诚实地算出了一个数。
这篇文章之后,他做了一个多数博主不会做的动作:把数据开源,建了 TechPays 网站。2026 年 5 月,TechPays 被 Levels.fyi 收购。
然后他把同样的手法用在另外两种看不见的东西上。组织内部的知识:他在 Uber 发现了一个把设计文档写短、然后发给全公司工程师的流程。公司文化:他写了一份《The Pragmatic Engineer Test》,12 道是非题,判据很干脆——「based on things most job postings do not mention」,专挑招聘启事不会写的东西问,所以你拿到 offer 之后可以当面逐条问过去。
但 12 问只能测一家公司愿意说的部分。于是有了第三步,也就是开头那件事的来源:他直接去查。Pollen 那篇要过律师、让他承担法律风险,写完他说这不是他还会再碰的领域。一年后他又碰了一次——他顺手发现 DevTernity 这个会议连续三年在讲者名单里挂着并不存在的人,而且全是女性;第一个假讲者的 commit 时间,距离推特上有人抱怨这个会议全是男讲者,只隔了两小时。他给这件事的注脚是最冷的一句:
All this took about 30 minutes of research to find out, including the pinging of contacts at Coinbase and Meta. Other people must have discovered what I did with such little effort, but it seems they said nothing.查清这一切大约花了 30 分钟,包括去问 Coinbase 和 Meta 的熟人。别人花这么点力气肯定也发现过同样的事,但看起来他们什么都没说。The DevTernity Tech Conference Listed Fake Speakers for Years, 2023
不是查不出来,是没人愿意说。
这就是为什么会有人花钱删他的文章。他这十年只做了一件事:把工程师看不见、也不被允许看见的东西,变成可以查证的数字。薪酬变成了 TechPays,组织内部知识变成了全员广播的 RFC,公司文化变成了 12 道是非题,公司怎么死的变成了带日期的时间线。布韦岛那封假投诉是这件事的回执:有人在另一端花钱维持这堵墙,而且工具便宜到一个不存在的人就能用。
2016 年,Gergely Orosz 在伦敦的 Skyscanner 做首席工程师(principal engineer),年薪 £93,000。他当时的判断是自己差不多到头了——这不是感觉,是有数据支持的:各种薪酬调查反复告诉他,他已经远在中位数之上,进了第 90 百分位。一个在伦敦拿九万多英镑的人,还能指望什么。
然后 Uber 阿姆斯特丹给了他一个 offer。总包大约 €220,000–250,000,几乎正好是原来的两倍。到第四年,这个数字是 €283,000。
这里值得停一秒。不是说「他跳槽涨薪了」——跳槽涨薪是常事。怪的是:他手上那份说他在第 90 百分位的数据,并没有错得离谱,它只是从一个不包含他要去的那个地方的世界里采来的。第 90 百分位是真的,前提是那个「百分位」算的是另一群人。
他后来形容那个瞬间:
It felt like I discovered a "secret, upper-tier" of the market that no one else knew about.那感觉像是我发现了一个别人都不知道的、市场的「秘密上层」。TechPays has been acquired by Levels.fyi, 2026-05-13
如果故事停在这里,那只是一个人走运。让它变成一个十年项目的,是他接下来站到了桌子的另一边。
Gergely Orosz 是匈牙利人,现居阿姆斯特丹。履历按他自己的顺序:Skyscanner、Skype/Microsoft(他在 Xbox One 的 Skype 发布团队里,也做过 Skype for Web)、Uber(参与重写 Uber 的分布式支付系统,开源了 Uber 的移动端架构框架 RIBs)。2016 到 2020 年,他在 Uber 阿姆斯特丹做工程经理。
有一个细节比履历更有画面感:他写过,在 Uber 做经理的四年里,没有一个直属下属离开过公司——截止到 2020 年夏天的裁员为止。他把这件事归功于一部分薪酬制度,一部分别的;而他写这句话的方式本身很像他:先给一个可以被核对的事实,再承认自己解释不全。
2015 年 11 月他开了博客。2021 年前后重心搬到付费 newsletter,今天他自称读者超过一百万、是 Substack 上最大的技术刊物,并且声明不接任何形式的赞助。博客本身没有停更:本页核对日前四天还有新文。
把上面那个 offer 的故事讲完整,才看得出他真正的题目是什么。
翻倍之后,Orosz 在 Uber 当上了工程经理,开始替自己的团队招人。于是他反复遇到同一种候选人:很强,但不肯进流程。理由是他们已经打听过了——自己在市场上已经接近顶端,跳一次最多 5–10%,不值得为这个折腾几轮面试。
I had no way of telling them "your data is wrong, this place pays a lot more!" and so several of them just never bothered to interview, assuming the most raise they would get would be 5-10%. When they could have potentially doubled their compensation…我没有办法告诉他们「你手上的数据是错的,这里给得多得多!」,于是其中好几个人干脆没来面试,以为自己最多能涨 5–10%。而他们本来可能把收入翻一倍……
注意「I had no way of telling them」这半句。这不是在抱怨候选人笨。他是在说:他,作为那个确切知道真相的人,手上没有任何可以让对方相信的东西。一个招聘经理说「我们给得多」,在候选人听来就是招聘经理会说的话。要让这句话有重量,它得来自一个不是他的地方——一份数据、一个网站、一条可核对的记录。而那个东西当时不存在。
这就是他十年的题目。写成一句话:软件工程师在自己这个行业里是系统性地瞎的,而这种瞎不是偶然,是有人在维持的。
这种瞎盖住的东西表面上风马牛不相及——我值多少钱、别的公司里面什么样、「好」长什么样、这家公司是不是快死了。但它们是同一个形状:信息在少数人手里,而这少数人没有动机交出来。他接下来十年写的几乎每一篇,都是在往这个洞里填东西,而且填的方式惊人地一致:不写观点,造仪表。
他最先注意到的不是自己那张 offer 单,而是两个数字对不上。
一边是公开的调查报告。2019 年 Honeypot 的阿姆斯特丹开发者调查说,最有经验的开发者平均挣 €55,000,高的超过 €70,000;2021 年 talent.io 的报告把阿姆斯特丹最资深的软件工程师薪水放在 €60,000/年。
另一边是他在屋里看到的东西。Uber 资深岗位的平均总包,从 2015 年的 €110,000 涨到 2020 年的 €170,000–230,000。而且不只是 Uber——他当时在做一项欧盟薪酬调研,看到 Booking.com 的资深总包从 2016 年的约 €100,000 涨到 €150,000 以上。
他在文章里把这个落差写成四个字:「Where is the disconnect?」(断点在哪?)
这里有一个岔路口,值得注意他没走哪条。最省事的解释是「Uber 是异常值」——顶尖公司给得多,调查报告测的是整体,两者不矛盾,多数人会就此打住。他不接受,因为 Booking.com 的曲线跟 Uber 一模一样,而 Booking.com 是一家荷兰公司。两个点连成线,异常值就不再是异常值,它开始像一个被整体漏掉的群体。
于是他去数。他收集了接近 200 个荷兰工程师的薪酬数据点,把它们铺开。结果不是一条有长尾的正态曲线——那是「大多数人在中间,少数幸运儿在右边」的形状,也是直觉默认的形状。他得到的是三个峰,而且峰与峰之间几乎不重叠。
三档的定义是这个模型最反直觉也最好用的地方。它既不按公司规模分,也不按行业分,而是按一件听起来极其无聊的事:这家公司在做薪酬决策时,拿谁当标杆。只跟本地同行比的(本地超市的 IT 部门、本地电商,他给的辨认特征是这些地方多半把工程叫「IT」、当成成本中心),荷兰资深岗位 €50,000–75,000,几乎没有股权,奖金封顶年薪 10%;跟本地所有公司比、不限行业的(Adyen、Nike、Miro、MessageBird),€75,000–125,000,奖金到 20%;跟区域乃至全球比的(Uber、Booking.com、Databricks、Stripe、Netflix,加上 Optiver、Flow Traders 这类自营交易公司),€125,000–250,000+,所有人都有股权,包括入门级,顶尖表现者的现金奖金能到基本工资的 40–50%。
他给的数字永远是拆开的,这一点下面还会讲到:2020 年 Uber 一个典型的资深 offer 是 €115,000 工资 + €20,000 目标奖金 + 每年约 €50,000 的股权归属 ≈ €175,000。
然后是那句总结:
There is no longer an "average" salary for software engineers in Europe / the Netherlands: just an average salary per one of the three, distinct categories.在欧洲/荷兰,软件工程师已经没有「平均」工资这回事了:只有三个彼此分离的类别各自的平均工资。The Trimodal Nature of Software Engineering Salaries in the Netherlands and Europe, 2021-03-08
到这一步,开头那个谜解开了。第三档的薪酬数据在 Glassdoor、Payscale、Honeypot、talent.io 这些公开渠道上几乎完全不存在,它们采到的是前两档。所以那些调查报告给出的「平均值」确实是一个平均值,只是它是前两档的平均值,却被当成全市场的在流通。他 2016 年看到的「第 90 百分位」没有骗他——它只是在一个不含第三档的分布里,诚实地算出了一个数。
而误差是双向的。他顺手写下了全文最刺的一句推论,这句是对着公司说的:
Most companies tend to assume they are a tier higher than they actually are - because they have little data points that prove otherwise.多数公司都倾向于认为自己比实际高一档——因为它们手上几乎没有能证明相反的数据点。
信息不对称不是「公司知道而工程师不知道」。是两边都在用同一份残缺的数据,然后都以为自己站得比实际高。至于这三档为什么会裂开,他的解释不带任何道德色彩:是硅谷公司把办公室开到了欧洲。2016 到 2018 年之间,Uber 把薪酬模型重新对标——不再对标荷兰,而是直接对标伦敦的 Facebook、苏黎世的 Google。证据很具体:2018 年 Uber 的包和 Facebook London 几乎一模一样,而这不是巧合,因为同一批候选人手上同时拿着两家的 offer。
这篇文章没有停在文章上,这是它和一般「洞察文」的分界。他把收来的数据点开源,建了 TechPays 网站,专门收录欧洲薪酬,支持匿名化、涵盖自由职业者、并且把一个包是怎么拼出来的拆开给你看。2024 和 2025 年他又用 Levels.fyi 的数据把模型推到了美国、英国和印度。2026 年 5 月,TechPays 被 Levels.fyi 收购。
最后必须记下他在同一篇文章里写下的反面,因为这是他和一个单纯的「高薪布道者」的区别:第三档的高总包很大一部分是股权,而股权会往下走。很多 Uber 工程师的 RSU 发行参考价是 $48,Uber 上市价 $45,等到锁定期结束可以卖的时候股价是 $30,2020 年一度低到 $21。他写:「The highest compensation packages will also typically be the most volatile ones, value-wise.」(最高的那些薪酬包,通常也是价值上最不稳定的那些。)
这条线他写了三篇,分别讲流程、讲架构、讲写作,在他自己的 Popular Articles 页上分列第 2、3、5 位。放在一起看,它们是同一个想法的三个面。
起点是两件让他烦了很多年的事。他在 Microsoft 和 Skyscanner 的时候一直被这两件事卡着:第一,看不见别的团队正在做、或者已经做过和我们一样的东西;第二,各团队做法不一,于是技术债和架构债不断堆积。
这听起来是两个问题。到 Uber 之后他发现有一个流程同时解决了它们:动手前先做计划;写成一份短文档;让几个相关的人批准(他类比成代码合并前的 review);然后——把这份文档发给公司所有工程师,让任何人都可以评论。最后这步是挑眉的来源,他自己在原文里直接认了:「Yes, this the step that probably sounds crazy.」(原文如此,漏了一个 is。)
有意思的是他替「写下来」做的辩护,因为它完全不走「文档是好东西」这条惯常路线。他的论证是效率论证,而且是反过来的:如果整个团队真的已经对齐了,那写下来应该是件轻松事——几小时,一个人写完,其他人读一遍点头就行。所以如果写不动,那恰恰说明没对齐。而真实情况通常是,一动笔就开始冒东西:
"This is not what I meant when we talked." or "What about this important edge case we forgot?" and "If we change this here, it could break this other part of the system" are things that often come up when writing the plan down. It's great to have these discussions before having the same realizations when the project is halfway done.「这不是我们当时讨论时我的意思。」「我们漏掉的那个重要边界情况怎么办?」「如果这里改了,可能会弄坏系统的另一部分。」——这些是把计划写下来时经常冒出来的东西。在项目做到一半才意识到同样的事,不如现在就把这些讨论做掉。Scaling Engineering Teams via RFCs: Writing Things Down, 2018-10-03
换句话说:写设计文档的真正产出不是那份文档,是写的过程中暴露出来的分歧。它是一次在写代码之前跑的集成测试。
至于全员广播,他的辩护同样不在表面上。他没有说「这样大家都能读到」——他承认噪音确实会变多,并给了一个毫不浪漫的解决方案:邮件过滤器很好写。他说的是另一件事:「The type of information pushed to people in an organization shapes the culture considerably.」(一个组织主动推送给人们的是哪一类信息,会在很大程度上塑造这个组织的文化。)然后他拿自己当证据——刚进 Uber 的头几个月他痴迷地读各团队的计划文档,「我对其他团队在做什么的了解,超过了我在另一家看不到这些信息的大公司里工作好几年的总和」。
同一个想法的第二面是架构。他开场摆的是资历:Uber 分布式支付系统的重写(要替换两套在跑的旧系统、被几十个团队使用,且不能有业务影响)、Skype on Xbox One、开源 RIBs。几百个工程师,几百万日活。然后他说了一句让很多人不舒服的话:
…none of these designs used any of the standard software architecture planning tools. We did not use UML, nor the 4+1 model, nor ADR, nor C4, nor dependency diagrams. We created plenty of diagrams, but none of them followed any strict rules. Just plain old boxes and arrows………这些设计没有一个用到任何标准的软件架构规划工具。我们没有用 UML,没有用 4+1 模型,没有用 ADR,没有用 C4,没有用依赖图。我们画了大量的图,但没有一张遵循任何严格规则。就是老掉牙的方框和箭头……Software Architecture is Overrated, Clear and Simple Design is Underrated, 2019-09-17
而且:「there were no architects on the teams that owned the design」——拥有这些设计的团队里没有架构师。有资深工程师推动讨论,但没有任何一个人拥有架构,而最初级的成员也会参与、挑战、提替代方案。
这篇的分量不在「我们没用 UML」这个事实上,事实本身只是逸闻。分量在他给出的那个历史性论证,一句话就把方法论工业的因果关系颠倒了过来:「Architecture patterns are tools that came after the solution was solved, in hopes of making the lives of others easier.」(架构模式是在问题被解决之后才出现的工具,目的是让后来的人日子好过一点。)模式是工程师们先各自解出了类似的解法,有人注意到相似性,才给它命名、写下来。所以拿模式当起点是因果倒置。
他还给了一条可以当场用的判据,比任何方法论都省事:你应该能在白板上把系统架构讲清楚,从高层开始按需往下钻;如果你讲起来费劲,或者讲得不够清楚,那说明细节上还有活没干完。
第三面是写作本身,而它把前两面缝了起来。他的论证很短:公司会长大,一旦超过几十人面对面就不够用了,于是「Writing becomes essential to make thoughts, tradeoffs and decisions durable.」(要让想法、取舍和决定变得持久,写作就成了必需。)而「在自己团队之外去沟通和施加影响的能力」,他说是工程师往上走时最核心的那项技能。
把三面并起来,他其实只说了一件事:在一个组织里,唯一能跨越人数、楼层、时区和时间的东西,是写下来的句子。所以任何让句子更难写、更难读的东西——行话、UML、形式化方法、架构师审批链——都在反方向上花钱。「设计要简单」在他这里因此不是审美主张,而是一条带机制的推论:简单的设计更好,首先是因为它更容易被写清楚,因而更容易被更多人挑错。
第三条线的起点是一个已经被解决掉的问题。2000 年,Joel Spolsky 写了著名的 Joel Test:12 个关于软件团队的是非题(有没有版本控制?能不能一步完成构建?)。二十年后,这 12 题几乎所有公司都能全过——它变成了一条底线期望,于是测不出东西了。
于是 Orosz 写了一份 2021 年版。而这份新测试真正的设计原则,写在第一句话里:
12 questions to get a sense of what a tech company is like to work at, based on things most job postings do not mention.12 个问题,用来摸清一家科技公司待起来是什么样——问的全是大多数招聘启事不会提的东西。The Pragmatic Engineer Test: 12 Questions on Engineering Culture, 2021-10-11
「招聘启事不会提的东西」是个很厉害的筛子:它自动排除掉所有宣传语(「我们有很棒的工程文化」),只留下公司得承认或否认的事实。而且每条都卡得没有滑头可打——股权那条,员工折价购股计划不算数;oncall 那条问的不是「你们有 oncall 吗」,而是修一个不健康的 oncall,优先级是否高于任何产品工作。
十二道题全是是非题,这不是偷懒,是设计。是非题可以在拿到 offer 之后当面逐条问过去——这正是他推的「反向面试」(reverse interviewing):面试的后半程,你面公司。
然后是这一节里最值得学的那个动作。他公布了 200 份提交的结果:31% 的提交 12 项全过,68% 至少拿到 10 分。这组数字对他有利。而他紧接着自己把刀转了过来:
I realize there is lots of selection bias at play here - teams who score higher on these questions are more likely to fill it out.我意识到这里有大量的选择偏差——在这些问题上得分更高的团队,本来就更可能来填这份表。
这句话放在他自己最得意的那组结果的正下方。
但 12 问有一个它够不着的边界:它只能测一家公司愿意说的部分。一家正在停发工资的公司,照样可以在这 12 题上答得漂亮。所以这条线必须走到下一步——不再问,而是查。
Pollen,2022 年。一家英国活动科技公司,融了超过两亿美元,2022 年 4 月宣布再融 1.5 亿美元,三周后裁掉三分之一员工,而管理层向剩下的人保证一切都好。此后工资停发,养老金缴纳消失,美国员工的医保被停而没人通知他们。8 月 9 日,Atlassian 受够了欠费把 JIRA 停了。8 月 10 日,Pollen 破产清算。他和 20 位前员工谈过,多数是做技术的。而他给整篇报道设的问题不是「这家公司怎么倒的」,是一个对读者有用的问题:这些技术人员本来有没有可能更早意识到自己在一条正在沉的船上?答案藏在当时没人看懂的信号里——在大多数员工不知情的情况下,所有外部投资人都悄悄辞去了董事席位,而一位投资机构合伙人在全员大会上自称现任董事时,文件显示他前一天刚辞职。十个月后 BBC 据此拍了纪录片《Crashed: $800M Festival Fail》。
这件事的代价他写得毫不含糊:那篇报道给他造成了潜在的法律风险,发表前要过律师审。他的结论是:
I decided that while I greatly respect investigative reportage, it's not an area I would venture into, again. And I intended to keep this promise.我决定,虽然我非常敬重调查报道,但这不是我还会再踏进去的领域。而我本来是打算守住这个承诺的。The DevTernity Tech Conference Listed Fake Speakers for Years: I Accidentally Noticed, 2023
「本来是打算守住的。」一年后,他在时间线上看到一个朋友被宣布为 DevTernity 会议的讲者。他点进去看阵容,大部分名字都眼熟,然后有一个不眼熟:Anna Boyko,以太坊核心贡献者,同时在 Coinbase。
他觉得哪里不对的理由非常具体,而且完全是行业内部人才会有的直觉:以太坊核心贡献者总共没几个人,而一个全职投入开源加密平台的人同时进 Coinbase,是件怪事。于是他去查。LinkedIn 没有;Google 没有,除了这个会议本身;以太坊核心贡献者名单里没有相似的人;问在 Coinbase 的朋友,没人听说过这个名字。他顺着同一个主办方往下翻,又找到两个不存在的人;再翻前几年的 DevTernity,还有。四个假讲者,分布在四届会议上,全部是女性。
收口的证据来自主办方自己留下的漏洞:这个会议的网站是开源的,所有改动都能看到 commit 记录。2021 年 8 月 3 日格林尼治时间下午 5 点,有人在推特上公开批评 DevTernity 2021 的讲者阵容全是男性。两小时后,一个 commit 加进了第一个虚构的女性讲者。
然后是那句注脚。它不是关于 DevTernity 的,是关于整个行业的:
All this took about 30 minutes of research to find out, including the pinging of contacts at Coinbase and Meta. Other people must have discovered what I did with such little effort, but it seems they said nothing.查清这一切大约花了 30 分钟,包括去问 Coinbase 和 Meta 的熟人。别人花这么点力气肯定也发现过同样的事,但看起来他们什么都没说。
这是整条线的论点。DevTernity 的证据全部公开:网站、commit 历史、LinkedIn、推特。门槛是三十分钟。真正稀缺的不是能力,是有人愿意说——因为说了要承担,而不说没有任何代价。
最后,收到开头那封通知。2026 年 7 月,Google 把 Pollen 那篇从搜索结果里移除,依据是一份版权侵权投诉——而他是那篇文章唯一可能的版权人。他把投诉挖了出来:它声称他 2022 年那篇《Inside Pollen's Collapse》抄袭了《纽约邮报》1998 年一篇叫《Band Leader Hits Winning Chord》的文章。他的核对结论只有一句:「The two do not even share a single sentence!」投诉人署名 Ellie Piee,申报居住地是布韦岛——南大西洋上一座挪威属地,世界上最偏远的岛之一,人口零。
It seems that anyone can file a bogus copyright claim to get an article they don't like removed from Google's search index.看起来任何人都可以提交一份伪造的版权投诉,把自己不喜欢的文章从 Google 的搜索索引里弄掉。Pollen tried to remove my article…, 2026-07-08
他对幕后是谁只给了一句明确标注为推测的话,然后把能核对的事实留在页面上,收尾是一句干巴巴的提醒:Pollen 的高管应该先去查一下什么叫史翠珊效应。
一个十年项目在这里合上了。他从「工程师看不见自己值多少钱」开始,走到「工程师看不见公司里面什么样」,再走到「有人在花钱让工程师看不见」——而最后那一步的工具便宜得可笑:一个不存在的人,一座没有人的岛,一份模板化的表单。
读一个写了十年的人,最可迁移的往往不是结论而是手法。他的手法有一条主干,而且他自己可能没有把它说破过:他反复发现,一个做法真正的价值通常不是它声称的那个,而是它的副作用。
这个模式一旦看出来就到处都是。设计文档的产出不是文档,是写的时候暴露的分歧。全员广播 RFC 的价值不是人人都读(他承认大部分人不读),是「推送什么信息就塑造什么文化」。而最漂亮的一例在《Yes, you should estimate》里——那篇他逆着「#noestimates」潮流写的文章。他先说自己很擅长给工期估算然后如期交付,接着自己拆台:
Remember how I said how I'm pretty good at estimating, then delivering on them? I was not telling the truth about delivering. For every major project, we shipped something different on the launch date, than what we agreed to originally.还记得我说我挺擅长做估算、然后如期交付吗?关于交付那部分我说的不是实话。每一个大项目,我们在发布日交付的东西,都和最初说好的不一样。Yes, you should estimate, 2019-10-15
Skype on Xbox One 发布当天没有群组视频通话——平台在跑游戏时剩下的 CPU 不够稳定解码两路以上的流,于是砍了,而这对发布的成功「made little to no difference」。他的结论是:估算的真正功能不是预测,是制造时间压力,而时间压力会逼出取舍对话。没有估算,那些「这个功能复杂度这么高,业务价值撑得住吗」的对话根本不会发生。所以估算的价值在它准不准之外,甚至可以说,在它不准的时候才兑现。
主干之外,还有几条值得抄的习惯。
先信自己的眼睛,再去找数据——顺序很重要。他不是先读到一份可疑的报告才去查证,而是先在自己的 offer 单上看到一个对不上的数字,才去收那 200 个数据点。多数人碰到「我的一手观察和权威聚合数据冲突」时默认自己是异常值;他默认那份聚合数据的采样有问题。可迁移的那一条是:当直接观察和统计数字打架时,先去问这份统计是从哪些人身上采来的——很多时候「平均值」只是「我们能采到的那些人的平均值」。
永远先交代自己站在哪,并且具体到可以被反驳。「我当时是 Uber 的招聘经理」「我在 Skyscanner 做 principal 的时候拿 £93,000」。这不只是立威——它是在给读者一个折扣率:你知道该从哪个角度扣他的话。而他几乎从不写「薪水很高」,他写 €175,000 = €115,000 + €20,000 + €50,000;不写「Pollen 乱成一团」,写 8 月 9 日 Atlassian 停了 JIRA、8 月 10 日破产。含糊的断言没法被反驳,但也因此没法被真的相信。这件事还是双向的:一个长期公开写自己薪水、自己失误的人,别人才愿意把自己的事告诉他——他那张消息源网络,很大程度上是用自我暴露换来的。
不收口。2025 年 METR 那项研究发现开发者用 AI 工具后慢了 19%,却自以为快了 20%。这个结论对当时的主流叙事相当不利,他照登了,同时把所有能削弱它的东西一并摆出来:样本只有 16 人,44% 从没用过 Cursor,而唯一一个用过 50 小时以上的人快了 38%——「a sample size of one is not very representative of a group of 16」。他既不帮 AI 说话也不帮反 AI 的人说话,他把证据的形状原样交出来。
最后,他允许自己写丧,而且不给出路。2026 年 1 月:
It feels like something valuable is being taken away, and suddenly. (…) I wonder if I'll still get the same sense of satisfaction from the fact that writing complicated code is hard?感觉像是有什么有价值的东西正在被拿走,而且很突然。(……)我不知道自己还能不能从「写复杂的代码是难的」这件事里获得同样的满足感。The grief when AI writes most of the code, 2026-01-07
一个博客名字叫「务实的工程师」的人,在这段话里没有给任何务实的建议。他只说自己舍不得,然后留了一个问号。
一、他自己点过名的那个偏差,被点在了小地方,而它在大地方更严重。他在 12 问测试的结果底下老老实实写了选择偏差。但同样的问题以重得多的形式存在于三峰模型里,而那里他没写。最初那 200 个数据点,来自愿意向一个用英语写作、在 Uber 做招聘经理的人提交薪酬的荷兰工程师;TechPays 的数据是自愿提交;他那一百万读者是朝一个方向自选的——已经在意薪酬、读英文、在国际公司或想进国际公司的人。这个样本在第三档上极准,因为那正是他站的地方;而第一档的那些数字更像推断而不是测量。偏偏第一档是人数最多的一档,而文章没有把这个差别标出来。
二、这是一个描述性模型,却被当成处方用,而处方的有效期绑在一个特定的十年上。「往第三档走」在零利率、股权连年上涨的那十年里是条好建议。他自己在同一篇里就写了反面(Uber 的 $48 → $45 → $30 → $21),2025 年又写了 Indeed 上的软件开发岗位比 2020 年 1 月少了 35%、不到 2022 年中峰值的三分之一,跌幅大于销售、金融、市场营销任何一行。这两组事实他都报道了,但三峰那篇的框架没有被回头重做。它今天仍然是以「顶档永远在那里,问题只是你进不进得去」的语气被读的——而他自己 2025 年写的数据,描述的是一个正在收窄的开口。
三、《硅谷做对了什么》那篇在今天读起来最吃力。2020 年他写得很好:自主权、内部数据透明、工程师直接接触业务——每一条都配了具体对话。问题是他把这些讲成了一种认知上的优越(这些公司「get it」),却没有解释这些东西为什么会持续。而他这几年博客上最密集的题材,恰恰是同一批公司的裁员、强制回办公室、招聘冻结。一个更冷也更站得住的解释是:那些「文化」有相当一部分是劳动力市场紧到公司不得不靠它们留人时的产物。他报道了松开之后发生的事,但没有回头去修 2020 年那篇的因果。
四、调查这条线有结构性的上限,而且他自己已经把它写出来了。Pollen 那篇让他承担法律风险,他写下「这不是我还会再踏进去的领域」,然后又踏了一次。这种诚实很少见,但它同时暴露了选择标准:一家已经破产的活动公司和一个小型会议主办方,是他扛得住的对手。一家随时请得起律师团、并且正在给他的订阅收入做贡献的大公司是不是同样扛得住,在他的写作里没有被处理过。他声明不接任何赞助,这挡掉了广告商那条最明显的路;但订阅制把激励转给了读者,而他的读者高度集中在资深工程师和工程主管。从这群人嘴里流出来的料,和从客服、合同工、第一档公司的工程师嘴里流出来的料,不会是同样的量,也不会指向同样的故事。还有一层更根本的张力:他的产品是信息不对称的解药,而他的生意需要信息不对称继续存在——付费墙后面的内幕系列,卖的正是别人拿不到的东西。他没有假装这件事不存在(Pollen 那篇和三峰那篇最终都在免费那一侧),但它不会因为处理得体面就消失。