About
![]()
Hi 👋, I’m Sean:
a software developer and future Portuguese Water Dog owner
living in Ottawa, Berlin, Edinburgh, Leith.
Subscribe to this site’s feed for new posts. You can also download my resume or find me on GitHub, Stack Overflow, and Mastodon: @seanh@hachyderm.io. Feel free to get in touch by email.
Projects
Here’s a list of some of my projects. You can find more on my GitHub account.
Sidecar (2025)
A plain-but-pretty blog theme for the Pelican static site generator.
Oatcake (2025)
A drop-in CSS stylesheet that makes pages attractive and readable.
ghp-pelican (2023)
A reusable workflow for deploying a Pelican site to GitHub Pages using GitHub Actions.
ghp-static (2023)
A GitHub Actions reusable workflow for deploying static files directly to GitHub Pages - no Jekyll or static site generator needed, just deploy a directory of HTML and other static files directly to your GitHub Pages site.
Find Me (2011)
An iPad game for children with autism. App store: pro version, free version. BBC news article, journal paper. JTRS made a good YouTube video that explains how the app worked.

Story Maps (2005–2011)
A story authoring application for children, developed for my PhD thesis.

CKAN (2011-2015)
I used to work for Open Knowledge as a core developer on the CKAN project. Some of my CKAN work:
- Tutorials (2014, archived copies):
- CKAN extensions:
- Dead or Alive (2014), check websites for broken links
- Data Packager (2014), a web app for making tabular data packages
- OAuth 2.0 Support for CKAN (2014)
- Mozilla Persona Support for CKAN (2014)
Edinburgh University Java Screencasts (2008)
For a few years ~2008 I was the course lecturer for The University of Edinburgh’s Introduction to Java Programming: a Masters-level, intensive 12-week crash-course in object-oriented programming with about 70 students per year. I created the screencast lectures that were used as the primary course material. Below is one of the screencasts as an example. I’ve also created an archive page of the entire course of screencasts.
PandaSteer (2006)
Computer game characters that follow, chase, flee, and avoid obstacles and collisions. Also PandaZUI, a zoomable user-interface framework.
Various command line tools and dotfiles I’ve developed over the years
- My ripgrep config (2019)
- My Openbox config (2018)
- My DWM config (2015)
- Losser (2014), a little JSON to CSV converter
- Terminal Velocity (2012), a fast note-taking app for the UNIX terminal
- Snapshotter (2011), very easy incremental snapshot backups
Gedit Plugins (2019)
gedit-autoname and gedit-smart-autosave.
Websites
I sometimes make websites for people. Here’s a few examples: Forest (circa 2010, archived copy), a free arts and events space masquerading as a vegetarian café; Infoseed (circa 2007, archived copy); Ottawa No Sweat Coalition (circa 2005, archived copy).
PyBlosxom (2005–2015)
My PyBlosxom plugins and themes: mtimecache, drafts, HTML5 theme, tumblelog, metadate, markdown, Vessel and Scribbish.
Navigating 3D Environments (2004, PDF)
A non-player character that navigates complex 3D environments (Quake III levels), created for my undergraduate dissertation.
