chris@mccormickit.com

+61 403 399 386

github/chr15m

The forest (will travel)

What can I do for you?

Build your MVP or prototype.

I'll build your prototype or "minimum viable product" with a rapid turn-around and lower cost. You'll get a streamlined product to show to investors or get a better handle on your ultimate software solution. I've been building software products for two decades and one of my favourite things is to rapidly turn out functional prototypes for startups and entrepeneurs. Contact me to build your prototype.

Write your code.

If you need a disciplined gun-for-hire senior software developer, I'm your guy. With experience in more than 10 programming languages running on a broad swathe of different deployment environments I can hit the ground running in your codebase. I've worked on mobile, web, desktop, embedded systems, blockchain, and cryptography; you name it. There are few things I find more fun that writing code so let me at it! Hire me to write code.

Design your technology stack.

I can help you architect and build a scalable, maintainable, cost-effective software stack. Let me help you find efficiency gains and cost reductions in your existing system architecture or design something solid from scratch. My decades of work with open source software and real businesses has given me a good insight into what works and what doesn't. Let me help you navigate the decisions required to get there. Hire me as a consultant.

Get your outsourcing right.

I'll show you my secret formula to making outsourcing work for you. With several years experience outsourcing to remote developers I have a good grip on how to do it right and get your product built at lower cost. It is suprisingly easy to do outsourcing wrong and I can show you how to avoid the pitfalls and build a high-functioning team of distributed developers. Hire me as a consultant.

Fine tune your development process.

I can help your team produce software more effectively. It's possible to tune up your development process to ensure less bugs, smoother deployments, and efficient, cost-effective development. Your team will get access to a wealth of domain-specific knowledge from my decades in the software development trenches, and advice to get them ahead of the game. Let me work with you to massage your team's development process into shape with a few simple changes. Hire me as a consultant.

Make contact

The easiest way to reach me is by email at chris@mccormickit.com - drop me a note.

I currently reside in Western Australia but I've worked for clients in London, New York, Sydney and elsewhere. I can work remotely and/or come in-house for short-term consultation gigs.

15+Years of experience
10+Programming languages
1k+Git commits
per year

Python, JavaScript, ClojureScript, 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 - 2018 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)
    (February 2013 - 2018 ongoing)
  • 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
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

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

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 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.

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