Joe Bain - Curriculum Vitae

07708 413 751

I am a intelligent and hard working programmer with great attention to detail. Combining a first class degree in Computer Science from a top-ten university with 7+ years professional programming experience. I can architect and implement solutions across the whole technology stack.


Freelance Work (Joe Bain Limited)

May 2014 - Present

I am currently working as a freelance developer, focusing on web applications, Laravel and Backbone.js. A non-exhaustive list of my clients:

Mucho - September 2014 and ongoing

I worked with Mucho to deliver bug fixes and new feature requests. Working across their Backbone.js frontend and PHP/Laravel backend I helped prepare the site for upcoming investor pitches and preparing the site and API for a general launch. Recently I have been focusing on an API for use in their iOS app. Using ElasticSearch and Memcached to deliver a responsive experience. The app is deployed on AWS, using Elastic Beanstalk to manage deployments.

StickyWorld Ltd - May 2014 - August 2014

I developed a new dynamic and customisable home page for customer subdomains at The application draws in content from existing customer content on as well as social media and allows moderators to selectively publish and enable commenting on items.

The app is built around Backbone.js and Marionette. Gulp is used for a build system, Sass for styling and Handlebars for templates. I used Browserify to enable splitting the app into file-based modules.

OMG Life

Senior Software Developer, April 2011 - May 2014

I had a range of responsibilities at OMG Life. My main focus was a photo management app for use with the Autographer wearable camera. The app is a C++ base with frontend and GUI in HTML and Javascript. As well as programming the app I was heavily involved in the UI design, from functional flow and wire-frames to some of the graphic assets (icons and animations.) I was mainly involved in the Javascript/HTML front end, for which I was the sole developer, but also contributed significant features to the C++ backend.

 "OMG has shown us a glimpse of what we can expect in the future"

        - Rik Henderson - Pocket Lint

As part of the job I set up and maintained an automated build system using Jenkins. We used Git for version control and I used XCode, Visual Studio 2008, vim and Chrome in my daily development cycle.

 "The best thing about the Autographer is the software that comes with it, which allows you to store and organise the vast amount of pictures you generate."

        - Rory Cellen-Jones, BBC

Also whilst at OMG Life I prototyped an iPhone app (written in Objective-C), helped manage development of a Rails web app, as well as doing some minor development on it myself. I got my hands dirty in the Autographer firmware (written in C) and as part of one of my first tasks when I started, I implemented a logging system and programmed the internal buzzer to play the Super Mario theme.


Software Developer, June 2010 - March 2011

At OpenBet I worked on their backend fixed-odds games server, written in Java, as an Apache Tomcat module. This used an IBM Informix database and required writing and managing SQL. I used Ruby scripts for data generation and testing.

I worked on the game clients also, which were Adobe Flash apps, these were programmed using ActionScript 3. I worked closely with designers and animators, taking their designs and attaching the game logic to them. We used the PureMVC framework to organise and reuse code across games.

Realtime Worlds

Junior Software Engineer in Test, September 2009 - June 2010

I worked on MyWorld, an unreleased MMO game based on real world mapping data. I was responsible for writing and maintaining software tests and helping and encouraging colleagues to write them. I also worked on an in-house art tool for adjusting the lighting within the game and controlling day/night cycles.

I used C# and Visual Studio and Perforce for source control.


BSc Computer Science & Artificial Intelligence, First Class, Edinburgh University, graduated 2009.



Uprok is a game designed for 5 players playing with 1 foot pedal each. Originally started at a game jam, it was expanded for entry to the Experimental Gameplay Project's 5 BUTTONS competition and was shown along side some of the other entries at the Stattbad Gallery in Berlin.

Pole Riders & Uprok

Uprok has also been at the Wild Rumpus live games event in London and 2012's GDC after-party All Other Parties Are Trite And Dull. Most recently, in April 2014, it was shown at the Norwich Gaming Festival.

The game is a timing-based racing game, where slower players drop out until only one remains. The gameplay is influenced by Tiny Wings and Twang. All code, music and art is by me. Uprok was written in Javascript and uses HTML Canvas for procedural graphics and WebAudio for reactive sound.

Single player demo - Chrome only.


Kaptilo is a 2d puzzle game for Android phones. Game design, UI design and programming was done by me, art, music and sound effects were by friends.

Kaptilo is programmed in Java and uses OpenGL accelerated sprites. The game design is inspired by Sokoban games and, uniquely, the Windows Solitaire win animation.

Google Play - Demo version Full version