Sean Donachiue

I beat my head against hard problems 'til they yield or I do.
And then I try again.
Below are some projects.

Web Projects website thumbnail

Rehab in Motion

Most recently, I've designed, developed, and deployed this responsive site for the Calgary-based physical wellness and rehab clinician company Rehab in Motion.
Remote project, built using gatsby.js, HTML, CSS.

Bruce D. Miller

I am currently maintaining this site and recently added SoundCloud iframe embeds and bandcamp links to purchase songs, as well as Stripe integration for direct payments.
Built in Wix Musician Website Thumbnail thumbnail

Strut Orthotics

Host migration, responsive redesign, pagespeed optimization, SEO audit and upgrades.

Academic Projects


A game written using OpenGL from scratch (no game engine). You play a janitor and your goal is to clean the level, a task made difficult by your lack of combat abilities. My individual contributions include a modular and extensible 2D physics system, as well as spritesheet animation functions. Term project for Game Programming course @ UBC.


blinn-phong Raytracing

Implemented basic shading models in WebGL. From left to right: Gouraud, Blinn, Blinn-Phong, Texture Mapping.


Shadows and reflection accomplished using raytracing and collision detection with geometric primitives. Completed for CPSC 314 - Computer Graphics



A cryptographically secure, true random number generator in the windows console using the input from the microphone as an entropy source, and a 2D particle system as a model for byte representation. Term project for Computer Security.


Another Android app, this restaurant location game parses data from Yelp to generate a list of restaurants for major cities in Canada, then asks the user to locate them by touching the Google Map. The colour of the resulting marker is interpolated between red and green, depending on how far or close the marker is to the restaurant. The more guesses, the lower your score.


Timer App Timer Settings

I wrote this pomodoro timer app for Android as an exercise. It alternates between work and break intervals until the loop count is reached. All three of these are set by the user in the settings tab.

Java/Android Studio