Jonathan Woollett-Light
York, United Kingdom
+44 7941 079483
jonathanwoollettlight@proton.me
JonathanWoollett-Light
jonathan-wl
A little more than an introduction to
I am a PhD student in Physics at the University of York with the research topic of 'Neuromorphic Computing for Resource-Efficient Autonomous Systems'. This entails investigation of a wide range of AI/ML/RL algorithms and their respective hardware accelerators with particular focus and consideration of neurmorphic hardware and algorithms, and how they compare to more traditional ANNs. I have a specific interest in low level systems and tooling. I am a frequent Open-Source contributor having contributed to ziglang, rustlang and popular Rust crates. I have a small educational YouTube channel where I very infrequently post videos about technical topics I find interesting (A little more than an introduction to - YouTube).
Experience
York University
April 2025 - Current
I am currently undertaking a PhD in Physics at the University of York with the research topic of 'Neuromorphic Computing for Resource-Efficient Autonomous Systems'.
Amazon Web Services
April 2022 - June 2024
I worked on Firecracker, a memory efficient, fast booting VMM that
allows AWS lambda to be profitable.
Firecracker supports snapshotting a VM; a VM can be saved and
restored much faster than booting a new one and much faster than any
other VMM. I spent time working on the safety and configurability of
this feature, this involved evaluating whether a snapshot could be
safely restored on a given CPU considering its specified features
and security mitigations, and those of the target. This involved
analysis of the performance and security effects of CPU features on
both x86-64 and aarch64, and ensuring we had an implementation that
aligned with the specifications.
Firecracker supports a feature called CPU templates that allows a
user configurability of most of how the CPU is presented to the
guest OS. This work required understanding the Intel x86-64, AMD
x86-64 and Arm aarch64 specifications. Development involved thorough
discussion with customers and within our team both focused on
usability, security and robustness. I rewrote how Firecracker
handles static CPU templates to support runtime CPU templates and
wrote the foundational implementation for runtime CPU templates. I
also implemented thorough compatibility checks for x86-64.
I was the owner of an initiative to performance test Firecracker in
production-like scenarios, through this we discovered and fixed
significant performance regressions that may have costed AWS Lambda
millions of dollars if they went live. This work involved
coordinating across teams and diving deep into the deployment and
management of resources to setup the required environment and
execute the useful tests.
In this role I and another team member adopted responsibility for
maintenance of the
rust-vmm
open source organization that maintained components used by
Firecracker and other VMMs such as
cloud-hypervisor.
Renishaw
July 2018 - September 2018
I worked on building C++ components forming an internal standard library. This involved extensive testing and performance consideration.
Swansea University
2017 - 2021
I competed with the university Taekwondo society, at times internationally.
Renishaw
A few weeks in 2016
My work experience focused on development with FPGAs and VHDL.
Brighton and Hove Sixth Form College
2015 - 2017
I did an Extended Project Qualification discussing the question 'Is the development and completion of an AGI (Artificial General Intelligence) likely within the next 80 years?'.
St Andrew's High School
2011 - 2015
I founded the computing club, the debating club and was elected deputy head boy by students.
Portfolio
I am an expert in Rust, I am experienced in C++, C and Python, and I am familiar with Zig, Ada, aarch64 asm, RISC-V asm, JavaScript and CSS3+HTML5.
This website: A simple website serving the latest version of my curriculum vitae. A perfect Google Lighthouse score, light and dark mode support, less than 100kb in size, and neatly prints to PDF.
Dating app: A dating app that learns user specific traits and preferences to optimally match pairs. Applying ML with PyTorch to train models capable of extracting user features from pictures and preferences from swipe data supports matching users based on learned user specific features (e.g. matching users based on presentation of religious clothing). The server functions as an efficient monolith capable of handling all requests on a single Rust Axum server with in-memory stores and a local SQL store, achieving near 100% system utilisation; supporting all the functionality of a typical tinder-like dating app.
My programming language: A procedural programming language with extensive formal verification, infallible type inference and next-gen compile-time evaluation. The compiler is written in Rust and compiles to RISC-V.
CI Metrics: A website to track performance metrics (continuous benchmarking) and integrate with GitHub. A Rust Axum backend with a MongoDB database. Development focussed on experimentation with algorithms for anomaly detection to produce a solution that accomplishes what AWS Lookout for Metrics does, but at a much lower cost and complexity. This was motivated by my experience working on Firecracker at AWS where regressions that could have cost millions in production were almost missed, and certainly some were.
Live migration web server: A Rust server framework where a new server process can succeed a local old process in milliseconds with shared memory (or remotely in seconds over TCP) without dropping client streams. This can be used as a database server with in-memory data storage akin to Redis where queries are compiled as new functions.
RUST-AD Auto-differentiation library with code transformation for both forward and reverse auto-diff written in Rust.
Mathematics Site: A mathematics website for automated marking. Built with a Rust Actix backend using a PyTorch semantic segmentation model, deployed with AWS, with a MongoDB database.
GLSL BLAS GLSL code for non-complex BLAS operations with Vulkan. My final year masters project. Using modern C++ compile-time evaluation to validate shaders.
BLAS website: A website documenting BLAS operations. While working on GLSL BLAS I found the older website used to document BLAS to be a little uncomfortable, so I made this. I've also added some Python Manim animations to illustrate the operations.
Cogent: A simple library Rust library using ArrayFire for training simple neural networks; like a small Keras. A component of my final year bachelors project.
Genetic Draughts AI My first ever venture into machine learning and optimisation. A simple tree C++ search program to play draughts using a genetic algorithm to judge board positions. I still remember the moment it beat me.