Mainly using Java, Rust and Python.
I have projects scattered over many source hosting sites, so for want of some time spend consolidating them, the highlights:
A rust crate for reading data serialized using Java's built in serialization format. It allows safe reading of data without the security risks associated with reading untrusted data in Java.
Python library for requesting input from users in the form of multiple choice or confirmation selections.
All development at DLS is open source where possible so much of my work is available publicly
A large, Java application used as the main acquisition platform at diamond for almost all beamlines for the past 20 years.
The core application is available in openGDA/gda-core
The new, service based acquisition stack is hosted in the DiamondLightSource organisation. Key projects I have been involved in are
- numtracker - A central service to provide consistent file naming, numbering and paths across different acquisition applications.
- blueAPI - Wrapper service around the BlueSky library from NSLS-II allowing remote access.
Written at Diamond out of personal need to streamline management of changes across multiple repositories. Run git commands on multiple repos and switch multiple branches at once to match topics in Gerrit.
A few of open-source libraries and applications I use and contribute to when I can