+61 403 399 386


For more than a decade I've built software applications and MVP prototypes for customers. I've done work on every major platform from web development & server code to desktop & mobile apps, databases, and embedded hardware. My expertise is in rapidly bringing customer ideas to fruition. I also help customers bootstrap their software development team with local and outsourced developers, to carry larger projects through to maturity.

For a sample of software that I've built check out my portfolio.

The easiest way to reach me is by email at

Python, Django, JavaScript, ClojureScript, Shell scripting, HTML5, PHP, Android, Node.js, Java, C & C++, Linux, iOS, cryptography, Bitcoin, Pure Data, web apps, systems administration, devops, audio & DSP, game development, Free and open source software.


McCormick IT Pty Ltd

Start Date: Apr 2003
End Date: -
Position: Owner / Developer / Consultant
  • Manager of a network of globally distributed software developers.
  • Lead developer on active software projects.
  • Consultant on technology, systems architecture, Free & Open Source Software stack deployment.
  • Culture Counts Pty Ltd - CTO, senior developer. Consulting on technology stack, development process, systems architecture. Managing remote software development team. Building mobile apps, website, and server side software stack for gathering field data and feedback from stakeholders and the public. (Python, Django, Javascript, React, Matplotlib, Vega, ClojureScript, Bootstrap, jQuery, jQuery Mobile, PhoneGap, Cordova, iOS, Android, Cryptography)
    (November 2013 - 2020 ongoing)
  • Ecocene Pty Ltd - environmental monitoring and data collection system. (Javascript)
    (August 2019 - 2020 ongoing)
  • Donovan Associates Pty Ltd - 3d web application for converting robotic laser thedolite surface telemetry into editable meshes in the browser and producing DXF file format CAD friendly output. Managing remote software developers. (Javascript, Three.js, jQuery, Python, Django, dxfwrite, ezdxf, Heroku)
    (February 2013 - 2020 ongoing)
  • The Experience Lab Pty Ltd - Bookings management system. (Python, Django, Javascript, jQuery)
    (April 2019 - 2020 ongoing)
  • PVI Collective - Ongoing development of Deviator augmented reality art game. (Android, iPhone, Phonegap, HTML5, Javascript, jQuery Mobile, Python, Django, Cryptography)
    (December 2019 - February 2020)
  • PVI Collective - prototype media-art installation for smartwatches, SMS, and other media. (ClojureScript, React, Apache Cordova, Android Wear, Python, TinyCore Linux, Raspberry Pi, websockets)
    (September 2017 - March 2018)
  • Museum of Water - site specific media-arts video browsing installation running on iPads. (ClojureScript, React, Raspberry Pi, TinyCore Linux)
    (January 2018 - February 2018)
  • Fabio Balla - web based procedural GCode generator for a 3d CNC router used for wood work. (Lua, Starlight, PHP, Javascript, Mithril)
    (September 2017 - November 2017)
  • Proximity Festival - site specific media-arts video browsing installation running on iPads. (ClojureScript, React, GNU/Linux)
    (September 2017)
  • Safe Swivel Technology Pty Ltd - Django/Python website backend with authenticated downloads and user management. Managing remote software development team.
    (June 2010 - October 2017)
  • Craig Speelman / Edith Cowan University - Browser and iPad based mathematics education videogame. Django/Python server backend. Managing remote software development team. (HTML5, Javascript, jsGameSoup, PhoneGap, Python, Django, iOS)
    (January 2011 - April 2017)
  • PVI Collective - Second version of the multi-player network client/server Deviator application. Cross platform iPhone/Android app communicating with a web based server back-end. Ongoing development of new projects. (Android, iPhone, Phonegap, HTML5, Javascript, jQuery Mobile, Python, Django, Cryptography)
    (March 2012 - 2013)
  • Venturelink - Online system for marketing and selling ventures. Managing remote software development team. (Python, Django, jQuery, Mustache.js)
    (November 2012)
  • Data Analysis Australia - Maintainance of web based statistical forecasting systems, project management system, data collection website. Managing remote software development team. (Python, Django)
    (April 2012 - February 2014)
  • WEL Travel - PHP/Apache/MSSQL web-based intranet bookings service maintenance.
    (June 2010 - June 2013)
  • Pracsys - Department of Housing feedback and data gathering website. (Python, Django, jQuery, Flot)
    (June 2013 - October 2013)
  • Pracsys / Department of Culture & the Arts - Public Value Measurement Framework mobile device implementation. (HTML5, Javascript, jQuery, Python, PhoneGap, Django, iOS, Android)
    (December 2012 - November 2013)
  • Hydra Poesis (Sam Fox) - LAN based media broadcast and synchronisation system for live performance. Custom desktop server and mobile device clients. (HTML5, Node.js, Javascript, jQuery, iOS, Android)
    (December 2012 - July 2013)
  • Handwritten Games - Online comic reader interface. (HTML5, Javascript, jQuery, iOS, Zepto, Android)
    (October 2012 - June 2013)
  • Matrix Consultants - Android CSipSimple app customisation tweaks. (Android, CSipSimple)
    (October 2012 - January 2013)
  • WA Museum / Inkubator - Educational touchscreen installation. Educational iPad app. (HTML5, PhoneGap, Javascript, jQuery, iOS)
    (August 2012 - October 2012)
  • Last Pixel Pty Ltd - Custom Python server doing colored blob tracking and serving the results as UDP packets for 2D remote triangulation. (Python, OpenCV)
    (June 2012 - July 2012)
  • Permapleat Pty Ltd - Django/Python customer portal integrated with a legacy commerce database. (Python, Django)
    (November 2010 - April 2012)
  • Hpflsk - Custom Google Appengine & Django online services. (Python, Django, Appengine)
    (November 2011 - September 2012)
  • PVI Collective - First version of the multi-player network client/server Deviator application. (Android, iPhone, HTML5, Javascript, Node.js)
    (July 2011 - October 2011)
  • The Tank - Systems Administration installing a PHP based CMS site on OSX Lion Server, dns management, mail server configuration, etc.
    (October 2011 - January 2012)
  • Marketforce - Custom Python multimedia installation/advertisement, performing human face detection/recognition in a web cam image and applying effects to the output on a public television screen. (Python, OpenCV, Pygame)
    (September 2011 - October 2011)
  • VTel Pty Ltd - VoIP SIP client for Android OS. (Java, Android, VoIP)
    (October 2010 - January 2011)
  • Hello World - Bespoke Django and Python web systems, Pinax based social networks, CMS technology.
    (May 2010 - Sep 2010)
  • Clever Starfish - PHP based web service.
    (May 2010)
  • Reality Jockey Ltd, London - Developing web technologies to interface with the RjDj app, desktop applications for doing procedural and collaborative music, low level DSP library code, custom Python code, iPhone code, Android code, Pure Data patches. (Python, Django, Objective C, jQuery, Javascript, MySQL, PostgreSQL, CouchDB, Amazon S3, Facebook API, iPhone, Android, In-app purchase, wxWindows, wxPython, sockets, Pure Data, C/C++, Cryptography)
    (Nov 2008 - May 2010)
  • Interzone Games - Developing web technologies to interface with Interzone's games, specifically their massively muliplayer online (MMO) football game; Interzone Futebol (Python, Pylons, Django, Javascript, MySQL, PostgreSQL, Opensocial API, Facebook API)
    (Jan 2008 - Aug 2008)
  • Glick International - Developed a site-specific speech synthesis installation called Master Of Prayer (Pure Data, Python, wxWindows, Mbrola, Mac OSX)
    (Aug 2007 - Jun 2008)
  • Advanced Tenement Services - Developed a mining tenement management system (Javascript, Python, MySQL)
    (Jun 2007 - Dec 2007)
  • Manifesto Games, New York City (remote contract) - Fixed bugs in the drupal/paypal payment gateway (PHP)
    (Apr 2007 - Jun 2007)
  • Summit Resources - Fixed PPTP VPN/Linux issues
    (Mar 2007)
  • Perfect Accent project (second phase) - R&D for a voice recognition like system (C, Python)
    (Jan 2007 - Jun 2007)
  • Studio Robot - PHP/MySQL/Paypal integration for an web based mp3 retailer
    (Dec 2006 - Jan 2007)
  • Perfect Accent project (first phase) - Initial feasibility evaluation for a voice-recognition like system (C, Python)
    (Sep 2006 - Nov 2006)
  • Wayforward Technologies, Los Angeles (remote contract) - Developed Gameboy Advance code for "SpongeBob SquarePants: Creature From the Krusty Krab", published by THQ. (embedded C, ARM processor)
    (Apr 2006 - Jul 2006)
  • Davison Brothers Code to control stepper motors which drive stop-motion movie cameras on special tracks (Python)
    (Mar 2006)
  • Embedded Technologies Corporation - PHP/Sqlite code for a web based configuration system
    (Mar 2006 - May 2006)
  • Papercut Media Pty Ltd - Database design, integration, web development (PHP, MySQL)
    (Apr 2003 - Dec 2006)

