chris@mccormickit.com

+61 403 399 386

github/chr15m

The forest (will travel)

I am a senior software developer building custom applications on the web, smartphone, desktop and embedded systems. I also manage remote outsourcing teams and consult on technology stack, development processes, and systems architecture.

I have spoken at technology conferences including linux.conf.au, EuroPython, and PyCon AU, and I have held board positions in startups. I specialise in free and open source software and internet technologies.

Contact me for technology consultation and software development services.

2kGit commits
per year
2Decades of experience
15+Programming languages

LISPLove it
*ptrsYup

Python, Javascript, Clojure, shell scripting, Django, 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.

Experience

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.
Contracts:
  • Culture Counts Pty Ltd - Chief technology officer. 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, ClojureScript, Bootstrap, jQuery, jQuery Mobile, PhoneGap, Cordova, iOS, Android, Cryptography)
    (November 2013 - )
  • 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)
    (February 2013 - )
  • Safe Swivel Technology Pty Ltd - Django/Python website backend with authenticated downloads and user management. Managing remote software development team.
    (June 2010 - )
  • 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 - )
  • 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
Responsibilities:
  • 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
Responsibilities:
  • 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
Responsibilities:
  • 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
Responsibilities:
  • 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
Responsibilities:
  • Network and systems administration.

TAB

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

Qualifications

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 & Residencies

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

Linux.conf.au, 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 Conferece, 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.

Lecturing

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