Summary
Machine Learning Engineer at InstaDeep London. Skilled in Python, Go and C++. Distinction from Imperial College London in MSc Artificial Intelligence, and a First Class BSc (Hons) Mathematics degree from the University of Southampton.
Machine Learning Engineer at InstaDeep
August 2022 - Present
Developed a Distributed Reinforcement Learning (RL) library as a member of the Research team working with the Product teams, using JAX, TensorFlow, Ray and DeepMind libraries. Accomplishments using Python and C++:
- Promoted as a result of achieving for all future experiments, 95% CPU and 39% GPU cost savings whilst reducing training time by 61%, for one of the applied revenue-making products. Primarily attained by implementing a distributed Asynchronous Proximal Policy Optimisation (APPO).
- Increased throughput by 321% and reduced all experiment costs by 60% by implementing a C++ gRPC server hosting GPU TensorFlow functions called by CPU only machines.
- Developed a multi-phase pipeline, starting with Behavioural Cloning, followed by Transfer Learning into Curriculum training, in partnership with one of the product teams.
- Wrote a Transformer in JAX and successfully trained it for one of the product teams.
- Used SEED-RL, a centralised inference server, for scaling the training of billion parameter models.
Software Engineer at Levelise
April 2021 - August 2022
Improved real-time monitoring and data aggregation of IoT devices used for controlling thousands of domestic batteries hosted across the UK and Australia for electricity grid stabilisation services. Accomplishments using Go and Python:
- Sped up by 10x the data aggregation of near real-time device per-second statistics.
- Achieved a 15x faster run-time for calculating daily statistics about their IoT devices.
- Analysed data and developed methods to automatically classify their customer IoT devices with fault codes and automatically notify the customer support team. I increased the range of faults that we could detect by 80%.
Notable Achievements
- Water Simulator - real-time Height-Field Water Interactive Physics Simulator. The simulator step is compiled to XLA from JAX and rendered in OpenGL, reaching ∼350 frames per second.
- MNIST VAE - graphical user interface for experimenting with different Neural Network architectures in JAX to train a Variational Auto-Encoder on MNIST whilst being able to dynamically adjust hyperparameters at run-time. Bundled as a zero dependency Mac app or Linux Snap package.
- Maze RL - top 10 in a competition with 139 in a Deep Q-Learning Maze solving coursework at Imperial College London powered by PyTorch and OpenCV.
Publications
- ICLR 2024 - Jumanji: a Diverse Suite of Scalable Reinforcement Learning Environments in JAX
- UNSURE 2020 - Geometric Deep Learning for Post-Menstrual Age Prediction Based on the Neonatal White Matter Cortical Surface