I grew up in Duluth MN, graduated from MIT in 2018, and now live in Brooklyn.

I'm broadly interested in

  • web3
  • text editors
  • "tools for thought"
  • category theory
  • HTML
  • offline and local-first apps, p2p collaboration
  • what it's like to be online right now
  • ontology, representation, identity, agency, belief, meaning
  • Hannah Arendt, Marshall McLuhan, Simone Weil, Ivan Illich
  • the pro tennis tour


  • zig-sqlite - simple, low-level, explicitly-typed SQLite bindings for Zig
  • zig-lmdb - Zig bindings for LMDB
  • react-lezer-highlighter - a tiny library for syntax highlighting on the Web
  • zkmessage.xyz - a plausibly deniable group message board
  • mimc.party - a web tool for calculating MiMC hashes
  • codemirror-lang-circom - CodeMirror integration for the Circom language
  • next-rest - a framework for writing end-to-end typesafe REST APIs for NextJS
  • nil.directory - for when you forget what the IPFS hash of the empty directory is
  • fp16 - 16-bit half-precision floating-point numbers for JavaScript
  • big-varint - encode and decode arbitrarily large signed and unsigned varints in JavaScript
  • react-dataflow-editor - a generic drag-and-drop dataflow editor for React
  • ziterable - a tiny TypeScript utility for doing generic and variadic iteration
  • brainfreeze - a fully homomorphic implementation of Brainfuck
  • mental.bike - reminding us to not lose sight of how good things could be
  • thingsandstuff.com - self-explanatory
  • json.scm - JSON implementation for MIT Scheme


I'm currently building Canvas, a framework for building peer-to-peer applications using decentralized replicated causal logs.

From 2018-2022 I was with Protocol Labs as an independent research scientist, collaborating with the Knowledge Futures Group on knowledge graph and semantic web research.

In summer 2017 I interned at Notion in the run-up to the Notion 2.0 launch that introduced tables and databases. I designed and implemented the DSL, runtime, editor, and documentation for formulas.

screenshot of the formula input component

Throughout undergrad I worked with Gerry Sussman on various Scheme projects, like a native Jupyter kernel for MIT Scheme and some experimental notebook programming interfaces.

a notebook UI for scheme with cool widgets

I also worked as an undergradudate researcher in the Viral Communications Group at the Media Lab on an early version of PubPub, an open access publishing platform.