Let me show you some cool things I’ve made on the web! If you’re interested in my other work, you could look me up on LinkedIn, Launchpad, Github or Ohloh. And, of course, there is always my blog. If you’d like to talk, feel free to contact me.

North Light Images & Stuart McCall’s portfolio


Stuart McCall needed a new website for North Light Images, his photography business, and later for his art portfolio. I designed both sites to be responsive, touch friendly and delightful to interact with. Instead of using lightbox popups or separate gallery pages, I developed an image gallery from scratch with a carefully tuned single-page design. The images are always front and centre, but relevant information remains a glance away. The newer portfolio site uses Less CSS, jQuery and web fonts, all with an eye to performance, and the North Light Images site will soon be migrated to a shared codebase.

Where Will Santa Live?


Where Will Santa Live? was the David Suzuki Foundation’s Christmas fundraising campaign in 2011. It is a simple, whimsical website that inspires talk about climate change and invites people to donate to the foundation by purchasing e-cards as symbolic gifts. Working with Public Inc, Erika Rathje and some other very excellent people at DSF, I took care of the layout and I wrote a heap of javascript to wire the website together (along with a functioning non-javascript fallback). We used Google Analytics to track people’s interactions with the site so we could improve it throughout the campaign.

In the end, we raised some money and we attracted an interesting flurry of attention from all sorts of people. Rex Murphy really didn’t like it, and Carin Bondar called it “one of the cleverest Christmas campaigns she’d seen.”


Harvest was a web service to help people contribute to Ubuntu. It aggregated small bug reports and other quick tasks that could use attention. For Google Summer of Code 2010, I worked with Daniel Holbach to design and implement its new web front-end.

Part of my project was to make Harvest fast. It maintained a large database with a lot of very similar data and it was down to Harvest’s interface to make that data particularly useful. So, I added filters to quickly narrow down results, though my implementation was unusual: searching happened in real time. As the user selects filters, results immediately start to appear. This improved perceived performance and encouraged exploration. The system was carefully tuned to keep the number of unnecessary database hits to a minimum. Whenever something is pulled from the database, there is some expectation it will be useful to the end user.

I also worked with Harvest’s Django server code and the front-end was augmented with jQuery’s Ajax utilities to streamline interaction. I had a lot to write about the project, so, I went ahead and wrote a short retrospective. In May 2011, I updated the design to match Ubuntu’s official branding guidelines.

See also: my blog posts about Harvest.

Installer slideshow for Ubuntu

Several years ago, I spearheaded the effort to create an introductory slideshow that is presented to users while they install the Ubuntu operating system. Since Ubuntu 9.10, the slideshow has been included on the installer CD that ships to millions of users. Details about the project, including its source files, are on launchpad.net.

My aim with the project is to introduce new users to the system and the Ubuntu community by starting them off with easy and interesting basics. Importantly, it is written open-endedly. The aim is to encourage and inspire people so they can explore and discover new things for themselves.

The slideshow’s content is stored in HTML files with added glitter via Javascript and CSS. The installation utility displays that content using Webkit. It is easy for translators to localise the slideshow through Launchpad’s usual web interface. The slideshow currently supports over 50 languages.

The project has seen many contributors through its life and it has slideshows for many Ubuntu flavours including Edubuntu and Kubuntu. At this point, the design and copy is contributed by Canonical’s design team. I implement those designs and I write code to fit things together — making sure the slideshows are easy to create and to translate. I work on organizing the project as a whole, making sure the slideshow remains effective and the people involved are happy.

See also: my blog posts about the slideshow project.