Chris McCormick - Curriculum Vitae / Resume

Freelance software developer

Python, Django, Javascript, HTML5, PHP, Android SDK, Node.js, Java, C/C++, Linux, iOS, Cryptography, Bitcoin, Pure Data, Games, Web, Internet, Audio/DSP, Free and open source software.

Australia Mobile:+61 (0) 403399386
Australia Landline:+61 (0) 864248317
Email Address:chris@mccormickit.com
Summary:

I am a freelance software developer building custom applications for clients on the web, smartphones, and desktop computers. I specialise in free and open source software and internet technologies. Contact me if you have a software application you want built.

Some of the technologies I frequently develop with are listed near the top of this page.



Employment History

McCormick IT Pty Ltd
Start Date: Apr 2003
End Date: -
Position/Title: Director / Developer / Consultant.
  • Manager of a network of globally distributed software developers.
  • Lead developer on active software projects.
  • Consultant on technology selection, systems architecture, and free and open source software stack deployment.
Contracts:
  • Culture Counts Pty Ltd - Mobile apps, website, and server side software stack for gathering field data and feedback from stakeholders and the public. (Python, Django, jQuery, jQuery Mobile, PhoneGap, iOS, Android)
    (November 2013 - )
  • YEffect Pty Ltd - Web application for converting robotic laser thedolite surface telemetry into editable meshes in the browser and producing DXF file format CAD friendly output. (Javascript, Three.js, jQuery, Python, Django, dxfwrite)
    (February 2013 - )
  • 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)
    (March 2012 - )
  • Craig Speelman / Edith Cowan University - Browser and iPad based mathematics education videogame. Django/Python server backend. (HTML5, Javascript, jsGameSoup, PhoneGap, Python, Django, iOS)
    (January 2011 - )
  • Venturelink - Online system for marketing and selling ventures. (Python, Django, jQuery, Mustache.js)
    (November 2012 - )
  • Data Analysis Australia - Maintainance of web based statistical forecasting systems, project management system, data collection website. (Python, Django)
    (April 2012 - )
  • Safe Swivel Technology Pty Ltd - Django/Python website backend with authenticated downloads and user management.
    (June 2010 - )
  • WEL Travel - PHP/Apache/MSSQL web-based intranet bookings service maintenance.
    (June 2010 - )
  • 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++)
    (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/Title: Technical Director
Responsibilities/
Achievements:

  • 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/Title: Tutor
Responsibilities/
Achievements:

  • Tutored Game Design and Programming Semester 2 (two years)


HyperCube Pty Ltd
Start Date: Jan 2003
End Date: Dec 2006 (company deregistered)
Position/Title: Developer/Director
Responsibilities/
Achievements:

  • 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/Title: Systems Developer/Network Administrator
Responsibilities/
Achievements:

  • 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/Title: Network Administrator
Responsibilities/
Achievements:

  • Network and systems administration.


TAB
Start Date: Jan 1996
End Date: Jun 1996
Position/Title: Computer Operator
Responsibilities/
Achievements:

  • Mainframe systems administration
  • Shift work


Education/Qualifications

Institution: Murdoch University
City/Country: Perth, Australia
Qualifications: Bachelor of Science, Computer Science (GPA 3.613)
Completed: 2008

Institution: Central TAFE
City/Country: Perth, Australia
Qualifications: Certificate 3, Network Administration.
Completed: 2003

Institution: Curtin University
City/Country: Perth, Australia
Qualifications: 2 years of a 3 year Computer Technology degree (embedded systems development)
Completed: Not Completed due to work commitments

Institution: Hale School
City/Country: Perth, Australia
Qualifications: High School TEE (Calculus, Applicable Math, Chemistry, Physics, English Literature, French).
Completed: 1995

Institution: Jakarta International School
City/Country: Jakarta, Indonesia
Qualifications: Middle School (Maths, English, Geography, History, French).
Completed: 1993

Sessional lecturing appointments

Edith Cowan University, August, 2008
Gave a lecture on composition and video games
Edith Cowan University, October, 2007
Gave a lecture on procedural game content algorithms
Edith Cowan University, October, 2006
Gave a lecture on my electronic music composition practice
Edith Cowan University, May, 2006
Gave a lecture on procedural game content algorithms
Murdoch University, July - December, 2004
Gave five lectures for the course Game Design and Programming - ICT 207

Open Source Projects

The following is a non-exhaustive list of projects I have released as open source software, some of which get a substantial number of downloads:

PodSixNet - A multiplayer network game server written in Python.
http://mccormick.cx/projects/PodSixNet/

Infinite 8-bit Platformer - A Free Software multiplayer video game where users create the content.
http://infiniteplatformer.com/

S3BotoStorage - A storage backend for Django which writes files to Amazon's S3 cloud-based filesystem. I contributed the first version.
http://bitbucket.org/david/django-storages/src/tip/storages/backends/s3boto.py

PyPd - a set of Python classes for interfacing with the Pure Data DSP patching system.
http://mccormick.cx/projects/PyPd

PdLANParty - a client-server system for associating Pd patches with eachother on a local network. Kind of like Bonjour for Pure Data.
http://mccormick.cx/projects/PdLANParty

WebPd - a partial port of Pd to javascript audio (currently only in Firefox experimental).
http://mccormick.cx/projects/WebPd

KnobsAndSlidersDS/FUDIKaosDS - These two programs for the Nintendo DS let you build interfaces and send data to and from the handheld to music programs on your PC. They consist of about 1,000 lines of C code for the ARM processor, and get about 100 downloads per month.
http://mccormick.cx/projects/KnobsAndSlidersDS

Looper Advance - This program for the Gameboy Advance lets you compose looped music. It was written in 8,000 lines of C++ for the ARM processor, and gets about 30 downloads per month.
http://looper.mccormick.cx/

jsGameSoup - This is a javascript library for making games on the web without proprietary components.
http://mccormick.cx/projects/jsGameSoup

s-abstractions - This collection of abstractions for the Pure Data [DSP] prototyping language help users compose music using friendly, easy to use GUIs. This library gets about 30 downloads per month.
http://mccormick.cx/projects/s-abstractions

There is a list of some other software I have written at http://mccormick.cx/projects

Here are my social/collaborative coding profile pages on various services:



Conferences/Residencies/Speaking appointments

  PyConAU, August 2011
Location Sydney, Australia
What Presented "Infinite 8-Bit Platformer" - a user-created-content multiplayer video game developed in Python.
   
  pd-LA Launch, April 2011
Location New York City and Los Angeles, USA
What "Pd as your audio engine" workshops in NYC + LA.
Pd wiimote demo at Eastman-Fairfield Boys and Girls Club, Longbeach.
Pd patching circle at Crash Space, Culver City.
   
  PyCon Au, June 2010
Location Sydney, Australia
What "Python in Video Games and Multimedia Projects" about working on Infinite 8-bit Platformer and RjDj.
   
  FreePlay, June 2010
Location Melbourne, Australia
What 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
Location Birmingham, UK
What Gave a talk on how we are using Python and Django at RjDj, to break our application out of the iPhone jail.
   
  Electrofringe (This Is Not Art Festival), August 2007
Location Newcastle, NSW, Australia
What 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
Location Melbourne, Victoria, Australia
What Sat on the organisational committee and chaired a panel
   
  GO3 Electronic Entertainment Expo, Mar 2007
Location Perth, Western Australia
What Sat on a panel discussion about developing indie games in Australia
   
  Linux.conf.au, January 2007
Location Sydney, NSW, Australia
What 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
Location Geraldton, Western Australia
What 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
Location Perth, Western Australia
What 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
Location Canberra, ACT, Australia
What 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
Location Brisbane, Queensland, Australia
What Gave a workshop on developing for the Gameboy Advance.
Played a live set with "Chrism&Fenris".
   
  Australian Game Developer's Conferece, December 2004
Location Melbourne, Victoria
What Gave a talk entitled "Gameboy Advance: Using Open Source Tools".
   
  Electrofringe (This Is Not Art festival), October 2004
Location Newcastle, New South Wales
What 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
Location Melbourne, Victoria
What 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
Location Perth, Western Australia
What Performed electronic music on a weekly basis at The Kitchen in Leederville, Perth, with "Chrism&Fenris".
   
  Electrofringe (This Is Not Art festival), October 2003
Location Newcastle, New South Wales
What 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)
Location Perth, Western Australia
What "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.

Skill Summary

Non Technical Skills: Good communication skills.
Quick to learn new technologies and skills.
Excellent writing ability.
Conversational french.

Programming Languages

Python
C/C++
Javascript
Pure Data
PHP
Java
SQL
Perl
Shell scripting (bash)

Interests

Composing, performing, listening to music.
Futsal, indoor soccer.
Game development.
3d Modelling and 2d Design.
Digital electronics hobbyist.