Matthew Pimblott

ML Engineer and Software Developer

Machine Learning
Profile

About Me

Hi my name is Matthew, I'm a software developer and ML Engineer based in the UK. I currently work on reinforcement learning control systems at a startup in the energy sector. During my degree I spent a year working as a research software engineer specialising in deep learning image processing at the UK's National Synchrotron. I did my Bachelor's degree in Mathematical Sciences at the University of Bath.

Gridimp
Software Developer
Aug. 2024 - Present

I have been working as a software developer in the data science team at Gridimp since August 2024. Gridimp is a startup in the energy sector focused on automated control and analytics for grid-connected assets such as solar and battery systems. My key focus has been driving the research and development of a new series of battery control algorithms using deep reinforcement learning algorithms with the goal of improving return on investment and reducing carbon emissions.

I also led the development of reporting mechanisms for the company's data analytics platform to enable users to understand the day-to-day performance of battery systems.

Projects

Battery Value Analysis Tool

We aimed to understand how battery control systems reshape the demand profile to reduce energy costs and carbon emissions, accounting for inaccurate or missing data and a variety of possible site configurations. I worked to implement the core algorithm and create the backend Java service, integrating with the company's existing data processing pipelines. The project was deployed to AWS and now runs daily giving customers a better understanding of their energy consumption.

Reinforcement Learning Battery Control

I researched and prototyped a novel battery control algorithm applying deep reinforcement. I evaluated a range of approaches including value function approximation methods and transformer-based models to find the right approach balancing performance, flexibility and cost. We used MLFlow to manage the lifecycle of our models and created a pipeline to prepare models for site deployments. I also spent some time porting the existing algorithms from TensorFlow to PyTorch to enable access to new algorithms.

Market Forecasting

I worked on the development of a market forecasting model for day ahead energy prices to feed into battery control algorithms. This required exploratory analysis and evaluation of a variety of approaches.

ML Infrastructure

I helped maintain the existing ML infrastructure for the company's data analytics processes and deployed a new model training pipeline to AWS utilising containerised serverless compute. I created a pipeline to containerise and launch training and trialed infrastructure as code using terraform to improve maintainability and scalability.

Diamond Light Source
Placement Research Software Engineer
2022-2023

I completed a year-long industrial placement at Diamond Light Source in Oxford. Diamond is the UK's national synchrotron where high luminance light is used to study the structure of objects on a small scale. I worked as part of the data analysis team, assisting users in applying a computer vision technique called semantic segmentation. This is the process of classifying regions of an image into categories. At diamond this is applied to X-ray tomography data to identify features within scans.

I worked on two projects during the year. The first was a web user interface for segmentation tools aimed at helping users apply the technique to their own data. The second was a research project into a novel pre-training technique leveraging synthetic data and generative networks to enhance the performance of the models and reduce training times when working with X-ray tomography data.

Projects

Segmentation User Interface

I designed and developed a web user interface for the semantic segmentation tool, bringing the project from inception to deployment company-wide. I used VueJs to build the interface and FastAPI to build the backed integrating with the existing segmentation tools in development within the department. This involved working closely with colleagues to integrate with and understand the internal workings of the tools allowing me to hook into the package enabling the users to fully control their workflow from the web.

Generation-Augmented Training

I worked on a research project to develop a novel pre-training technique for deep learning models, building upon existing research to enhance performance in the context of X-ray tomography. This domain presents challenges due very large, low-contrast, high noise datasets. Due to the huge number of research areas covered at Diamond the content being studied also varies greatly from application to application. This means relevant training data is often sparse and the cost of operating the equipment makes obtaining more prohibitively expensive. I applied synthetic sinogram generation to augment the available training data and produced a successful internal demonstration of the technique.

Learn More

Research Support

I delivered regular training and support workshops for visiting researchers including personalised data analysis training. This was also an opportunity to gather feedback from users to feed into the iterative development of the product.

HPC, Kubernetes and Distributed Training

I used HPC resources via SLURM and GridEngine to conduct imaging processing and model training including conducting multi-gpu training of PyTorch models. I managed my own infrastructure for my projects on Kubernetes including GitLab runners. I packaged software for deployment company-wide on lab computers.