I am software engineer with a background in artificial intelligence, full stack development and nanotechnology. I am motivited primarily to learn and evolve my skillset, and to challenge myself with ever-increasingly difficult puzzles.
Through my multi-disciplinary work, tertiary study, and self-driven interests, I have established a high level of confidence in: Scientific programming and data science, formal logic verification, embedded-systems programming, native mobile development, video game design/development, and full-stack web development.
Although my true loves are data structures and algorithms, my playful, curious and engaged temperament has driven me to pursue so many other creative avenues. As such, I’m an experienced musician, 3D modeller, video editor, animator, surfing teacher, data scientist, nanotechnologist, mathematician and physicist.
I am looking for an environment which provides the aforementioned challenges, and for a team who not only strive to innovate, but who also share my passion to maximise learning in every project.
Science / Engineering
Undertaken at the University of New South Wales, this project focused on a modified version of Optical Tweezers, using two lasers, columnated and colinear. My roles included synthesising gold coated silicon nanoparticles, measuring the mechanical trapping force of the tandem lasers on these particles, and constructing a mathematical model of this force via computer simulation in Matlab.
Quantum dot enhanced photovoltaic medium
Undertaken at the University of New South Wales, this project aimed to synthesise and study a novel molecular system for use with solar cells. Fluorescent molecules (specifically tetraphenoxyperylene) were successfully bound to Quantum dots (comprising CdSe/ZnSe/ZnS), and the hypothesised energy transfer between them was observed. Such molecules, when aligned in a substrate material such as a plastic, can act as an efficient light guiding system. Fewer PV cells can therefore be used (at the edges of the material), and these materials could replace existing tinted windows etc. to collect energy which would otherwise be reflected or radiated as heat.
Personal Golang Projects
This is a project I originally implemented in python, and rewrote in golang to
learn and compare the merits of either implementation.
Given N people, a starting location (eg their work), end location (eg their home),
and the modes of transport used on each leg, Middle Maps returns an address to meet up.
In practice, it doesn't just minimise group travel time, it also takes you and
your friends to places you mightn't have otherwise experienced!
It's efficient and fun.
Forex Gobots is a personal project and experiment for the purpose of expanding my experiences with machine learning and Golang. It analyses 100 currencies in parallel, placing market orders when optimal. The algorithm is heavily paramatrised to facilitate linear regression machine learning.
Game design and development
The game about making waves. Players compete to race and jump their cable cars toward the control tower, where they themselves become part of the level. The other players must then fight against the tide to reach the tower and debunk the controlling player. Hold on to the tower long enough to win the round!
This game plays with the concept of emergent behaviour and swarm mentality. Guide a collection of characters called 'sprites' through the open world to discover puzzles, unlock abilities, control the elements and grow the swarm to increase its puzzle solving potential. When the balance of nature is threatened, it falls to the swarm to restore it. Undetectable by human eye, these creatures work behind the scenes to protect the world's delicate equilibrium.
Do the eye charts in doctors' offices contain hidden words? Hidden messages? This game thinks so, and invites players to find as many as they can by joining adjacent letters together. Fewer possible words can be formed at the peak of the triangle, which is why letters at the top are worth more points! Letters disappear after use, and those in the rows beneath bubble to the top. This allows for deep strategy, as players try to massage long words to the top to max out their score and show off their 20/20 vision.
Originally built as a gift for my grandparents, who couldn't get enough of their favourite word game. With them in mind, my design emphasises accessibility through its minimal and high contrast interface. Easier game modes also make the game accessible to minds of all ages by hinting the first letters of hidden words. As a lover of data-structures, I implemented a custom trie to facilitate the creation of randomised games from scratch with sublinear time complexity, O(log n). My grandparents probably don't mind waiting for loading screens, but I can't stand them (the loading, not the grandparents).
A push, pull and twist on the classic arcade game. You and a friend join 'forces' to
dodge an onslaught of asteroids. Smaller asteroids may seem easier to avoid, but they
move faster than their bigger siblings. Each asteroid you avoid adds a point to the
pool. But the silence of space changes people... You realise that your friend intends to take all the
points for themselves, and as the pool fills up, the tension rises.
A cooperative effort gradually shifts to a deadly sumo match. Try to push your opponent
into an asteroid to secure those precious points. Most points after 3 rounds wins!
Built on my own 2D game engine using Java and OpenGL over a weekend.
Rubik's Cubes might seem easy to first time observers. Just match the colours? Easy peasy, right?!
This game plays with a similar concept: A single action has multiple consequences, and
planning ahead is required to avoid accidentally undoing all your hard work.
I like to think of this as the Rubik's Cube for flatlanders.
For the sequel: 4 dimensions. The Rubik's Hypercube.
After an æon of peace, the power of the ziggurats has been seized by a race of
shapeshifting aliens. The guardians awaken under the guidance of up to 4 friends,
to vanquish the intruders, and protect Earth from eternal servitude.
Built in Swift to natively target the AppleTV, this dungeon crawler encourages cooperation
through balanced team growth and shared tactics.
For the pros: cleverly combining player abilities leads to multiplicative gameplay.
For the kids: drop in and drop out mechanics and a streamlined levelling system. Our companion android/iPhone app acts as a local controller, meaning everyone can play without needing AppleTV compliant controllers.
Breather is a personal health tool intended to measure and encourage self-awareness of its user's resting respiratory rate. I was inspired to create it to help my friend with her breathing exercises, after she explained the benefit of conscious retraining, to obtain slow, steady, and balanced breathing. I was pleased to know that her specialist gave strong support in regards to incorporating Breather into her treatment. They also expressed a desire to have it made publicly available and to endorse and advise its further development.
This app is personal health monitoring tool to assist individuals and their doctors to keep a record of daily tremor amplitude. By aggregating the variation in 3D accelerometer readings over time, a user's shakiness is measured and displayed in arbitrary units. Fast fourier transform is used to subtract reading error from electronic jitter, as well as being used to identify the period of major and minor tremors to assist in their classification.
Carpe-Miem (seize the hated) is a full stack project designed to assist park rangers in the Lake District of North America to control the ecological impact of introduced carp species. Spawning times and locations are predicted using a pre-existing formula, which depends on environmental factors such as water temperature and flow rate. Our project goes beyond a single formulaic method, using frontend user feedback to score the input formulae, and giving backend users an interface to change their formulae according to latest research.
A mobile-first, student centric superannuation platform. I have been a primary co-designer and mobile developer since the beginning of this project.
Polity is a web app with the purpose and vision of making politcal subjects, politicians and societal issues more accessible and easier to understand. It gives constituents the ability to message their local representatives, and creates an environment of transparency and accountability on behalf of politicians. This is achieved by publicly displaying the response delay and constituent satisfaction scores on each member's page, thereby incentivising faster and higher quality correspondence.
This platform was initially developed in close association with a handful small scale australian wineries. It aims to provide an all-in-one solution to the challenges of running a winery.