Programming for fun and profit

A blog about software engineering, programming languages and technical tinkering


I always have a few side projects going. You can find an exhaustive list on my GitHub page, but here are a few highlights.


Rut is a clone of Git, written in Rust. It's a project I use to learn both the Rust programming language and about the internals of Git.


RepoBee is a tool for managing Git repositories on GitHub for education. It can do things like generate repositories for students, clone student repositories in batches, run tasks on the cloned repositories as defined by plugins, and more. I'm really quite proud of it, and have some exciting things coming up for it this summer (that I can't yet talk about).


Spoon is a popular metaprogramming library for Java. It allows you to parse source code into a rich AST, analyze and/or transform the AST and print it back to source code. I'm one of a handful of maintainers on the project.


Spork is an AST based structured merge tool for Java. This means that instead of merging Java files by their raw text, it resolves the abstract syntax trees and merges based on them instead. It is built on top of Spoon.