Michael P. Jones
# Current Status
Consultant at Nordic Semiconductor.
# Bio
I have years of experience leading teams, creating software and developing web applications. I am a passionate developer with a love of programming languages.
I am enthusiastic about team organisation, structuring meetings, group culture, 1-on-1s and retrospectives.
# Career
-
# Consultant, Nordic Semiconductor
June 2021 - Present — Rust, Typescript
- Developing user-friendly tooling to facilitate working with Nordic Semiconductor's chips and embedded devices.
- Automated product release process reducing friction and leading to more regular releases and better feedback cycles.
- Initiated team 'Tech Chats' to work through technical debt, discuss development strategies and explore new technologies.
- Enhanced user experience by optimising initial load time through refactoring of asset management approach.
- Championed increasing linting checks and Typescript strictness to improve product reliability.
- Mentored junior team members through regular 1-on-1s to explore team practices, development techniques and new technology.
-
# Senior Software Engineer, Raytheon
September 2020 - June 2021 — Typescript, AWS
- Senior member of a cross-functional team providing cloud-based web development services within a high security environment.
- Full stack work from Terraform-driven serverless deployments to single page applications using the Node.js ecosystem, React & Typescript.
- Integrated team updates from tools and services into our primary communication platform to maximise developer awareness of progress and issues.
- Established updates and communication patterns to help onboard new hires and assist in platform training.
- Completed three separate cloud certifications: AWS Certified Developer Associate, AWS Certified Cloud Practitioner & Microsoft Certified: Azure Fundamentals.
- Mentored junior team members through regular 1-on-1s to better integrate with team-based development strategies and approaches.
-
# Personal Development
January 2020 - September 2020 — Elixir, Phoenix, Postgres, Stripe
- Set up & run contact-stack.com as an independent business and end-to-end learning opportunity. Designed, implemented & marketed the full product.
- Self-driven work, independent learning and product focused prioritisation.
-
# Senior Engineer & Team Lead, Zaptic
April 2015 - January 2020 — Typescript, React, Elm, GitLab, Postgres
- Fast paced, quick iteration start-up environment scaling from four people to a company of sixteen - gaining several rounds of investment in the process.
- Part of customer facing meetings, training days and on-site visits to upskill users and enhance the feedback loop for product improvements.
- Led team of four developers, coordinating work and providing support, 1-on-1s, learning opportunities and guidance.
- Pioneering the adoption of Typescript & Elm in a stack with server side development, database interactions and AWS infrastructure.
-
# Web Developer
October 2013 - April 2015 — Python, Django, Typescript, React, Elm, Docker, Postgres
- Sole developer of tangotimetable.com.
- Designed and implemented community solution for dance event coordination & scheduling to reduce conflicts in the scene and improve visibility for all organisers.
- Django-based Python web application with React & Elm front-end.
- Responsible for the full stack from Linode hosting with Docker containers deployed via Ansible to the application code and front end design.
- Web Developer at Radius Payment Solutions.
- Lead development of analytics focused web dashboard for a vehicle telemetry product.
- Implemented caching system to improve dashboard page load times and reduce dependence on the 3rd party API.
- Championed workflow improvements around code review, linting and technology adoption (React).
-
# Software Developer & Team Lead, Weta Digital
September 2010 - October 2013 — C++, Python, OpenGL
- Lead developer designing and architecting a natural tree growth system for use in the Peter Jackson Hobbit films.
- Coordinated team and developer resources to manage requirements from various departments and hit deadlines as needed.
- Close collaboration with key artists to guide and respond to workflow requirements.
-
# Research & Development Technical Director, Animal Logic
February 2010 - August 2010 — C++, Python, Shell
- Implemented a command line navigation and shortcut system in Python which was adopted company wide leading to productivity improvements for artists and managers alike.
- Delivered technical presentations on source control and workflow improvements to a cross-company audience.
- Debugging and improving legacy particle rendering and visualisation tooling in C++.
-
# Research & Development Programmer, Double Negative
October 2007 - January 2010 — C++, Python, Flask, Sqlite
- Took the initiative to conceive and implement a packaging solution with database support, commandline access and web interfaces to resolve long standing problems with distribution of internal tools and assets across projects.
- Planned and delivered courses on Python programming and use of the shell to onboard new hires and upskill artists in the company.
- Worked closely with teams across the company and liaised with decision makers for core tooling to help develop and guide internal workflows.
-
# Technical Director, Framestore
November 2006 - October 2007 — C++, Python
- Visual effects and pipelining on Oscar & Bafta winning film The Golden Compass.
- Designed and architected a C++ spring-based fat dynamics system with intuitive texture driven controls.
- Rapid turn around on collaboration with the users from other teams and departments, providing support and extending the application based on feedback.
# Education
-
# National Centre for Computer Animation, Bournemouth
2005 - 2006
Distinction - MSc Computer Animation. Masters Project: Evolving Behavioural Animations using Genetic Programming.
-
# Lincoln College, University of Oxford
2002 - 2005
1st Class Physics Degree (BA) - Top Student in the BA class. Recipient of Scott's Prize for Best Performance at BA and Stansbie Prize for achievement at finals.
# Certifications
- 2020-10-29 - AWS Certified Developer Associate
- 2020-09-24 - AWS Certified Cloud Practitioner
- 2020-09-30 - Microsoft Certified: Azure Fundamentals
# Talks
- 2021-02-02 - Git Internals @ Raytheon
- 2020-11-03 - Getting Started with Elm @ Raytheon
- 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
# Posts
- 2021-04-03 - On Git Commit Messages
- 2020-04-29 - Adding a custom watcher to Phoenix
- 2020-03-17 - Mixing Gleam & Elixir
- 2020-03-17 - Introducing Dialyzer & type-specs to an Elixir Project
- 2018-02-16 - Moving from elm-validate to elm-verify
- 2017-12-08 - Right clicks & Elm
- 2017-10-24 - Django To Phoenix (6 part series)
# Videos
- 2020-08-05 - Building a Pixel Editor in Rust & WebAssembly (and Javascript)
- 2020-07-22 - Introduction to writing an Elm app - Hangman Game
- 2020-06-27 - Exploring Gitk
# Profiles
# Websites
# Contact Stack
Stay in touch with your friends through regular reminders over time frames that you control. Built with Elixir & Phoenix.
# Dance Timetable Network
Community calendaring websites built with Django & React.
# Open Source
# 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
Docleaf
A Doxygen-Sphinx bridge powered by Rust
A re-write of Breathe to use Rust for the majority of the parsing and logic with a thin compatibility layer to Python writing using PyO3.
Languages: Rust, Python
# Other
Matcha
Text template system for Gleam.
Rust project parses a basic template format and outputs Gleam modules with 'render' functions that can be imported and called to render the template with different parameters.
Language: Rust, Gleam