Joel Gustafson / About


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

I'm broadly interested in

  • HTML, text editors, browsers
  • local-first apps, p2p collaboration
  • databases, networking, distributed systems
  • "tools for thought"
  • what it's like to be online right now
  • knowledge representation, identity, agency, belief, meaning
  • manifold learning, "geometric deep learning"
  • the pro tennis tour

#Projects

  • andromeda - a high-performance parallelized force-directed graph layout engine
  • microcbor - Fast canonical CBOR implementation with streaming APIs
  • zig-ipld - Zig implementation of the IPLD data model
  • 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
  • it-zip - 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
  • json.scm - JSON implementation for MIT Scheme

#Work

I'm currently self-studying differential geometry and algebraic topology.

In 2022 I co-founded Canvas, a application framework built on a programmable peer-to-peer database. This yielded a number of novel research blog posts related to p2p networks and distributed systems.

From 2018-2022 I was with Protocol Labs as an independent researcher, and collaborated with the Knowledge Futures Group on a distributed knowledge graph project.

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 LISP 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.