This is a Tetris clone. It's pretty straightforward, though it does feature a slower, more relaxed pace of gameplay than most Tetris clones.

It's written in Python, using Pygame. While you can perhaps tell that it's the second game I ever made, Tetris doesn't have a high bar for technical skill to make it work, so it plays alright.


Minisnake is a snake clone, written in Python, using Pygame. It's one file, and I made it primarily as a speed programming challenge in just 2 hours.

Smiley Blast

This is the first game I ever made, preserved here so we can all appreciate how far I've come. It's a really simple Python game, using Pygame, where you shoot at smiley faces which bounce around. There's multiple weapons, and a high score menu.


Random Password Generator

This is an unconventional password generator, which uses a markov chain algorithm to generate english-like, pronouncible passwords that are much easier to remember than truely random passwords, but don't actually feature real words.

It runs on Python, using Tk for the UI.


2020s Humor Bot

Ever seen a really stupid meme which is just a distorted image of something with it's name misspelled in Impact font on it, with a conspicuous lack of an actual joke, laughed at it, and thought about how humor had degraded so badly you wondered if you could automate it? Regretably, I didn't leave it to speculation.

Give it a follow at @2020sHumorBot, it generates and posts one of those images every two hours.

Running on python, it figures out what is in the images I give it using AI, distorts them, and then posts them to twitter with EasyTweeter.


This Website

This website is a project in itself. It runs on the Pelican static site generator, which allows me to write all of the content in markdown, and upload the generated static html without a server-side CMS.



This is a simple but helpful Python library which provides a wrapper around Tweepy, to ease the process of writing simple Twitter bots. If you just want to make a bot that tweets and notifies you about people interacting with it, EasyTweeter will do everything but the text generation in about 3 lines.