Chris Krycho
banner
chriskrycho.com
Chris Krycho
@chriskrycho.com
Anglican Christian. Software engineer, composer, theologian, writer, runner, photographer. Platform engineering at Vanta. Co-author of the Rust book. Previously front-end platform at LinkedIn; Ember TS & Framework teams alum.

→ chriskrycho.com
Pinned
Digital technologies can be obviously dreadfully destructive, but also really wondrous tools for good. Their sheer generality is both strength and weakness. How do we bend them toward humanism and away from the soul-deadening traps they often become? v5.chriskrycho.com/essays/comp...
Computing, Convivially — Sympolymathesy, by Chris Krycho
Digital technologies can be terribly destructive, but they can also be gloriously empowering. How do we tools for conviviality rather than means of domination?
v5.chriskrycho.com
Reposted by Chris Krycho
The contagion of fear | The Observation Deck
bcantrill.dtrace.org
September 13, 2026 at 10:34 PM
Started the phone number transfer process to move a line from Verizon to US Mobile and in a matter of seconds I got a text message from Verizon offering me a discount. 😂
September 12, 2026 at 8:44 PM
Reposted by Chris Krycho
We've been cooking at @ersc.io

"What comes after git"

ersc.io/blog/what-co...
What comes after git
Our thoughts about the future of version control
ersc.io
September 10, 2026 at 5:43 PM
Reposted by Chris Krycho
In the paperclip thought experiment you’re not supposed to explicitly tell the paperclip maximizer to convert the planet into a paperclip
September 10, 2026 at 5:04 PM
One thing that catches my attention in thinking about all of this: you really do need the package manager to be closely integrated with the code itself to help you catch this stuff. You need to know whether it’s a “library” or “app” package, and how it *uses* the dependency.
Looking at a bunch of our package.json files internally and considering the extent to which they’re actually just *wrong* on the strict semantics of our packages, but also considering how hard it is to have the *right* mental model for this—and monorepos make it harder by “absorbing” wrongness.
September 10, 2026 at 1:35 PM
Looking at a bunch of our package.json files internally and considering the extent to which they’re actually just *wrong* on the strict semantics of our packages, but also considering how hard it is to have the *right* mental model for this—and monorepos make it harder by “absorbing” wrongness.
September 10, 2026 at 1:19 PM
Reposted by Chris Krycho
I'm having some fun in this thread but I do think you should get in trouble for unleashing insane hacker robots on the open Internet that you've explicitly instructed to attack critical public infrastructure, which, to be clear, it eventually succeeds at.
It appears to me that the scenario they invented for this evaluation is explicitly designed to get it to do exactly this. They remove the instructions for the task to "protect the vendor" or something but it's pretty easy to reconstruct from the text.
September 10, 2026 at 12:03 AM
Holy smokes, this is *amazing*.
Super excited to share "A Design Space Exploration of Async/Await". How differently does async/await behave across today's languages? (More than you might expect!) And what *is* "structured concurrency"?

Check out our ~interactive~ blog post introducing the paper:
cel.cs.brown.edu/blog/design-...
A Design Space Exploration of Async/Await
Every language pitches async/await as synchronous-looking code, and the same two keywords appear everywhere. But behind the shared syntax hide nine independent design decisions, and no two of seven mo...
cel.cs.brown.edu
September 9, 2026 at 6:23 PM
Reposted by Chris Krycho
Super excited to share "A Design Space Exploration of Async/Await". How differently does async/await behave across today's languages? (More than you might expect!) And what *is* "structured concurrency"?

Check out our ~interactive~ blog post introducing the paper:
cel.cs.brown.edu/blog/design-...
A Design Space Exploration of Async/Await
Every language pitches async/await as synchronous-looking code, and the same two keywords appear everywhere. But behind the shared syntax hide nine independent design decisions, and no two of seven mo...
cel.cs.brown.edu
September 9, 2026 at 4:41 PM
Reposted by Chris Krycho
Acadia is out today! Bringing the benefits of Elm to SQLite and PostgreSQL:

- Friendly error messages
- Custom types for precise column data
- Simple module system for easy reuse

