James McPherson

About me

Brisbane, Australia

Summary

Unix systems programmer and software engineer specializing in C and Python. I take big pictures and create architecture to make them a reality. I redesign, refactor and reimplement, I remove inefficiencies and create the infrastructure you need to deliver high quality and high performance solutions. All tests must pass, no matter the architecture. Equally happy with Mercurial and Git. Efficient, expressive code and build systems are my passion. Code review and mentoring are core values. I love sharing what I’ve written and learnt. Cycling in beautiful Brisbane as much as I can. I work remotely at GMT+10.

Favorite Python Packages:

Flask, BeautifulSoup

Experience

I've been using Python since early 2010, mixing and matching with C as a systems programmer working as part of the core Sun and later Oracle Solaris development group.

Major projects:

  • A complete rewrite of the core Solaris build system, taking it from a monolithic and bug-ridden shell script system, to a modular and extensible orchestrator written in Python. I architected the project (we called it "Project Lullaby") and lead the development team of 4 for 4 years to deliver this largest ever project integrated into Solaris. We achieved a ~20% build time improvement, accelerated our move to using Jenkins CI/CD (away from manually-scheduled incremental builds), and made every engineer's job easier.
  • Rolling out the Project Lullaby methodology to an internal fork of the codebase, producing similar improvements in build time and reducing complexity.
  • A microservice using CherryPy and cx_Oracle (the Python bindings for the Oracle RDBMS) to enable automatic updates to our bug tracking system when changes were integrated
  • Designed and implemented userspace APIs and a powerful data extraction language for the Solaris Analytics feature, using Python's ctypes
  • Designed and integrated a utility using the Oracle Solaris Analytics feature which monitored Oracle RDBMS performance statistics. This used the Python bindings which I designed and implemented, was multithreaded and supported multiple database instances.
  • Used the Python userspace API to Solaris Analytics to write an example tool which scrapes Apache webserver logs and imports that data, another tool (multi-threaded, multi-instance) to extract Oracle RDBMS built-in performance data and make it visible through the web-based UI. Exposed performance details of the SPARC M7-series Data Analytics Accelerator in the web-based Solaris Analytics UI.
  • Planned and delivered phase 1 of the project to migrate Solaris' Python2 codebase to Python3. Established milestones and assembled the team for the remaining 3 phases.

I have presented on those Python APIs for internal conferences and technical training. I also spoke at Kiwi PyCON on why Python is the preferred upper-level systems programming language for Solaris and demonstrated some of the ways that we exposed lower-level functionality and features using Python.

Skills

Backend Development, Flask, Git, Linux, Mercurial, MongoDB, Test-Driven Development, Web Scraping

Joined: August 2019