Skills
Programming Languages
ML & Scientific Computing
Tools & Technical
Domains
Personal Projects:
jaxhrl – Hierarchical RL in JAX
jaxhrl is an open-source codebase of hierarchical reinforcement learning algorithms implemented in pure JAX, which I built with another intern at the Bath Reinforcement Learning Lab. It provides reproducable verification of each algorithm based on the original paper's experiments. I wrote the algorithms with resource constraints so optimised all algorithms to work on minimal VRAM to avoid OOM errors. When running on an H100 GPU with 1024 environments in parallel it could complete 100,000 environment steps a second.
View jaxhrl on GitHubToy Interpreter
In July 2025 I wrote a Toy Interpreter in Python from scratch without referencing formal grammar theory, abstract syntax trees or existing interpreter architectures for educational purposes. My aim was to discover fundemental compiler and interpreter concepts through hands-on creative problem solving and experimentation to provide a deeper insight for the why formal methods exist rather than copying them from textbooks.
Features at a glance:
- Expression evaluation with proper operator precedence (using Reverse Polish Notation)
- Nested control structures with stack-based management
- Multi-pass design: tokenization → parsing → execution
- Dynamic typing with explicit type declarations
- Simple but complete language supporting variables, conditionals, loops (via goto), and I/O
Some example programs included a binary search guessing game, the Euclidean algorithm, calculating the first n Fibonacci numbers, approximating Eulers number to arbitrary precision amongst others.
View the Toy Interpreter on GitHubCompetitive Programming & Problem Solving
I enjoy writing solutions to programming problems on websites such as Project Euler, CodeForces and LeetCode. I love the problem solving for the higher number Project Euler problems, utilising concepts from mathematics such as number theory or even graph theory. I also enjoy occasionally joining programming competitions on CodeForces. I tend to write my solutions in Python but I have started writing several in Rust for its efficiency.
View my solutions on GitHubEarlier Game Development
When I was 13 I built games in Unity and C#. In 2021 I released several mobile games on the Google Play store – Jesting Jetpacker and Ball Hop – which taught me about shipping and maintaining releases and optimising across devices. In 2024 I made Quasar Quest, an endless arcade game set in a procedurally generated galaxy with automatically generated missions and an in-game upgrade economy. The code lives in my Unity C# repository.
Professional Experience
Bath Reinforcement Learning Lab – Research Intern (Summer 2026)
A paid internship in hierarchical reinforcement learning. With another intern I built jaxhrl, an open-source library of hierarchical RL algorithms in JAX, after grounding the work in the foundational and current literature. We benchmarked the algorithms across a large suite of environments and are co-authoring a paper on the results. Separately, I ran graph clustering algorithms on state-transition graphs to build skill hierarchies for a PhD student's NeurIPS submission, and maintained the group's codebase with integration and unit tests.
Bath Reinforcement Learning Lab – Volunteer Research Assistant (2025 – Present)
Ongoing volunteer work with the lab on skill hierarchies in reinforcement learning. I attend research meetings, help code environments, organise the codebase and keep up with relevant papers, and will continue this alongside my studies.
Education
Currently a student at Bath University studying Computer Science and Artificial Intelligence. First year I got an average result of 80% (a first class).
A Levels: At A Levels I achieved A*A*AA in Maths, Computer Science, Further Maths and an EPQ in machine learning. I achieved the top mark in my school in Maths and Computer Science.