Donald Hutchison

Scan contact card

Scannable QR code with contact info

Hey!, I'm a Freelance Senior Software Developer with proven experience in Mobile, Full Stack and DevOps engineering. I've worked in Ad Tech, Games, SaaS and done a ton of client projects for a variety of different platforms. I've spent a lot of time designing tools to improve developer quality of life, and leveraging + designing CI/CD systems to do some cool things (like publish this website). I'm excited about all kinds of technology and the solutions they can provide us with.


Architecture & Concepts
  • MVC
  • MVVM
  • Microservices
  • REST
  • GraphQL
  • Clean Architecture
  • Automation
  • Native + Cross Platform Development
  • Infrastructure as Code
  • CI/CD
  • Mobile Development
  • Full Stack Development
  • DevOps
  • Swift
  • Kotlin
  • Ruby
  • Java
  • Javascript
  • Objective-C
  • Lua
  • Go
  • C#
  • Elixir
Operating Systems
  • iOS
  • MacOS
  • Linux
  • Windows
  • Android
  • git
  • Github
  • Bitbucket
  • bash
  • Terraform
  • gradle
  • cocoapods
  • Unity3D
  • Travis
  • Jenkins
  • CircleCI
  • lldb
  • GDB
Containers & Cloud


A collection of released projects, either worked on professionally or personally

Marvelroad (iOS)

A iOS driving route planning app, developed for Daimler / Mercedes Benz

Read more..

Kiekmo (Android)

An Android app to engage with the community, developed for Hamburg Sparkasse

Read more..

SpriteBuilder (MacOS)

SpriteBuilder was an open source development tool to help visually design apps and games with the Cocos2D-ObjC framework

Read more..

Jelly Splash (Android + iOS)

A hugely successful cross platform match-3 mobile game

Read more..

Open Source

A collection of efforts to which I contributed, but did not create. Contributing back to Open Source projects is a strong passion of mine, and requires a considerate approach to learn norms, standards and approach for each community for a successful merge!

anki-rb - A ruby gem to create Anki flashcards for spaced repetition learning.

Created and maintain this project for editing Anki flashcard decks in Ruby. Compatible with Desktop and Mobile Anki apps.

Read more..

Cocos2D-ObjC - Game Development Tookit for iOS

Former core member of Cocos2D-ObjC development team - responsible for CI and various other contributions

Read more..


Senior Software Developer (Contract)


Logistics and Warehousing for B2B customers.

  • Ruby + Rails maintenance

July 2020 - September 2020

Senior Software Developer


Ad Attribution, Analytics, Data Warehousing and Tools to help mobile apps acquire users and monetize.

  • Android + iOS + Unity SDK development and interop.
  • Kubernetes orchestration and maintenance
  • CI/CD tooling and design
  • Ruby on Rails maintenance and development

March 2019 - February 2020

iOS Engineer (Contract)

Agentur Uberall

Development of a home automation dashboard app.

  • Designed and implemented an iOS CI/CD solution.
  • Created tools to interact with proprietary protocol.

August 2018 - March 2019

DevOps Engineer (Contract)


Devops for an iOS project in conjunction with Mercedes / Daimler.

  • Provisioned and maintained a kubernetes cluster on AWS.
  • Implemented Ruby + Sinatra backend to generate map routes based on waypoints via GIS

September 2017 - May 2018

Android Developer (Contract)

SinnerSchrader Swipe GmbH

Short term Android client project for Hamburg Sparkasse, written in Kotlin w/ RxAndroid

July 2017 - August 2017

Lead SDK Engineer

Wooga GmbH

Design and maintenance of Wooga's in house SDK system and management of infrastructure.

  • Implemented cross platform mobile billing code (Android, iOS, Unity3d)
  • Designed a custom CI and automated test framework to assert behavior at the device level.
  • Provided support and features for several production apps running at scale

July 2015 - December 2016

Software Engineer (Contract)


