Projects

My side projects include interpreters and compilers, web frameworks, game solvers, developer tools, databases, games, and more. My public GitHub repositories have been starred 1687 times, and my last open source git push was 19 hours ago.

Open Source

lisp-to-js

An optimizing compiler for a Lisp variant. Compiles and executes bytecode in a VM. Can also output JavaScript.

Read my write-up.

nodots

A small programming language with an interpreter, a profiler, and a WebAssembly compiler.

Read my write-up.

noter

A text editor for macOS. Built using the Ebitengine game engine.

Read my write-up.

andoma

A chess engine with alpha-beta pruning, piece-square tables, and move ordering.

Read my write-up.

jar

A server-side web framework that deploys to Vercel.

Read my write-up.

untrusted-python

Run untrusted python code on the server.

Read my write-up.

coolrule

Boolean expression evaluation engine (a Rust port of boolrule).

Read my write-up.

adventlang

A programming language (+ code playground) for Advent of Code.

Read my write-up.

golfcart

A minimal programming language inspired by Ink, JavaScript, and Python.

Read my write-up.

unrandom

Intercept and modify getrandom syscalls from a process (x86-64 Linux).

Read my write-up.

bitcask-lite

A log-structured hash table database. Speedy K/V store for datasets larger than memory.

Read my write-up.

drep

A fast grep clone written with Deno.

tools

Terminal tools, written from scratch.

Read my write-up.

crane-search

A full-text WebAssembly search engine for static websites. Build, index, and fly.

Read my write-up.

sokoban

Sokoban game and automated puzzle solver.

Read my write-up.

niceware

Generate or convert random bytes into passphrases. A Rust port of niceware.

Read my write-up.

dm-multiplayer

A game prototype for a 2D arena shooter.

Read my write-up.

deno-script-sandbox

An API/sandbox to run untrusted JavaScript/TypeScript scripts.

Read my write-up.

compressing-cs2-demos

An example of compressing Counter-Strike 2 demo data.

Read my write-up.

file-share-cli

Share files with friends from your terminal.

Read my write-up.

if-sad-send-cat

A program that sends cats to my phone when I'm sad at the computer.

Read my write-up.

doom-checkboxes

DOOM rendered via checkboxes in a web browser.

Read my write-up.

tld-quiz

How well do you know your top-level domains (TLDs)?

codeguessr

Like GeoGuessr but for code. An open source project quiz.

Read my write-up.

pi

Monorepo for my Raspberry Pi dashboard and GPS satellite listener.

Read my write-up.

oak-lru-cache

An LRU cache written in Oak.

inkbyexample

A hands-on introduction to Ink using annotated example programs.

Read my write-up.

hoot-language

A general-purpose interpreted scripting language with an event loop.

deno-isolate-web-request

Making web requests from inside an isolate.

tinyinfra

A simple key/value store (get/set) and queue (send/receive/delete).

in-memory-cache-over-http

An in-memory LRU cache server.

Read my write-up.

healeycodes.com

Next.js blog and portfolio website.

among-us-friends

An ELO and player tracking system for the game Among Us.

Read my write-up.

embroidery-vision

Identifying which DMC threads are used in embroidery hoop images.

Read my write-up.

bandwidth-checker

Graph your internet bandwidth over time!

Read my write-up.

boids

The boids flocking simulation using Ebiten!

Read my write-up.

twitter-ticker-tape

A Raspberry Pi project to read tweets via receipt printer.

Read my write-up.

gatsby-serverless-comments

Use Netlify serverless functions to add commenting to a static website.

Read my write-up.

privacy-focused-analytics

A toy analytics system for the web with a focus on user privacy.

Read my write-up.

markov-chain-generator

Build and consume Markov chain models to generate random realistic text.

Read my write-up.

emojistreamer

A live stream of every emoji posted to Reddit.com.

country-borders

Calculating the path between two countries with the least border crossings.

Read my write-up.

broken-link-crawler

A bot that crawls your website looking for dead stuff.

Read my write-up.

dev-article-analysis

A website that graphs textual statistics from a DEV user's articles.

Read my write-up.

conways-game-of-life

A classic algorithm implemented visually with Ebiten.

Read my write-up.

Game Jams

I miss doing game jams, it's been a while.

Planet Dysphoria

Art-driven game of discovery. One of PC GAMER’s free games of the week.

Retro Daddy

A Goofy shooter. 2nd place in #OpenJam17. Featured at AllThingsOpen.

Wildwood

Fast-paced arena beat-em-up. 3rd place in #CFNgamejam.

Oxygen Thief

Steal oxygen at your peril. 7th place in GDN’s Gooseberry Jam.

Dissociative Dad

Vaporwave-inspired moody journey. Entry for 72hour #dreamhackjam.

Undersea

A short, stylish and slightly spooky 2.5D puzzle adventure game.