Check it out! acadia.engineering/blog/rethink...
Rethinking Database Programming
acadia.engineering
August 18, 2026 at 7:57 AM
Reposted by Chris Krycho
I don’t think sentient beings have a “regenerate response” button. I don’t think their states are fully determined by a handful of tokens. They live in the world and navigate space and time like the rest of us. LLMs are highly distinguishable from anything else we call sentient.
September 8, 2026 at 2:27 AM
Nothing is pushing me toward Thomist/Aristotelian metaphysics more than watching a bunch of folks with no ability to talk about what a human is or how it might be meaningfully—ontologically, metaphysically!—distinct from an LLM, regardless of the *capabilities* of either. Essences!
September 8, 2026 at 2:22 AM
REI online now showing the Garmin fēnix 9 Pro InReach[^1] as “ship to your house arriving 9/12”, but shows my pre-order as “expected delivery 9/25”. Hoping the former means the actual delivery date is more like that than the latter. 😅

[^1]: Garmin trying to make Apple’s naming choices look good? 😂
September 6, 2026 at 2:45 AM
Reposted by Chris Krycho
The revolt of the reader
bcantrill.dtrace.org/2026/09/05/t...
The revolt of the reader | The Observation Deck
bcantrill.dtrace.org
September 5, 2026 at 9:10 PM
We rewrote one internal tool to use Rust (instead of TS/Node) as a proof of concept/trial balloon, and yesterday switched over one of our hourly jobs to use it instead of the TS version that it had been using. Over 10× better memory usage and 10–100× improvement in how fast it runs. 🤩
September 3, 2026 at 2:30 PM
Reposted by Chris Krycho
Digging back up an old version of my symphony to reference something I removed in the years since and confronted with a dialog box telling *just* how long it has been since I opened this version of the file. @doricoofficial.bsky.social v3.5.10 was a very, very long time ago. 😂
August 28, 2026 at 1:13 PM
Okay, so I posted that @doricoofficial.bsky.social tip video earlier. But why bother doing that kind of thing? v5.chriskrycho.com/notes/why-post…
Why Post Dorico Tip Videos? — Sympolymathesy, by Chris Krycho
Mostly to help people. A little bit to help people find my music.
v5.chriskrycho.com
August 27, 2026 at 8:10 PM
Reposted by Chris Krycho
The best stance is: if you turn on an LLM and execute the code it writes in a loop, eventually it’s going to do something weird and unexpected and somewhat hard to explain adequately because what it does is largely random and gets randomer over time, even if its nominal “task” is very possible.
August 27, 2026 at 6:27 PM
Reposted by Chris Krycho
Writing a symphony means I have a lot, and I mean a LOT, of music. @doricoofficial.bsky.social 6 performs pretty well with it… but when I have the whole score open, it still chugs a bit. My workaround for better performance—not original!—is to combine flows, layouts, and tabs: youtu.be/SsDgxVgt-L8
Using Flows, Tabs, and Layouts to Make Big Projects Manageable in Dorico
Working with large projects with many flows in Dorico can get slugg...
www.youtube.com
August 27, 2026 at 3:17 PM
Pre-ordered a fēnix 9 Pro (InReach)—should do really nicely for my needs, and being able to get an LTE plan for it and leave my phone behind sure sounds nice.

Ship times on Garmin pre-orders are brutal, though: REI says it’ll get here on September 25th. 🥴
August 26, 2026 at 5:54 PM
One of my big “I wish we’d been able to…” feelings about my career to date is: turning github.com/volta-cli/volt… into a full-fledged toolchain manager for ecosystems beyond Node.
GitHub - volta-cli/volta: Volta: JS Toolchains as Code. ⚡
Volta: JS Toolchains as Code. ⚡. Contribute to volta-cli/volta development by creating an account on GitHub.
github.com
August 26, 2026 at 1:25 AM
If you want to do large-scale changes on your codebase with LLMs, the vast majority of times the approach you should use is *not* to have the LLM do the code transformation.
August 25, 2026 at 10:08 PM
I still miss the old Slack icon. And non-squircle icons in general!
August 21, 2026 at 6:22 PM
I still think we should add *exactly* one more pragma to JS:

```
"use semicolon";
```

No more ASI!
August 21, 2026 at 6:18 PM
One of my best friends and I were just texting… as said friend is currently in Istanbul. We’re conversing in real time on different continents, almost 10,000km or 6,200mi apart. We all mostly just take that for granted, but: Modernity is *astonishing*!
August 21, 2026 at 3:58 PM