This page lists some of the programming projects I did for fun before I started working with software in a professional capacity. I keep this listing up primarily for historical interest.

Everything here was made with .NET/C#.

I’m not including various minor toy apps I’ve made just to learn specific concepts as they’re not interesting to look at. The projects here are all things I made because I needed or wanted them.

QuietTime

main window screenshot

I describe this project on GitHub as 'f.lux for your ears'. It’s a WPF app that automatically caps your computer’s volume. I made it for two reasons:

  • Preventing long-term hearing damage, which I was worried about

  • Stopping my new bluetooth headphones from maxing out my volume randomly

QuietTime was my first attempting making an app with 'all the bells and whistles' — logging and DI from day one, clean architecture, keyboard shortcuts, a responsive UI, formal releases, etc. My hope is that someone else out there in the world might actually find it useful, so I held myself to a high standard of quality.

I’d like to improve it further with unit testing, localisation and UI theming, but it’s currently feature-complete.

WallpaperMaker

wallpapermaker

This app converts an image of arbitrary size into a 1920x1080 jpg suitable for a desktop wallpaper.

It currently fills out the side panels by taking a random snapshot of the main image. I might change this in future.

My big weakness is web stuff, so I made this ASP.NET Core webapp as a learning experience.

Pages are served with Razor, image conversion through a backend API in the same project.

Frighteningly, it also includes a little JavaScript.

This is in active development. My plan is to try making a proper UI in one of the big three JS frameworks (probably Angular).

dotnet explanations

OK, this technically isn’t a programming project.

Over the past few months I’ve created a simple static site with clear, plain-English explanations of tricky .NET and C# concepts.

Almost all tutorials I’ve found online focus too rigidly on the mechanics of programming rather than making appeals to intuition.

To counter that, I try to always foreground what problem a particular language feature or technology is meant to solve, and avoid jargon.

UK Tax Calculator

Image

Since I left my retail job I’ve been working as a freelance copywriter.

I recently filed for my first self-employed tax return, which inspired me to make an app that would help the process along.

The tax calculation was very simple and not suitable for real use, but I’m quite happy with the UI, which is a combination of two NuGet packages.

This was my first project working seriously with databases (I used SQLite), which was very instructive.

DupFinder

dupfinder

I have a lot of holiday photos taking up space on my PC, so I’m always searching for a good heuristic near-duplicate finder for images.

I’m not satisfied with any currently existing solution, so I made my my own.

I made this before I got really comfortable with WPF, so the UI isn’t spectacular, but it does showcase some async work and interesting ways of comparing image data.