Only includes work that I'm free to share publicly, which is largely from earlier in my career. To discuss my more recent experience, please contact me.


Title Description
Bash Test Simple Bash Test Simple is a very simple testing framework for bash. Features hooks, formatted output and summaries for tests arranged into test suites.
Designing for cultural perceptual factors in information retrieval Two experimental search systems used to investigate cultural factors in interactive information retrieval.
Genetic algorithms & Traveling Salesman problem Simple (but heavily parameterized) tool for testing genetic algorithms on the traveling saleman problem. All parameters are optional, and have default values; the real value of this tool is to learn how various variables in genetic algorithm impact its efficacy.
Ontology representation and reasoning with SMem in Soar Tools for representing OWL ontologies in Soar's semantic memory module, and an agent with an inference module.
run-log Web application for logging runs and tracking progress. React, Redux, Circe.
Sudoku solver A brute-force Sudoku solver written in C++.
Tranche Distributed archiving software used to provide redundancy, data pedigree and integrity for scientific data sets. Optional AES encryption, compression and SSL. This software was used for the ProteomeCommons.org.
T2Util A simple, object-oriented API for remotely accessing peak lists from the mass spectrometer's database.
wormj Port of BSD game "worm" to Clojure.
XLinkCandidate Uses T2Util to get information from specified instrument. Using MS peak list, looks for peaks of specified mass difference (e.g., 112 Da) to infer potential crosslink candidates. Outputs an inclusion list than can be used to run MS-MS. This is not a cross-linked peptide validation tool, but rather a way to find potential crosslink candidates.

For more projects, visit me on GitHub.


Naturals™ from the maker of Equal®

I worked with a designer to develop the Naturals™ from the maker of Equal® promotional site. HTML5, responsive design. (humans.txt)

mPach In progress

The University of Michigan is developing a platform of tools for publishing open access journals in HathiTrust. See the mPach project page for more details.

I participate in the development of Prepper, which provides a dashboard for the management of journals for journal editors. Additionally, I provide assistance with the development of tools for converting authored content into archivable formats.

MPublishing DLXS publications

My work on customizations to DLXS for MPublishing is used for many of our journals and monographs. E.g.,

University of Michigan Press

I participate in the implementation and maintenance of University of Michigan Press site. The site includes an embedded CMS for editors and automates many tasks (nightly builds, report generation, asset and derivative management).

The Pancrepedia

The Pancreapedia is a resource for the exocrine pancreas research community.

Although I did not participate in the early development of the site, I assumed maintenance and development of new features after its beta launch.

Korean language learning

These custom applications are legacy resourcess. My tinycards flashcards and Korean grammar notes are probably more useful.

For fun

  • Micro is an infix calculator console.
  • Language Shell is a console for defining formal grammars.
  • Texas Holdem is a single player, winner-takes-all game.
  • HTMondrianL is a gallery of Mondrian art rendered by HTML tables inspired by MIT's 5k competition.
  • Life is an implementation of Conway's Game of Life.
  • Consort: small team collaboration tool.