korrents
David Crawshaw

David Crawshaw

@david-crawshaw · 19 positions · 0 changes of mind

Software engineer; co-founder and former CTO of Tailscale, previously on the Go team at Google.

Everything they publish, on ppll ↗

David Crawshaw did not write this page.

We collected these quotes from things they published elsewhere, and every quote links to where it was said. They have no account here and have not endorsed this site. Quotes are word for word; the short line under each one is our own restatement, not their wording. Their own site. Is this you? Claim it or ask us to remove it. Or tell us what is wrong here.

  1. code generation

    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 problemcrawshaw.io 1st of 3 in this piece

  2. 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 problemcrawshaw.io 2nd of 3 in this piece

  3. AI alignment

    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 problemcrawshaw.io 3rd of 3 in this piece

  4. 2 weeks earlier
  5. VMs are the wrong shape because they are tied to CPU/memory resources.

    I am building a cloudcrawshaw.io 1st of 3 in this piece

  6. You cannot solve the fundamental problems with cloud abstractions by building new abstractions on top.

    I am building a cloudcrawshaw.io 2nd of 3 in this piece

  7. Agents, by making it easiest to write code, means there will be a lot more software.

    I am building a cloudcrawshaw.io 3rd of 3 in this piece

  8. 2 months earlier
  9. 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 agentscrawshaw.io 1st of 3 in this piece

  10. Most software is the wrong shape now. Most of the ways we try to solve problems are the wrong shape.

    Eight more months of agentscrawshaw.io 2nd of 3 in this piece

  11. design

    the best software for an agent is whatever is best for a programmer.

    Eight more months of agentscrawshaw.io 3rd of 3 in this piece

  12. 8 months earlier
  13. semiconductorscompilers

    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 Agentscrawshaw.io 1st of 2 in this piece

  14. 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 Agentscrawshaw.io 2nd of 2 in this piece

  15. 5 months earlier
  16. LLMs

    One thing humans appear to be much better than LLMs at (as of January 2025) is not getting distracted.

    How I program with LLMscrawshaw.io 1st of 2 in this piece

  17. LLMs

    So I foresee a world with far more specialized code, with fewer generalized packages, and more readable tests.

    How I program with LLMscrawshaw.io 2nd of 2 in this piece

  18. 11 months earlier
  19. 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 tinkeringcrawshaw.io 1st of 3 in this piece

  20. Programming is the art of tradeoffs. You have to decide what matters and what does not.

    jsonfile: a quick hack for tinkeringcrawshaw.io 2nd of 3 in this piece

  21. energy

    Most projects fail before they start. They fail because the activation energy is too high.

    jsonfile: a quick hack for tinkeringcrawshaw.io 3rd of 3 in this piece

  22. 2 years earlier
  23. 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 placecrawshaw.io 1st of 3 in this piece

  24. When software "upgrades" invalidate my old knowledge, it makes me a worse programmer.

    log4j: between a rock and a hard placecrawshaw.io 2nd of 3 in this piece

  25. 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 placecrawshaw.io 3rd of 3 in this piece