
Projects
Browser Network

A suite of libraries designed to enable truly serverless web app development. Send cryptographically secure messages back and forth across an arbitrarily large network designed for rapid connection and high availability. Includes cryptography library, serverless, distributed database, and a dead simple switchboard.
Evolving Ecosystem

This is a full on ecosystem of lifeforms, each with a neural net and its own genome, with food and danger, with evolutionary pressures. Every time you let it evolve a different system comes about. I've seen competition for food, I've seen cooperative strategies. I've even seen lifeforms sacrifice themselves for the betterment of the group. Evolution is an incredibly interesting thing to watch take place! This project is written in Rust and uses tui-rs to create a command line based UI.
Sequencer

A musical instrument built using web technologies including Tone.js and React.js. Uses browser network to facilitate saving to the cloud and sharing your creations. Prepare to waste a lot of time experimenting with different patterns and tunings!
GPTModels.nvim

A neovim plugin designed to integrate AI into your neovim workflow. Written in Lua, TDD, with a focus on stability. LSP Diagnostic aware, capable of communicating with Ollama hosted local models and Openai models. Includes file and selection inclusion.
Treewalker.nvim

My most popular open source contribution - a neovim plugin that lets you walk around your code's abstract syntax tree. Harder to implement than you think it should be, and there have been no good alternatives for years.
Music Theory Wheel

An interactive tool designed to help educate about and familiarize with the seven primary musical modes in western music
Asteroids

A serverless multiplayer take on the classic. Uses Browser Network to achieve serverless multiplayer functionality. Built with React.js and HTML5 Canvas.
Node Quic

node-quic is a dead simple stream based QUIC server / client for use in node.js. QUIC is an improvement over TCP that uses UDP but without information loss.
Shardus DB

A dead simple, clean, and powerful API for Shardus, the distributed and decentralized technology behind the Shardium crypocurrency
Modes

A quick and dirty exploration of all of the musical modes possible within a 12 note scale. Expect an ear opening experience rather than an eye pleasing one ;)
Crypto Trading Bot

Now offline, I spent a lot of time on and had some moderate successes with a trading bot that automated trading cryptocurrencies. As time went on, exchanges became more established and charged higher trade rates, and winning became harder and harder. Eventually I took this offline in favor of a hodl approach, but I wanted it in here because it represented a lot of work over a good course of my life. Uses regression to the mean, bolinger band, and trailing stop loss based strategies.
Blob Wars

A 3D game-in-progress that utilizes Browser Network to achieve serverless multiplayer. This game is a new take on a style of casual game that I love.
Evolutionary Conway

A blazingly fast version of Conway's Game of Life written in Rust. Uses an evolutionary algorithm to find interesting starting configurations. Colorizes output based on cell age.
AI CLI Tools

A collection of CLI utilities for easily interacting with OpenAI AIs
Blog
Event Sourcing: When Is It Right to Use?
The first article in a short series on Event Sourcing. When is it right, and when is it wrong, to use an Event Sourcing storage pattern, with examples in python
Event Sourcing: What is Upcasting? A Deep Dive
Another article in the series on Event Sourcing: An in depth look at upcasting
Read Time Upcasting - Never Migrate your Deebs Again

Read Time Upcasting - What, Why, How, What, And Why