A small selection of projects I’ve done over the years. You can see a more complete listing on my GitHub page.

In addition to working on various projects, I solve problems on Project Euler. At the time of writing, I am 11th in Canada and 1064th worldwide.


I wrote a program that is able to evaluate Zendo rules in Lojban. Read my blog post about the project and then try playing the game. The code is on GitHub.


Tableflip is a platform for playing board games (or any other sort of turn-based game) online. The client is Vue.js and the server is a Flask app using SQLAlchemy and Postgres. Games are implemented as state machines with the rules specified in JavaScript, which allows more games to be easily added. Tableflip currently supports six games: Connect 4, Quarto, Hanabi, Euchre, Love Letter, and Homeworlds.

Play a game using Tableflip and check out the source code in the Tableflip GitHub repo.

Liar’s Dice

Liar’s Dice is a fun dice game. I read some papers about mental poker and realized that Liar’s Dice would be a really easy game to test out some of the ideas about cryptographic trust. I devised a commitment protocol that allows players to play the game and trust the results, without a trusted authority.

View the source code in the Liar’s Dice GitHub repo.


I made Fortuit with neynt at PennApps Winter 2015. Fortuit was inspired by something called overconfidence bias: when we make predictions about the future, we tend to be really optimistic. Fortuit aims to improve prediction-making by letting you track your predictions. This allows you calibrate your predictions and form a more accurate mental model of your mental model of the world.

Try using Fortuit! You can test out the friends feature by adding charles. You can also view the source code in the Fortuit GitHub repo.


The computer science club at my high school ran a two-week long idle game challenge. An idle game is a game in which most of your time is spent waiting; a perfect example is Cookie Clicker.

My project was Depnunkei, a stock-trading game written in HTML5 and JavaScript. The stocks are unique and randomly generated each game, and more enter the market as companies go bankrupt.

Try playing Depnunkei and see how much money you can make. You can also view the source code in the Depnunkei GitHub repo.


Condi was my entry to a casual 7DRL (7-day roguelike) among some friends. Condi features random dungeon generation, randomly generated items with special effects, and absolutely no balance. The dungeons gradually get harder as your character gains levels.

You can view the source code in the Condi GitHub repo.