View on GitHub


I write software sometimes.


Learn World History

The only item on this list that isn't open source, this is an app that I wrote to dust off my java skills a few years ago. Closing in on about 200k installs, averages about 160 per day.


This is software I wrote for my former law firm, mod4 LLP, when we were 3-4 people. It keeps track of time in tenth of an hour increments, and creates pdf invoices, and helps you keep track of what invoices are paid or not. It separates between administrator and non-administrator access; the latter has more limited rights to enter time, but not to edit the time of others. I had contemplated running a SaaS with it, so the software is capable of using multiple PostgreSQL databases for multiple firms.


This is php/sqlite3 software to keep track of student attendance, which I made with the help of my wife, a middle-school teacher. It is functional, but could use some polishing and more features. Message for a live demo URL, or just download and drop into a web-hosted directory of a server with php/sqlite3 support.


This links the catalog of Project Gutenberg (public domain books) with the catalog of LibriVox (public domain voice recordings). I created it when I started using Librivox and was looking to make a recording, but it was difficult to determine what books existed in the public domain but were not recorded yet in LibriVox. See it in action here, read more information in this blog post, and the source code is here.


This is a basic quiz framework, one of the first things I wrote in java in a while. It it probably a bit dated now, but could be a good starting point for someone looking to learn to write Android apps. This is the core of what I used for my (non-open-source) Learn World History app, which has had over 100k downloads from the Play store. Source code, and some apps based on it in the Play store. .


Another project to help out my teacher wife, this creates a table of percentage scores for any given number of points in an assignment or quiz or whatever. Very short and simple, but she tells me it is super-useful. Someday I will make it prettier. Live service here, and the source code is here.