Jonathan Woollett-Light
15 Claremont Terrace, York YO31 7EJ
+44 7941 079483
jonathanwoollettlight@proton.me
A little more than an introduction to
I am a software engineer with 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).
Work experience
Amazon Web Services
Cambrigde - Software development engineer
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
Wotton-under-Edge - Software placementI worked on building C++ components forming an internal standard library. This involved extensive testing and performance consideration.
Renishaw
Wotton-under-Edge - Work experienceMy work experience focused on development with FPGAs and VHDL.
Education
York University
PhD in PhysicsI am currently undertaking a PhD in Physics at the University of York with the research topic of 'Neuromorphic Computing for Resource-Efficient Autonomous Systems'.
Swansea University
MEng Computing & Bachelors 2.1I competed with the university Taekwondo society, at times internationally.
Brighton and Hove Sixth Form College
A levels - Mathematics: B, Modern History: B, Computer Science: CI 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
GCSEs 11 A*-C including mathematics and englishI founded the computing club, the debating club and was elected deputy head boy by students.
Programming experience
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.
CI Metrics
November 2023 - Current, Rust JavaScript, & HTML+CSSA product to track performance metrics (also known as continuous benchmarking) and integrate with GitHub. An Axum backend deployed to AWS EC2 with a MongoDB database, implemented with ~3.5k LoC. Currently development is focussed on experimentation with optimization algorithms for anomaly detection to produce a solution that accomplishes what AWS Lookout for Metrics does, but at a much lower cost and complexity. Aimed at possible wide adoption by developers. This project 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.
My programming language
August 2023 - Current, Rust & Assembly
A language aiming to be as simple as C, as safe as Ada Spark and as convenient as Python. Formal verification is integrated into the compiler supporting full type inference removing the need for any generics/templates.
My web server
February 2023 - Current, Rust
A server framework implementing live migration. 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
December 2021 - January 2022, Rust
Auto-differentiation library with code transformation for both forward and reverse auto-diff.
Mathematics Site
April 2021 - June 2022, Rust, Python, JavaScript & HTML+CSS
A PWA to automate mathematics digitisation, enabling automated marking. An Actix backend using a PyTorch semantic segmentation model, deployed with AWS, with a MongoDB database. This is my largest personal project at ~32k lines and ~170k line changes. This project was a victim of my student ambition while in university, I came to the conclusion that while I had learned a great amount and built a cool project it was too big to make it into a valuable product on my own. This led me to focus on smaller but more complex projects moving forward.
GLSL BLAS
September 2020 - April 2021, GLSL & C++
GLSL code for non-complex BLAS operations with Vulkan. My final year masters project. I took advantage of modern C++ features to offer extensive compile-time evaluation to ensure shaders were as correct as possible.
BLAS website
September 2021 - October 2021, Python, JavaScript & HTML+CSS
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.
Cogent
September 2019 - March 2021, Rust
A simple library for training simple neural networks, a small Keras. A component of my final year bachelors project.
Genetic Draughts AI
2016, C++
A simple tree search program to play draughts using a genetic algorithm to judge board positions. My first ever venture into optimisation, I still remember the moment it beat me.