Selected Projects

I've written tons of code in public over the years. Some projects were created to address niche issues I faced, others to learn new technologies, and some completely for the fun of it.

Below is a selection of some of my more substantial work. For a full list, plus contributions to other open source projects, check out my GitHub profile.

Maps & Geospatial

Hotpot
Rust 2023

Personal heatmap tile server (à la Strava).

Sore Legs
Python 2023

Telegram-powered cycle-touring journal.

Panamint
Rust 2022

Fully-configurable routing engine for OpenStreetMap data.

Unexplored
Lua SQL 2021

Create maps of roads and paths you’ve never taken.

Strava Heatmap Proxy
JavaScript 2021

Make Strava heatmap tiles available for use anywhere.

Where is Erik?
JavaScript 2018

Personal, spatial microblogging.

Dérive
JavaScript 2016

Browser-based personal activity heatmap from GPX data.

Tools & Utilities

fnr
Rust 2022

Command-line tool for bulk find-and-replace operations.

Squabble
Python SQL 2018

SQL query and migration linter.

Hermit
Elixir 2018

Pipe terminal output to a sharable web page.

GitHub Notify
Swift 2018

MacOS menu bar app for GitHub notifications.

Recipe Cleaner
JavaScript 2017

Browser extension to remove cruft from recipe pages.

vxsv
Go 2017

Tabular data viewer for the terminal.

Rain
Elm 2016

Modern IRC client for the web.

Holepunch
Python 2016

AWS security group management ingress CLI.

Pension
Python 2015

Tool to manage AWS instance retirement notices.

lastcast
Python 2014

Scrobble your Chromecast listening to Last.fm.

Alexacast
Python 2014

Control your Chromecast with Alexa.

Mixport
Go 2014

Download and process all of your Mixpanel data.

Experiments

mail2static
Python 2019

Email to static site generator.

Gruppo
Go 2018

Publishing platform powered by Google Docs.

Pontoon
Elixir 2017

Implementation of the Raft distributed consensus algorithm.

Nestorama
C 2012

Nintendo Entertainment System emulator.

Org Server
Emacs Lisp 2010

Serve org-mode files as HTML, directly from Emacs!

Programming Languages

Gob
Go 2013

Compiler for B (the lesser-known ancestor of C).

Frink
C 2011

Implementation of a Forth-like language, built on top of Atto.

Atto
C 2011

Tiny, stack-based virtual machine. Designed to be simple to target and reasonably fast.

Bijou
C 2010

Register-based virtual machine and assembly language modeled off Lua.

Libraries & Frameworks

Alexandra
Python 2016

Python library for building Lambda functions in the style of Flask.

Valatra
Vala 2010

Sinatra-inspired web framework for Vala.

Low-Level Systems

Plath
Rust 2015

Reimplementing the pthreads API from first principles.

Cudamon
C 2012

Monitor and control NVIDIA GPUs from the command line.

Acedia
C 2010

Operating System from scratch, written in C.