Here are some of the projects I have worked on over the years. Most have stumbled and failed, but I have learned something from each of them. A couple of others have had some staying power, most notably Bascule, the static website generator which drives this blog.

Bascule

Active

A static website generator, inspired by tools such as jekyll, and written in Kotlin. Bascule is still active, though under life support as I try to bring it up to date to with modern libraries and a more modern Java JVM version.

  • Technologies: Kotlin, Handlebars, Markdown, Koin

Cantilevers

Inactive

An attempt to create a 'bascule in the cloud', using purely serverless technologies running on AWS. Although I got quite far—the website for the project is self-hosting - there were some architectural decisions which ultimately rendered the project unworkable. In the meantime, I've set up a GitHub Actions runner to run bascule whenever the content of this website is updated and pushed to GitHub.

  • Technologies: Kotlin, AWS Lambda, API Gateway, AWS CDK, Markdown, Handlebars, Auth0 Java, SvelteKit 4, Koin

Corbel

Inactive

I wanted to create a native Windows app to create content for Cantilevers, and Corbel was an attempt at this. I didn't get very far - it was a massive distraction from the core work of developing Cantilevers. I was also pretty unhappy with the default look-and-feel of a Jetpack Compose application on a Windows desktop, and it was really hard to customise.

  • Technologies: Kotlin, Jetpack Compose Multiplatform

APIViaduct

Active

A serverless API router written in Kotlin and running on AWS Lambda. Initially created to support the Cantilever project, I have split this into its own library and hope to use it in other projects in the future.

  • Technologies: Kotlin, AWS Lambda, API Gateway, AWS CDK

Amber Charge Tracker

Active

An Android application to record the charging of an electric vehicle. This project is still active, and I use it every time I charge my car. I've struggled with the Android application lifecycle but it does the job. I had ambitions to integrate it with Android Auto but haven't started that yet.

  • Technologies: Kotlin, Room, Android, Jetpack Compose

Khartoum

Active

An odd one this - a Kotlin library to render text on an eInk display, specifically for a Raspberry Pi and compiled to ARM assembly via Kotlin Native. My Raspberry Pi can display the time and date, or my currently playing song from Spotify.

  • Technologies: Kotlin, Kotlin Native, Raspberry Pi, eInk display

SGFlexi

A simple website to help track flexible working hours, for my work.

  • Technologies: HTML, CSS, SvelteKit 5

Active

Older projects, all inactive

  • Caisson: An MVC library for the Spark-Kotlin web framework
  • Cinnabar: My first attempt at creating a website CMS, written in Grails

Games

Project Kuiper

Paused.

Very much inspired by Project Herschel, this is a turn-based card game themed around the exploration of the solar system. A dynamic research system and a hidden tech tree are the main features of this game. I made good progress but ran out of steam when I reached the 'but is it fun' question.

  • Technologies: Kotlin, Godot, Godot-Kotlin

Project Herschel

Inactive

  • Technologies: Kotlin, KorGE, LibGDX

The Alchemist

Inactive

An attempt to create an RPG game, with a focus on crafting and alchemy. I really struggled with the UI elements, and the game never really got off the ground. It was not the sort of game I would be likely to play, which probably didn't help.

  • Technologies: Kotlin, KorGE