Pixelbox Networks Pty Ltd

Start Date: Jan 2004
End Date: Nov 2011 (sold company)
Position: Technical Director
  • Company director
  • Systems/Network Architecture (Debian GNU/Linux, Apache, qmail)
  • Maintainence, development, and deployment
  • Client phone and email support
  • Profitable company with large client base

Murdoch University

Start Date: July 2004
End Date: Dec 2005
Position: Tutor
  • Tutored Game Design and Programming Semester 2 (two years)

HyperCube Pty Ltd

Start Date: Jan 2003
End Date: Dec 2006 (company deregistered)
Position: Developer / Director
  • Produced an unpublished Gameboy Advance game. A space shooter called "Meltdown"
  • Produced an unpublished PC construction game called "Hypercube Destruction Set"
  • Game sound effects synthesis (Pure Data)
  • Music and game soundtracks
  • Game engine coding (C, C++, Python, OpenGL, ARM processor)
  • Maintained website (PHP)

PerthWeb Pty Ltd

Start Date: Apr 2000
End Date: Feb 2003
Position: Systems Developer / Network Administrator
  • Web systems development (PHP, Perl, ASP, InterBase, MSSQL, MySQL)
  • E-Commerce systems development (Camtech, ThinLink, online shopping)
  • Cryptography and commercial encryption systems (RSA, Blowfish, PGP, SSL, C, PHP, Perl)
  • Server administration (linux, sendmail, apache, proxy, backups, unix scripting)
  • Windows client software development (Delphi)
  • Multimedia systems development - video, applets (C, Java)

