Software Consultancy

I have co-founded multiple startups, manage agile teams, and specialise (can and have taught courses) in Python, C++, CUDA, MATLAB, and a wide range of tooling: Git, Docker, CMake, Bash, and CI/CD (GitHub Actions, GitLab CI/CD, Bitbucket Pipelines). I also regularly wrangle with cloud orchestration (AWS, Azure, GCP), and use various markup flavours (Markdown, ReST, LaTeX, HTML+(S)CSS) alongside the chimera that is JavaScript.

While personally more inclined towards UNIX (I have a Debian phone), most of my work has a strong emphasis on cross-platform compatibility.

I would describe myself as a Computational Physicist who appreciates the importance of user accessibility (the latter includes ease of installation, robustness, keeping breaking API changes to a minimum, and most importantly impeccable documentation & metadata – including release notes, versioning and licensing). At the moment I’m more involved in project/product management than engineering.

Here’s a breakdown of the number of lines of open source code I’ve written:

Experience

Projects I have worked on include:

  • Physics simulations
  • Real-time machine vision for:
    • localisation
    • object tracking
    • augmented reality
  • Machine learning for:
    • image denoising and artefact reduction
    • classification (natural language processing as well as more esoteric)
    • predicting data warehouse usage patterns
  • Performance optimisation
    • converting script prototypes into compiled – optionally GPU-executable – code
  • Creating and maintaining software frameworks, including:
    • testing
    • continuous integration
    • software which does version control (because Git isn’t perfect)
    • system administration (user accounts, network security, managing publicly accessible servers)

Professional Affiliations

Organisations

Some organisations which I’ve worked with to release software.

Open source & open core:

Closed source & proprietary:

Free and Open Source projects

A few open source projects which I maintain or co-maintain.

Click here if you are interested in funding my efforts.

tqdm

A Fast, Extensible Progress Bar for Python and CLI

With millions of weekly downloads, this is one of the most popular Python packages worldwide

Python CLI GUI Jupyter Keras Pandas Tkinter Slack Discord Telegram Docker

CuVec

Unifying Python/C++/CUDA memory

Python buffered array ↔ C++11 std::vector ↔ CUDA managed memory

Python C++ CUDA SWIG

CIL

Core Imaging Library

Python C++ CMake Visualisation Medical Imaging

BrainWeb

Multimodal models of 20 normal brains

Python MATLAB Visualisation Medical Imaging

miutil

Medical imaging utilities

Basic functionality needed for AMYPAD and NiftyPET

Python MATLAB Medical Imaging Build Tools