Hey, I'm Josh. I'm interested in AI, technical AI safety, biomedical
computing, MRI, computer programming, teaching and magic. I'm a curious
and driven person who enjoys being immersed in difficult problems. When
I'm not working or teaching I enjoy reading, surfing, hiking and
swimming. I consider myself empathetic and a good listener.
I'm always looking to learn new things and meet new people.
MSc thesis
My master's was at the intersection of computer science and
healthcare. My thesis was on cardiac MRI segmentation, with a
particular focus on figuring out how much data we need to train viable
segmentation networks.
Click here for a copy of my thesis.
Mathigon / Amplify Education
I worked at Mathigon (now Amplify Education) as a fullstack engineer.
I've worked extensively on the
Polypad, a tool for making
maths education more playful and interactive. My biggest contribution
has been implementing the real-time collaboration functionality.
Recurse Center
In 2024 I spent 3 months at the Recurse Center.
I worked on a variety of different projects, but feel most fortunate to have met and worked with some truly
awesome people. Relationships are the most important things in life
and I feel lucky to have made some great friends at RC.
Final undergraduate project
My project was focused on image segmentation for use in training
semantic segmentation neural networks, ultimately for use in
self-driving cars. I took two approaches. First, a purely heuristic
approach (written in Matlab), which leveraged LiDAR data to form
hierarchical depth clusters, from which objects of interest could be
segmented. This approach was extended to incorporate a GUI. Second, a
neural network approach (using Tensorflow) which first identified
coarse bounding boxes around objects of interest and then refined the
bounding boxes by hierarchical clustering of LiDAR data.Click here for a copy of my project.
Compressive Sensing (CS)
As part of my 4th year Digital Signal Processing course I elected to
do self-proposed topic in Compressive Sensing (CS) - a means of
allowing for sub-Nyquist sampling to effectively be performed. I took
a mostly investigative approach, attempting to understand and
implement CS. I implemented sub-Nyquist reconstruction in Python and
MATLAB.Click here for a copy of my project.
Juggling counter
I like juggling. I wanted to make a program that counts the number of
throws (and by implication catches) for me. Most approaches either use
(a) a predefined ball colour (e.g. green) which is then filtered out
from the rest of the image for tracking, or (b) a preset number of
balls.
By using background image subtraction I was able to implement an
approach that can count any number of balls of any colour. Sweet :)