What I Am Working On

These projects represent different architectural approaches to common problems. Static sites optimised for content delivery and Core Web Vitals. Async Python APIs with PostgreSQL and Redis, prioritising type safety and performance. Rails monoliths with Hotwire, choosing server-side rendering and proven technology over SPA complexity.

Each choice reflects deliberate trade-offs: static vs dynamic, async vs threaded, client-side vs server-side rendering. The technologies differ, but the principle is consistent - choose the simplest architecture that solves the problem, optimise for maintainability, and avoid unnecessary complexity.

I also contribute to open source projects when they align with my work. Some are actively maintained, others are dormant but still useful.

Active

This site. Built with Astro 5 for zero-JavaScript-by-default architecture, Tailwind CSS 4 for modern utility-first styling, and MDX for type-safe content. Optimised for Core Web Vitals with static site generation and deployed via GitHub Pages.

Astro 5 Tailwind CSS 4 MDX TypeScript
Active

TV and film tracking application. FastAPI backend with async PostgreSQL and SQLAlchemy, Redis for caching TheTVDB API responses, SvelteKit frontend with Tailwind CSS 3 for minimal JavaScript overhead. Built for performance and type safety end-to-end.

FastAPI PostgreSQL Redis SvelteKit Tailwind CSS 3
Active

Recipe and meal tracking application. Rails 8 monolith with PostgreSQL, Hotwire, and Tailwind CSS. First project fully driven by AI workflows. Claude Code handles development, architecture, and CRUD operations. GitHub infrastructure manages code review, CI/CD, and deployments. An experiment in AI-native development practices and the boundaries of intelligent automation.

Rails 8 PostgreSQL Hotwire Tailwind CSS 3 AI-Driven Claude Code GitHub Actions
Active

Self-hosted bookmark and image manager solving the problem of volatile third-party URLs. Ruby on Rails 8 with built-in authentication, polymorphic tagging across bookmarks and photos, Hotwire for progressive enhancement, Active Storage for file uploads, PostgreSQL for full-text search. Short URLs for easy sharing.

Rails 8 Hotwire Turbo Stimulus Tailwind CSS 4 PostgreSQL Active Storage
Active

Archive of my family photos from the 1930s to present. Rails 8 monolith with Active Storage, polymorphic tagging, and mobile-first design. Migrating from Flickr to own the data and ensure longevity. Part of the "own your data" philosophy alongside Jotter and this site.

Rails 8 Hotwire Active Storage Tailwind CSS 4 PostgreSQL Mobile-First
On Hold

Official Python wrapper for TheTVDB API v4. Contributed throughout 2023 and 2024. Currently used in whatisonthe.tv for fetching series and movie metadata. Project appears dormant with the last commit in March 2024.

Python API Client Open Source
Archived

Ruby gem for TheTVDB API. Created when planning to use Rails for whatisonthe.tv, but ultimately chose FastAPI for async I/O and performance. Stopped active development in 2023. Several other Ruby libraries exist for TheTVDB.

Ruby API Client RubyGems
Archived

Perl-based TV listings tracker from 2002-2007. Parsed XMLTV data, augmented with season and star info, watch lists, search, and daily emails. Built before streaming existed and Sky+ was new. Migrated to GitHub in 2013 but never modernised. Pure nostalgia.

Perl MySQL XMLTV Vintage

More Projects

I'm working on other projects, but these are the ones I want documented and shared publicly. Most of my GitHub repositories are private by default - I prefer to be intentional about what I publish rather than treating GitHub as a performance space. Half-finished experiments, learning exercises, and abandoned ideas don't need an audience. When something is worth sharing, it'll end up here.