Sema Group, Belgium

Start Date: Mar 2000
End Date: Apr 2000
Position: Network Administrator
  • Network and systems administration.


Start Date: Jan 1996
End Date: Jun 1996
Position: Computer Operator
  • Mainframe systems administration
  • Shift work


Bachelor of Science, Computer Science

Murdoch University
Perth, Australia2008
(GPA 3.613)

Certificate 3, Network Administration

Central TAFE
Perth, Australia2003

Computer Technology degree (incomplete)

Curtin University
Perth, Australia
(embedded systems development - incomplete due to work commitments)

High School

Hale School
Perth, Australia1995
(Calculus, Applicable Math, Chemistry, Physics, English Literature, French)

Middle School

Jakarta International School
Jakarta, Indonesia1993
(Maths, English, Geography, History, French)

Conferences & Speaking

Linux Conf Australia, January 2020

Gold Coast, Australia

  • Piku: git push deployments to your own servers
  • px3d: a free software browser based pixel 3D nano-engine in ClojureScript

Singapore JS, November 2019


  • Bugout: practical decentralization with WebRTC

Bsides Perth, September 2019

Perth, Australia

  • Bugout: practical decentralization on the modern web

SecTalks, March 2019

Perth, Australia

  • Scripting NaCl cryptography: a field guide
  • A practical introduction to Dan Bernstein's ubiquitous Networking and Cryptography library.

Python-Django Meetup, March 2019

Perth, Australia

  • PodSixNet: 10 years at the top!
  • On maintaining an open source Python library for networking games.

Clojure eXchange, December 2018

London, United Kingdom

  • Clojure Embedded in Music Hardware.
  • On Ferret, Webaudio API, ClojureScript, Arduino, & Raspberry Pi.

Python-Django Meetup, November 2018

Perth, Australia

  • NaCl cryptography in Python.

Perth Linux Users Group, July 2018

Perth, Australia

  • GNU/Linux in tiny places.
  • Termux on Android.
  • piCore on Raspberry Pi.

After Dark, April 2018

Perth, Australia

  • 8-bit algorithmic music technology presentation and live performance.

PdCon, November 2016

New York, USA

  • Presented "lolPd: a domain specific language for list and table manipulation".
  • Hosted mobile music workshop with Dan Wilcox and Dan Iglesia.
  • Live music performance: drillbit - Algorithmic rave music in the style of drill’n’bass.

Python-Django Meetup, October 2016

Perth, Australia

  • Gave a talk on 'Python Lisp: Hylang'

XcoaX, June 2014

Porto, Portugal

  • Algorave music live-coding and performance.

Torino Mini Maker Faire, May 2014

Turin, Italy

  • Algorave music live-coding and performance.

Conflux, July 2012

