Michael P. Jones

Current Status

Available for contracting in Manchester, UK, or remote.

Bio

I have years of experience with Typescript, Javascript, Elm, Python & C++. I have a strong interest in functional programming languages and a growing knowledge of Elixir & Rust.

I am enthusiastic about team organisation, structuring meetings, group culture, 1-on-1s and retrospectives.

Career

  • Personal Development

    January 2020 - Present

    Developing tangotimetable.com and other products. Interested in opportunties to support teams in a technical and organisational manner.

  • Senior Engineer & Team Lead

    April 2015 - January 2020

    Senior Developer at Zaptic. Responsible for front end & back end work on a process execution platform in a start up environment. Managing an Elm, Typescript & Postgres stack with exposure to user interfaces, server side development, database interactions and AWS infrastructure.

    Led of team of 4 developers, coordinating work and providing support, 1-on-1s, learning opportunities and guidance. Key contributor to improving company culture around meetings, documentation and tooling.

  • Web Developer

    October 2013 - April 2015

    Sole developer of tangotimetable.com. Designing and implementing a Django-based Python web application for building community calendars. Front end created with React.js & Elm. Responsible for the full stack from Linode hosting with Postgres & Apache on Ubuntu Server with Docker containers to the application code and front end design. Newer functionality has been added with Elixir & Phoenix.

    Web Developer at Radius Payment Solutions. 4 month contract helping to launch a new initiative around their vehicle telemetry product. Providing a web dashboard for analytics and configuration written with Django and communicating with 3rd party telemetry APIs.

  • Software Developer & Team Lead, Weta Digital

    September 2010 - October 2013

    Responsible for leading a team to design and create a natural tree growth system for use in the Peter Jackson Hobbit films. Coordinating with department leads and artists over features, bugs and release schedules.

    Application and tool development in C++ and Python in a world leading visual effects studio. Extensive use of the Autodesk Maya C++ SDK. Qt/Python interface development to improve the artists' workflow.

  • Research & Development Technial Director, Animal Logic

    February 2010 - August 2010

    Supported effects team artists on animated feature including C++ rendering tools, particle system visualisation and implementing a command line navigation and shortcut system in Python which was adopted company wide.

  • Research & Development Programmer, Double Negative

    October 2007 - January 2010

    Responsible for maintaining and extending the proprietary Maya-Renderman interface. Worked closely with different teams, implementing features to enhance the workflow and quality of the production. Conceived and implemented development and pipeline tools with database support, commandline access and web interfaces. Planned and delivered courses on Python programming and use of the shell for artists in the company.

  • Technical Director, Framestore

    November 2006 - October 2007

    Visual effects and pipelining on Oscar & Bafta winning film The Golden Compass. Created a C++ spring-based fat dynamics system for the digital bear characters. Involved interacting with the users, providing support and extending the application based on feedback.

Talks

  • 2018-03-19 - Getting Started with Elm @ Lambda Lounge
  • 2015-06-15 - Introduction to Rust @ Lambda Lounge
  • 2015-02-16 - React from a Functional Perspective @ Lambda Lounge
  • 2014-12-05 - Programming in Visual Effects @ University of Bolton
  • 2014-10-18 - Programming in Visual Effects @ BarCamp Manchester

Profiles

Websites

Dance Timetable Network

Community calendaring websites built with Django & React.

Open Source

Computer Graphics

Alembic FS

A FUSE filesystem for Alembic files.

It allow you to mount an Alembic file as a directory and explore the contents as a hierarchy of subdirectories and files.

Language: C++

Kd-tree

A basic implementation of a Kd-tree.

Templated on the data type and number of dimensions.

Language: C++

Sphinx

Breathe

A Doxygen-Sphinx bridge.

An extension to reStructuredText and Sphinx which is able to read and format the contents of Doxygen XML files. It extends Sphinx's support for displaying language & API documentation to all the languages support by Doxygen. Development has a strong emphasis on supporting C++.

Language: Python

Sphinx to Github

Convert Sphinx output for use with Github pages

A Sphinx extension and command line tool that prepares the output of Sphinx to be suitable for use with Github pages.

Language: Python

Minor

Porter

A map-based import hook for Python.

Supports encoding the module name and its location into a PYTHONPATH-like environment variable which is parsed at runtime and used for faster imports. Aimed at avoiding the standard Python linear search through the PYTHONPATH to find a module which can be slow for large numbers of entries over a network.

Language: Python

Sphinx-xref

Restructured text role for keyword based external links.

Enables a documentation strategy in which the maintainers of a project can publish a Python module with up to date links for documentation based on keywords. Other projects wanting to link to the appropriate documentation only need to use the keywords and latest published module to stay up to date.

Language: Python

Maya Plugin Handler

Helper classes for initializePlugin & unintializePlugin.

Aims to reduce code duplication between the two associated functions by abstracting down to a single set of calls.

Provides inheritance based approach as well as experimental basic template meta-programming approach.

Language: C++

And more...