Last updated on the 30th of July, 2019
I have a thing against resumes. As a software engineer with quite a bit of experience there are a lot of applications, frameworks, libraries and technologies I have experience with, some more than others. There are many ways I could list this in a resume, but if I want to do the ones I have the most experience with any justice, this is going to result in a very long resume. During job interviews I’ve noticed that people tend to go down the list, look at what they recognize, and start asking questions about that, but they also ignore those they don’t know, even if they are a significant part of my experience. As for my work history, there’s a complete and up-to-date list on LinkedIn.
So instead of coming up with a list of keywords, or a tag cloud, I have instead chosen to highlight a number of open source projects that give an adequate impression of what I’m capable of.
There are a number of projects that I semi-actively maintain in my spare time, for a wide variety of use cases. Some of these projects are open source, and you are welcome to inspect these.
- Technologies: Docker Compose, Hibernate, HTML5 Canvas, Spring, Websockets, Wicket
- Open source: Yes, Affero GPL.
Beholder is a web application developed for my Dungeons and Dragons group, that adds a visual aspect to an imagination-heavy game. Dungeons and Dragons is a so-called “pen and paper roleplaying game”, meaning that the basic game has no board or props, and you can play the game without these, though it is recommended to use some sort of grid, as well as miniatures, whenever a combat situation arises.
Our group traditionally ends up in a lot of these combat situation, and also does a lot of so-called “dungeon crawling”, and we found the erasable grid we’ve been using to be somewhat lacking. Having to draw out the rooms of a dungeon as we explore was tedious, and was causing more confusion than aiding our visualization.
As a result, I developed Beholder, an application with two main interfaces:
- The Dungeon Master interface, where the person running the game can set up maps, “fog of war”, enemy icons, spell effects, and a whole lot of other things to aid in visualization. This is an application written using Apache Wicket, which uses Spring and Hibernate for business logic and persistence, respectively.
- Technologies: ANTLR, Maven
- Open source: Yes, LGPL
Andalite is a library for analyzing and transforming Java and XML sources, that I use primarily for specific (non-automatic) code-generation. It allows you to specify a recipe, a specific set of transformation steps, that can be applied to one or more source files. Example uses:
- Add a property to a Hibernate entity, and also add the required XML to a Liquibase changeset
- Create a new Wicket page (Java and HTML both)
- Create a new REST service:
- Create a JAX-RS interface in an API project
- Create an implementation of this interface in a backend project
- Create a proxy of this interface in a client project
As of writing this, Andalite is not well documented, and in the process of being ported to a different parser framework that supports Java 11 and higher.
- Technologies: Hibernate, JAX-RS, Maven, Quartz, Retrofit, Spring, Wicket
- Open Source: Yes, LGPL
Hyperion is my toolbox: a big set of libraries that help me develop applications quickly. It was initially designed for Wicket-based applications, though more recent versions are heavily modularized and can easily be used for backend-only development.
Documentation in the master branch is rather sparse, though the experimental branch (which will soon be the new master) has extensive Javadoc.
- Technologies: Hibernate, JAX-RS, Retrofit, Spring, Wicket
- Open Source: No, but will eventually be released under the Affero GPL
Project Myriad is a new website for the Tysan Clan, a gaming community I have been a part of since 2001. Our current website was the first Wicket application I ever made (and is an excellent example of why you shouldn’t hire me as a web designer), and while it still receives regular updates, the architecture is slightly dated.