David Crawshaw
Software engineer; co-founder and former CTO of Tailscale, previously on the Go team at Google.
David Crawshaw did not write this page. ppll compiled it from their own words, each linked to the source. Is this you? · Report a mistake
Latest x.com
What they believe
-
Code review as a review mechanism depends on reviewers being able to infer effort from reading code, and AI-agent-generated code erases that signal.
the reviewer is the principal, the contributor is the agent, and code review only worked because the reviewer could cheaply infer effort from reading the code. Agents collapse that signal.
crawshaw.ioSaid 7 May 2026This on korrents
-
Cloud abstraction problems cannot be fixed by adding more abstraction layers on top.
You cannot solve the fundamental problems with cloud abstractions by building new abstractions on top.
crawshaw.ioSaid 22 Apr 2026This on korrents
The bold line is korrents’ wording; the quote is theirs. These 2: what they wrote before what they said aloud, one per source, newest first.
Feed
As its own page →Hiding
16 October
15 October
14 October
11 October
10 October
9 October
7 October
5 October
4 October
1 October
7 May
From one piece The agent principal-agent problem 3 beliefs · crawshaw.io
-
Their words
there is no principal-agent problem, because the human driving the machine takes on the responsibility for its actions by owning the deployment.
-
Their words
There is no incentive for the human driving the agent to actually read the code or spend time thinking about what the reviewer says.
-
Their words
the reviewer is the principal, the contributor is the agent, and code review only worked because the reviewer could cheaply infer effort from reading the code. Agents collapse that signal.
22 April
From one piece I am building a cloud 3 beliefs · crawshaw.io
-
korrents.com
VMs are the wrong cloud abstraction because they bundle CPU and memory into fixed-size units.Their words
VMs are the wrong shape because they are tied to CPU/memory resources.
-
Their words
Agents, by making it easiest to write code, means there will be a lot more software.
-
Their words
You cannot solve the fundamental problems with cloud abstractions by building new abstractions on top.
22 March
8 February
From one piece Eight more months of agents 3 beliefs · crawshaw.io
-
korrents.com
The best software design for an AI agent to use is the same as the best design for a human programmer.Their words
the best software for an agent is whatever is best for a programmer.
-
korrents.com
Most current software and ways of solving problems are structured the wrong way for the agent era.Their words
Most software is the wrong shape now. Most of the ways we try to solve problems are the wrong shape.
-
korrents.com
Local AI models will eventually catch up to frontier models once frontier progress hits diminishing returns.Their words
At some point frontier models will face diminishing returns, local models will catch up, and we will be done being beholden to frontier models.
4 August 2025
8 June 2025
From one piece How I program with Agents 2 beliefs · crawshaw.io
-
korrents.com
Most software has too few users or too short a lifespan for long-term maintenance costs to matter.Their words
Very few programs ever reach the point that they are heavily used and long-lived. Almost everything has few users, or is short-lived, or both.
-
korrents.com
Graphics chips have far more room for future performance gains than CPUs, which are nearing physical limits.Their words
GPUs are not nearly as restricted in their future progress as CPUs which are far more constrained in how they can physically improve (compiler-driven ILP only goes so far).
6 January 2025
From one piece How I program with LLMs 2 beliefs · crawshaw.io
-
Their words
So I foresee a world with far more specialized code, with fewer generalized packages, and more readable tests.
-
Their words
One thing humans appear to be much better than LLMs at (as of January 2025) is not getting distracted.
31 October 2024
3 May 2024
21 April 2024
6 February 2024
From one piece jsonfile: a quick hack for tinkering 2 beliefs · crawshaw.io
-
korrents.com
Most projects fail before they even begin because the activation energy required to start is too high.Their words
Most projects fail before they start. They fail because the activation energy is too high.
-
korrents.com
The right moment to migrate from an ad hoc data store to SQL is the moment you first need an index.Their words
I suspect, considering the process retrospect, a great deal of that pain can be avoided by committing to migrating directly to an SQL system the moment you need an index.
31 December 2022
11 December 2021
25 November 2021
16 July 2021
7 June 2021
-
Mixed onrcmnd.app
Mac OSTheir words
I have a lot of feelings about macOS: it is astonishingly painful for developers, but makes up for it with a consistent experience for users.
-
Usesrcmnd.app
Elgato Wave 3Their words
Microphones are important, so I have an Elgato Wave:3 and open ear headphones.
-
Usesrcmnd.app
ProxmoxTheir words
The Headless AMD Threadripper is running Proxmox. My main Debian environment runs as a VM here, along with various Windows test VMs,
+ 6 more
-
Mixed onrcmnd.app
DebianTheir words
Debian is a decent programming environment. It has some of the consistency properties like macOS, but fails unexpectedly.
-
Usestheir ownrcmnd.app
TailscaleTheir words
All the sockets between my computers are over Tailscale, so whenever I grab the laptop and leave the house, the connections to my VMs and NAS remain stable.
-
Usesrcmnd.app
VimTheir words
For writing software I full-screen a terminal and use Vim. Ctrl+Z for a shell.
-
Mixed onrcmnd.app
VS CodeTheir words
Every now and again I go searching for a replacement IDE. VSCode came closer than anything else in the last two decades to replacing Vim, but somehow I am back here.
-
Recommendsrcmnd.app
QSFP+ 40gbit hardwareTheir words
The router and Proxmox machines are attached with some QSFP+ 40gbit hardware I got off eBay. It's fun! I highly recommend playing with second-hand network hardware.
-
Usesrcmnd.app
iMac 5kTheir words
The 2014 iMac 5k I dedicate to video conferencing, mostly Hangouts and Zoom.
29 November 2020
29 June 2020
28 January 2020
29 September 2019
10 September 2019
28 April 2019
14 April 2019
31 October 2018
Nothing matches.
Beliefs
Korrents What they believe 19 beliefs — each backed by an exact quote.
Each is a — compiled by korrents.com, not by them: the one-line wordings are korrents', the quotes are theirs.
Recent
Code review as a review mechanism depends on reviewers being able to infer effort from reading code, and AI-agent-generated code erases that signal.
the reviewer is the principal, the contributor is the agent, and code review only worked because the reviewer could cheaply infer effort from reading the code. Agents collapse that signal.
The agent principal-agent problem Said 7 May 2026
A person directing an AI agent rather than writing code themselves has no incentive to actually read the resulting code or engage seriously with reviewer feedback.
There is no incentive for the human driving the agent to actually read the code or spend time thinking about what the reviewer says.
The agent principal-agent problem Said 7 May 2026
Making the person who directs an AI agent also own the deployment removes the principal-agent misalignment that agent-driven code review creates.
there is no principal-agent problem, because the human driving the machine takes on the responsibility for its actions by owning the deployment.
The agent principal-agent problem Said 7 May 2026
Show 16 more
Cloud abstraction problems cannot be fixed by adding more abstraction layers on top.
You cannot solve the fundamental problems with cloud abstractions by building new abstractions on top.
I am building a cloud Said 22 Apr 2026
Making code easier to write will lead to much more software being created overall.
Agents, by making it easiest to write code, means there will be a lot more software.
I am building a cloud Said 22 Apr 2026
VMs are the wrong cloud abstraction because they bundle CPU and memory into fixed-size units.
VMs are the wrong shape because they are tied to CPU/memory resources.
I am building a cloud Said 22 Apr 2026
Local AI models will eventually catch up to frontier models once frontier progress hits diminishing returns.
At some point frontier models will face diminishing returns, local models will catch up, and we will be done being beholden to frontier models.
Eight more months of agents Said 8 Feb 2026
Most current software and ways of solving problems are structured the wrong way for the agent era.
Most software is the wrong shape now. Most of the ways we try to solve problems are the wrong shape.
Eight more months of agents Said 8 Feb 2026
The best software design for an AI agent to use is the same as the best design for a human programmer.
the best software for an agent is whatever is best for a programmer.
Eight more months of agents Said 8 Feb 2026
Graphics chips have far more room for future performance gains than CPUs, which are nearing physical limits.
GPUs are not nearly as restricted in their future progress as CPUs which are far more constrained in how they can physically improve (compiler-driven ILP only goes so far).
How I program with Agents Said 8 Jun 2025
Most software has too few users or too short a lifespan for long-term maintenance costs to matter.
Very few programs ever reach the point that they are heavily used and long-lived. Almost everything has few users, or is short-lived, or both.
How I program with Agents Said 8 Jun 2025
Humans are currently better than LLMs at avoiding distraction while working.
One thing humans appear to be much better than LLMs at (as of January 2025) is not getting distracted.
How I program with LLMs Said 6 Jan 2025
LLMs will push software development toward more specialized code, fewer generalized packages, and more readable tests.
So I foresee a world with far more specialized code, with fewer generalized packages, and more readable tests.
How I program with LLMs Said 6 Jan 2025
The right moment to migrate from an ad hoc data store to SQL is the moment you first need an index.
I suspect, considering the process retrospect, a great deal of that pain can be avoided by committing to migrating directly to an SQL system the moment you need an index.
jsonfile: a quick hack for tinkering Said 6 Feb 2024
Most projects fail before they even begin because the activation energy required to start is too high.
Most projects fail before they start. They fail because the activation energy is too high.
jsonfile: a quick hack for tinkering Said 6 Feb 2024
Programming is fundamentally the practice of making tradeoffs about what matters and what doesn't.
Programming is the art of tradeoffs. You have to decide what matters and what does not.
jsonfile: a quick hack for tinkering Said 6 Feb 2024
Software projects should break downstream users as little as possible, and make any breakage they do cause obvious and easy to fix.
a good software project tries to break downstream as little as possible, and when we do break downstream, we should do our best to make the breakage obvious and easy to fix.
log4j: between a rock and a hard place Said 11 Dec 2021
The software industry misunderstands backwards compatibility by focusing on narrow legalistic definitions rather than outcomes.
We as a profession misunderstand and misuse the concept of backwards compatibility, both upstream and downstream, by focusing on narrow legalistic definitions instead of outcomes.
log4j: between a rock and a hard place Said 11 Dec 2021
Software upgrades that invalidate previously learned knowledge make programmers worse at their craft.
When software "upgrades" invalidate my old knowledge, it makes me a worse programmer.
log4j: between a rock and a hard place Said 11 Dec 2021
What is a korrent?
A korrent is a belief a person has stated in their own words: one sentence stating the claim, backed by a quote and a source, kept at korrents.com.
Under a name here, the quoted block is what they actually said. The korrent beneath it is the claim those words support, in korrents' wording — tap it to see the record, its source, and who else holds it.
Nobody here wrote their own korrents. They are compiled from public statements, and a person can change their mind, which is recorded too.
Recommends rcmnd
rcmnd What they recommend 9 things — each backed by an exact quote.
Compiled by rcmnd.app, not by them: the quotes are theirs, and each links to the post it was copied from.
Recent
Uses iMac 5k
The 2014 iMac 5k I dedicate to video conferencing, mostly Hangouts and Zoom.
usesthis.com 7 Jun 2021
Recommends QSFP+ 40gbit hardware
The router and Proxmox machines are attached with some QSFP+ 40gbit hardware I got off eBay. It's fun! I highly recommend playing with second-hand network hardware.
usesthis.com 7 Jun 2021
Mixed on VS Code
Every now and again I go searching for a replacement IDE. VSCode came closer than anything else in the last two decades to replacing Vim, but somehow I am back here.
usesthis.com 7 Jun 2021
Show 6 more
Uses Vim
For writing software I full-screen a terminal and use Vim. Ctrl+Z for a shell.
usesthis.com 7 Jun 2021
Uses Tailscale
All the sockets between my computers are over Tailscale, so whenever I grab the laptop and leave the house, the connections to my VMs and NAS remain stable.
usesthis.com 7 Jun 2021
their own
Mixed on Debian
Debian is a decent programming environment. It has some of the consistency properties like macOS, but fails unexpectedly.
usesthis.com 7 Jun 2021
Uses Proxmox
The Headless AMD Threadripper is running Proxmox. My main Debian environment runs as a VM here, along with various Windows test VMs,
usesthis.com 7 Jun 2021
Uses Elgato Wave 3
Microphones are important, so I have an Elgato Wave:3 and open ear headphones.
usesthis.com 7 Jun 2021
Mixed on Mac OS
I have a lot of feelings about macOS: it is astonishingly painful for developers, but makes up for it with a consistent experience for users.
usesthis.com 7 Jun 2021
Where they publish
Blog crawshaw.io His blog on Go, networking and systems.
Recent
- The agent principal-agent problem 7 May 2026 2026-05-07 Code review is broken. The industry-established code review process, review-then-commit, was a straightforward mechanism that allowed a relatively low-trust group of engineers to collaborate. It appears to ha…
- I am building a cloud 22 Apr 2026 2026-04-22 Today is fundraising announcement day. As is the nature of writing for a larger audience, it is a formal, safe announcement. As it should be. Writing must necessarily become impersonal at scale. But I would l…
- Eight more months of agents 8 Feb 2026 2026-02-08 I wrote up my experiences programming with LLMs a bit over a year ago, and updated it for the world of agents eight months ago. A lot has changed since then, so here is an update. Agents have improved dramati…
Show 17 more
- How I program with Agents 8 Jun 2025 2025-06-08 This is the second part of my ongoing self-education in how to adapt my programming experience to a world with computers that talk. The first part, How I program with LLMs, covered ways LLMs can be adapted in…
- How I program with LLMs 6 Jan 2025 2025-01-06 This document is a summary of my personal experiences using generative models while programming over the past year. It has not been a passive process. I have intentionally sought ways to use LLMs while progra…
- jsonfile: a quick hack for tinkering 6 Feb 2024 2024-02-06 The year is 2024. I am on vacation and dream up a couple of toy programs I would like to build. It has been a few years since I built a standalone toy, I have been busy. So instead of actually building any of…
- new year, same plan 31 Dec 2022 2022-12-31 Some months ago, the bill from GCE for hosting this blog jumped from nearly nothing to far too much for what it is, so I moved provider and needed to write a blog post to test it all. I could have figured out…
- log4j: between a rock and a hard place 11 Dec 2021 2021-12-11 There is more than enough written on the mechanics of and mitigations for the recent severe RCE in log4j. On prevention, this is the most interesting widely-reshared insight I have seen: Log4j maintainers hav…
- Software I’m thankful for 25 Nov 2021 2021-11-25 A few of the things that come to mind, this thanksgiving. open/read/write/close Most Unix-ish APIs, from files to sockets are a bit of a mess today. Endless poorly documented sockopts, unexpected changes in w…
- Remembering the LAN 28 Jan 2020 2020-01-28 A memory and a dream. How it was I started programming in the 1990s living above my parent's medical practice. We had 15 PCs for the business, and one for me. The standard OS was MS-DOS. The network started o…
- The asymmetry of Internet identity 29 Sept 2019 2019-09-29 Identity on the internet is messy. The result is some things that should be easy are hard. The Identity Stack This is an attempt to document how we define a person on the modern Internet. It is analogous to a…
- Zero Trust Networks 10 Sept 2019 2019-09-10 I am leery of jargon. I am as guilty of using it as the next engineer, but there comes a point where there are just too many precise, narrowly-understood terms polluting your vocabulary. The circle of people…
- Go 1.13: xerrors 28 Apr 2019 2019-04-28 Part of the Go 2 series of language changes is a new error inspection proposal. The error inspection proposal adds several features to errors that have been tried elsewhere (in packages such as github.com/pkg…
- Fast compilers for fast programs 14 Apr 2019 2019-04-14 Compiler authors face a tradeoff between compiler speed and executable speed. Take longer to build a binary and you can build a better binary. There is a counter-intuitive condition where this tradeoff breaks…
- UTF-7: a ghost from the time before UTF-8 31 Oct 2018 2018-10-31 On Halloween this year I learned two scary things. The first is that a young toddler can go trick-or-treating in your apartment building and acquire a huge amount of candy. When they are this young they have…
- One process programming notes (with Go and SQLite) 30 Jul 2018 2018 July 30 Blog-ified version of a talk I gave at Go Northwest. This content covers my recent exploration of writing internet services, iOS apps, and macOS programs as an indie developer. There are several topics here…
- Reasoning with Regret 16 Jul 2018 2018-07-16 I avoid looking to biographies for advice, most of all for anyone in the business world who is focused on spinning an origin story. There is one however which I read by accident years ago that I keep returnin…
- Searching the Creative Internet 18 May 2018 I had of late been lamenting the loss of the internet of the 1990s. A place where everything was obscure or new. If you saw something mainstream like a Disney princess, it was because someone had taken the time to handc…
- Service Throughput Tradeoffs 13 Apr 2018 2018-04-13, David Crawshaw I am currently writing a service that lets users upload files. The typical file size is about 25KB, the maximum is 100MB, with file sizes following a power-law distribution. The nature of the…
- Sharp-Edged Finalizers in Go 5 Apr 2018 2018-04-05, David Crawshaw For background, see my last post on why in general finalizers do not work. We cannot use an object finalizer for resource management, because finalizers are called at some unpredictable distan…
Link verified 5 Sept 2026. Recent items update automatically from the channel.
x.com @davidcrawshaw His X account.
Recent
- product demos need kick flips 📝 16 Oct 2026
- This is all a bit abstract because I’ll never own one, but the “no infotainment” is a great idea. Everyone has screen fatigue. 15 Oct 2026
- We are going to make this a regular event, but until we get into a rhythm expect our first meetup to be a couple of great lightning talks and then some informal feature demos in the hallway track. 15 Oct 2026
Show 17 more
- Periodic reminder that you can buy yourself a CPU/RAM slice and run all the permanent VMs on it you need: https://t.co/k0ZdVMILcl Make them public behind our GLB. If you want to know a little bit about the custom architecture, here are some new details: 14 Oct 2026 exe.dev
- "Passkeys" are bad if you have to have to use the word passkeys. If you have a third-party password manager that makes you think about them, or if you're asked if you want them, they are bad. If an auth flow uses WebAuthn to pop up a fingerprint dialog: that's good. 14 Oct 2026
- There was recently about how easy it is to convert between programming languages with agents (cool), and somehow this means nothing should be written in Go any more (huh). Seems wrong to me. So I wrote a little bit about why Shelley is written in Go: 11 Oct 2026 shelley.dev
- The age of personal / pliable / malleable software is very hard to reason about because the last two centuries of industrialization has been about moving from the bespoke to the mass produced. Software started mass produced. Now you get it crafted to order. It’s backwards. 11 Oct 2026
- Here is a weekend project for you: a site for Shelley. Ever since we launched exe, we had an OSS web-based agent. We have never made a big deal out of it because it’s a part of the platform. But it is standalone and useful in its own right! 10 Oct 2026
- I hereby publicly commit to never posting pufferfish butts. 9 Oct 2026
- This is well-known to those who have been running VMs for a while but is not easily learned if you're new to the space, so we figured it should have a blog post. We have also exposed control over kernel scheduling cookies in a way we believe is novel. 7 Oct 2026
- I think the general direction of this is correct. What I have found effective over the last couple of years is periodically go searching for limits of a model by finding tasks it fails at, so you can recalibrate. This is an era of humility, keep throwing away what you know. 7 Oct 2026
- The new exe logo stickers arrived before the website refresh is ready. I think the only thing to do is just tweet it out. 5 Oct 2026
- The future of API use may be agents, but I believe it is still worth taking the time to help humans understand APIs. Meet the exe API explorer. 4 Oct 2026
- You can absolutely have an agent send me an email. I'll have an agent read it and delete it. 1 Oct 2026
- “As models improve, ‘good enough’ models will get ever faster.” 1 Oct 2026
- Life goal: never be the twitter main character of the day. 30 Sept 2026
- These are the sort of features you can easily build into *any* software now. This should be in your OS, and work across all your apps. 30 Sept 2026
- The Instinct UX is really nice, but it hasn't been able to do the things I have asked it to do so far. 29 Sept 2026
- Everyone is launching things! So here is a launch: exe now has an MCP interface. I added it to my ChatGPT account so I could do real work on my phone. 29 Sept 2026
- New lower pricing for the base @exedev individual plan: $15/month for 2 vCPUs / 4 GB memory. Instead of included tokens, link your ChatGPT subscription. 28 Sept 2026
Link verified 5 Sept 2026. Recent items update automatically from the channel.
GitHub @crawshaw His open source work.
Recent
- yeah — yeah: LLM-powered yes/no CLI tool 22 Mar 2026
- boldsandbox 4 Aug 2025
- httpts — Serve HTTP on a tailnet 31 Oct 2024
Show 5 more
- jsonfile — Persist a Go object to a JSON file 3 May 2024
- sqlite — Go SQLite3 driver 21 Apr 2024
- rand 16 Jul 2021
- assoc 29 Nov 2020
- etx 29 Jun 2020
Link verified 5 Sept 2026. Recent items update automatically from the channel.
About the English under a post
Some people here publish in a language other than English. Where they do, this site shows a machine translation beneath the post, in this typeface — the site's own, not theirs.
The post itself is never changed, moved or hidden: what is set in the serif above is exactly what the person published, and it is what to quote them on. A translation can be wrong in ways that matter, especially about tone.
Only the post's own words are translated. A quoted post, a linked article and a belief on korrents.com are left in their original language.

