Projects

Things I've built

Engineering work in solar and storage, the software I write for it, and tools for home. The home projects are self-hosted and private, so most have no public link.

Solar and energy

Engineering work, and the software I build for it.

Live 2025

Apex Renewable Engineering

My independent engineering practice for solar PV, battery storage and hybrid assets: technical due diligence, asset health checks, portfolio reviews, owner’s engineering, contract review and expert witness work. Its two websites, the main site and a residential site for homeowners, are static sites I built and run on Cloudflare Pages.

  • Solar PV
  • Battery storage
  • Due diligence
aprengineering.co.uk
In use 2026

ApexYield

A PV energy yield simulator built on pvlib. A Python engine does the modelling; a browser front end lays the system out on a site map, models shading in a 3D editor and produces PDF reports. It runs on Windows, macOS and Linux, and powers the free solar yield check on the Apex residential site.

  • Python
  • pvlib
  • React
  • three.js
  • Leaflet
Try the yield check

Built at home

Software for my own home and family, most of it running on a small self-hosted server.

In use 2026

NetAtlas

A self-hosted map of my home network. It finds every device on the LAN, names the manufacturer from its MAC address, guesses what kind of device it is, and draws the result as a top-down network diagram or an Obsidian-style graph.

  • Python
  • FastAPI
  • Docker
In use 2026

TaskLlama and LlamaHub

Reminders that actually ring, for tasks kept in Vikunja. An Android app syncs tasks and calendar events and rings the alarms on the phone itself; LlamaHub, a small always-on service beside Vikunja, hears about every change and nudges the phones to sync.

  • Kotlin
  • Android
  • Python
  • Docker
In use 2026

Duplicate Image Toolbox

Finds, scores and resolves duplicate images and videos across one folder or a whole photo library. It runs natively on Windows with GPU acceleration, and comes with a desktop app, a command line and an MCP server, so Claude can review the uncertain matches with me.

  • Python
  • PyTorch
  • FastAPI
  • MCP
In use 2026

Icon Pack Builder

An Android app that turns my own images into an icon pack, built and installed on the phone. Made for the Kvaesitso launcher, which can give any app any icon from an installed pack but can’t use an arbitrary image; it works with any launcher that reads icon packs.

  • Kotlin
  • Android
In development 2026

Head Unit Tools

Diagnostics, and later fixes, for the Android head unit in my 2011 Mazda 3. An app on the unit records what it does (steering-wheel key presses, volume changes, what’s playing, the system log) and uploads it to a small receiver at home whenever the car is on my phone’s hotspot.

  • Kotlin
  • Android
  • Python
  • WireGuard