Sponsored open source contributions to the iOS Cocos2D game framework + general feature development.

  • Managing devops for the SpriteBuilder (MacOS) project
  • Implemented device agnostic resolution support

November 2014 - April 2015

Games Developer


Development of an internal game prototype

July 2014 - November 2014

Software Engineer

Wooga GmbH

Designing videogames and shipping features.

  • Rapid prototyping of various mobile game ideas
  • Developed and released several hugely successful titles
  • Ported a title to a secondary Android market
  • Implemented customer support app allowing for conflict resolution and management of paying customers
  • Custom tooling for custom games

September 2012 - July 2014

Software Developer


Full stack development for a variety of agency products.

  • Development and tooling for a Flash / AS3 MMO
  • Creation and management of QA efforts
  • Geometry optimisation and AI

June 2010 - September 2012

QA Tester (Contract)

Rockstar North

Quality assurance for various console games

July 2009 - October 2009


Glasgow Caledonian University

BSc Games Software Development

Modules Studied Include:

  • Console Programming
  • Algebra and Calculus
  • Object Oriented Systems Analysis and Design
  • Software Process Management
  • Objects and Algorithms
  • Mathematics for 3D Games Development
  • Interaction Design.
2006 - 2009


Advent of Code 2020

Completed! I finished the Advent of Code for 2020, and this time pushed myself past the holiday indulgences to actually complete all 50 challenges! I pushed myself to use Elixir for everything this year, and barring a few small instances where being able to mutate a value would have saved me a lot of headaches (specifically this evil creation) it was a pretty awesome experience. Aside from the usual 2D grid geometry problems, there were a lot of new things in there and I discovered some nice things on the way.

January 10, 2021

Install referrer testing

Note: The broadcast referral functionality has been deprecated by Google Play and will be removed on March 2020. The new implementation involves connecting directly to the Play Store app - documentation is available at The install referrer is an intent on android, which is broadcast after the app install to give the app information about the reason it was installed. This is useful if you're tracking marketing / paid installs and you want to tell between paid and organic installs.

July 5, 2016

AnkiRB - spaced repetition flashcards made in ruby

In the past few weeks I discovered Omniglot and Anki and thought it'd be pretty cool to be able to create flashcards for the useful phrases listing. Being able to say “this guy pays for everything” in Turkish, or “my hovercraft is full of eels” in Norwegian could be an incredibly useful life skill. And so AnkiRB came into existence. The library basically replicates what the application itself does when you create flashcards via the gui, except uses ruby's sqlite package to create flashcards and bundle media files together.

March 28, 2016

Compiling C with Rakefiles

Make is solid. It's been around since before the internet and still one of the most important tools used today. As such - it's tried, proven, tested, and was used in some of the most successful projects out there. …but what are the chances that something so old got it right the first time? What are the chances that good old Make is the be-all, end-all, perfect ultimate solution for every possible development project?

October 19, 2014

How to write a bug report

Note: This is a post I created for internal distribution when writing bug reports for mobile applications. I'm sharing it here because I think it's useful for future situations. What's a bug report Bug reports exist only to inform people about software defects. They are not for notes, for tracking work done or for planning. There are better systems for this. The best bug reports will have as much appropriate information as possible to help asses get kicked as fast and effectively as possible.

February 17, 2014

2D OBB Collisions in XNA

OBBs (Oriented Bounding Boxes) allow for a greater degree of accuracy than their axis aligned counterparts in the field of collision detection. It turns out this is a lot simpler to implement in 2D than 3D. Here's my own take on it, which I hope to put to heavy use in an ongoing project. The OBB is modelled by an orientation matrix (in the form of two Vector2's because the Matrix type seems to suck), an origin and a Vector2 representing the +ve half widths in the x and y axis.

March 7, 2010

Wait! There's more..

See all Blogs for more examples!

Nifty tech tag lists from Wouter Beeftink