Glasgow, Scotland

  • Tech support for the mixed media performance "Deviator" by PVI Collective.

PyConAU, August 2011

Sydney, Australia

  • Presented "Infinite 8-Bit Platformer" - a user-created-content multiplayer video game developed in Python.

pd-LA Launch, April 2011

New York City and Los Angeles, USA

  • "Pure Data as your audio engine" workshops in NYC + LA.
  • Pure Data wiimote demo at Eastman-Fairfield Boys and Girls Club, Longbeach.
  • Pure Data patching circle at Crash Space, Culver City.

PyCon Au, June 2010

Sydney, Australia

  • "Python in Video Games and Multimedia Projects" about working on Infinite 8-bit Platformer and RjDj.

FreePlay, June 2010

Melbourne, Australia

  • Spoke on "The first one is free" about various licensing models for content and code, including gratis, Free Software, and Creative Commons licenses.

EuroPython, June 2009

Birmingham, UK

  • Gave a talk on how we used Python and Django at RjDj, to break our application out of the iPhone jail.

Electrofringe (This Is Not Art Festival), August 2007

Newcastle, NSW, Australia

  • Gave a talk on using games technologies in audio-visual/electronic music performance systems, including the Nintendo DS, Commodore 64, Wii-mote, and PC gamepads

Nextwave Freeplay Independent Game Developer's Conference, August 2007

Melbourne, Victoria, Australia

  • Sat on the organisational committee and chaired a panel

GO3 Electronic Entertainment Expo, Mar 2007

Perth, Western Australia

  • Sat on a panel discussion about developing indie games in Australia, January 2007

Sydney, NSW, Australia

  • Gave a talk entitled "GNU/Linux on handheld gaming devices"
  • Gave a talk entitled "Dr. StrangeArt, or, How I Learned to Stop Worrying and Love Algorithmically Generated Content"

Audiosity, Artrage, May 2006

Geraldton, Western Australia

  • Site specific art installation using an EyeToy web cam, the ARToolKit and some custom Pure Data patches. Patrons of the system place tagged vinyl boxes into a grid to specify the order of an audio sequence of collected and manipulated field recordings from Geraldton.

The Salvation Show, Artrage, October 2005

Perth, Western Australia

  • Site specific art installation using an EyeToy web cam, the ARToolKit and some custom C code. Patrons of the system move tagged paper boxes in space to paint pink and black fading dots on a virtual canvas.

Linux Conference Australia, April 2005

Canberra, ACT, Australia

  • Talked at the embedded systems mini conference - 10 tips for Gameboy Advance development.
  • Played a live set (using custom Pure Data patches).
  • Gave a talk on developing for the Gameboy Advance using open source tools.

Straight Out Of Brisbane festival, December 2004

Brisbane, Queensland, Australia

  • Gave a workshop on developing for the Gameboy Advance.
  • Played a live set with "Chrism + Fenris".

Australian Game Developer's Conference, December 2004

Melbourne, Victoria

  • Gave a talk entitled "Gameboy Advance: Using Open Source Tools".

Electrofringe (This Is Not Art festival), October 2004

Newcastle, New South Wales

  • Spoke on the No-Input panel (regarding feedback loops and circuit bending in music).
  • Played a live set with "Chrism + Fenris".

Freeplay Independent Game Developer's Conference, May 2004

Melbourne, Victoria

  • Spoke on gameboy advance development panel.
  • Spoke on open source gaming engines panel.
  • Spoke on console hacking hijinx panel.

Residency at The Kitchen, March/April 2004

Perth, Western Australia

  • Performed electronic music on a weekly basis at The Kitchen in Leederville, Perth, with "Chrism + Fenris".

Electrofringe (This Is Not Art festival), October 2003

Newcastle, New South Wales

  • Spoke on a panel entitled "Sonic resurrections" concerning work on music software for gameboy advance and 6510/6581 chips.

Australian Computer Music Conference, July 2003 (uncredited)

Perth, Western Australia

  • "Circuits with the past" with Christina Thomas and Eleanor Ingram - designed and implemented two Pure Data patches for interfacing with midi/cv light sensors, video playback, and audio triggering over two laptops communicating via UDP.


Edith Cowan University, August, 2008

On composition and video games.

Edith Cowan University, October, 2007

On procedural game content algorithms.

Edith Cowan University, October, 2006

On electronic music composition.

Edith Cowan University, May, 2006

On procedural game content algorithms.

Murdoch University, July - December, 2004

Five lectures for the course Game Design and Programming - ICT 207