cartoon hayley


Software Dev


Computer Science and Education Research Group (CSERG)

We are a small team (often known as "The Department of Fun Stuff") at the University of Canterbury who create resources for teachers (or anyone) from all around the world to use to help learn and teach Computer Science. I work on the technical side of this project, which means I am involved in designing and creating open source software that allows contributors from all over the world to help us grow our projects.

The work we do is only made possible thanks to so many generous sponsors and there is always an ever growing list of things we want to work on in future. If you are interested in helping us out, please contact me !

Computer Science Unplugged

CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.

I am part of the team who is working on the technical side of creating a new website for CS Unplugged .

To learn more about CS Unplugged and how you can contribute check out the repo and the docs .

Computer Science Field Guide

I worked part time on the CS Field Guide project for two years, which I spent developing what we call "interactives". These are little JavaScript applets that aim to teach computer science concepts and back up the content in their particular chapter.

The most recent interactives I worked on were for the Computer Graphics chapter . The Box Translation and Rotation interactives demonstrate the basic principles of moving objects in 3D space. They are written using Three.js, a JavaScript framework for WebGL.

The Arrow Manipulation interactives demonstrate how matrices can be used to manipulate shapes in 2D space. Each of these interactives have a config file which is used to determine the interface components to load, as well as the start and target position of the arrow. The code for these interactives is written in pure Javascript with SVGs for the arrows.

To learn more about the CS Field Guide and how you can contribute check out the repo .


Verto is an extension of the Python Markdown package, which allows authors to include complex HTML elements with simple text tags in their Markdown files.

To learn more about Verto and how you can contribute, check out the repo and the docs .

CS4HS - Computer Science for High Schools

This is a conference sponsored by Google that takes place all around the world. Our department has run this conference every December for the last few years. I attended in 2015 as the "Student Story" speaker, a workshop presenter, and a general conference volunteer. In 2016 I was back again as an organiser, and spent the week helping to make sure the conference ran smoothly.

To learn more about CS4HS Christchurch, take a look at our conference website .

Google Internship

In summer 2015/16 I was an intern at Google. I was with one other intern on the Bandwidth Site Reliability Engineering team. We created an internal tool to be used by other SREs to check the status of the amount of bandwith their service is using. The tool proved to be extremely useful and was already being used before we even finished the internship.

Interactive Course Planners for Engineering at UC

My university receives thousands of calls every year from prospective engineering students asking for help with their enrolment as it is a surprisingly complicated task. There are many different requirements for each specialisation, and prerequisites for these differ depending on the applicant’s high school education. I was asked to create a web interface to help make the application process easier for new students and it is now embedded in in the Engineering at UC information page for intermediate year . This saves university enrolment and student help staff hours of work every year.

REANNZ Internship

This was my first internship. I started at REANNZ only a week and a half after my last exam at high school, and it was a great way to spend the summer before starting my first year at University.

I worked on a data visualisation project, which involved creating a 3D representation of the REANNZ network by overlaying network data onto a model of New Zealand. This was done using Three.js, a JavaScript framework for WebGL.

A screenshot of the finished project featured in this article .

To learn more about REANNZ, take a look at their website .

Gather Workshops

Since 2015 I've presented and mentored many Gather Workshops. Although I’m quite biased towards Python, I have been found presenting/mentoring at Robotics and JavaScript workshops on several occasions.

To learn more about Gather Workshops, take a look at their website .

This Website

This website takes many shapes and forms, I tend to use it as a place to try out different frameworks and tools. Right now this site runs on Flask, uses sass for styling and is deployed with Heroku. Over the years it has used different tool such as Foundation, an SQLite database for a blog, PHP, Three.js, and often some basic JavaScript for doing tricks like randomising the background colour of the page or for little animations.

The active repo for this website is here . Recently I stumbled across some older versions, this one from 2014 and another from 2015 . These were from when I was first learning about web development.

Android App

In my final year of high school I decided to learn how to make a native phone app. I designed and created an Android app that would help year 13 students in NZ to keep track of their credits. This was by far the most challenging project I have ever worked on, and was definitely the most rewarding as this was the longest project I had ever worked on (by a long shot!).

Feel free to check out the repo here .


NCSS is a programming summer school which I attended as a student in 2014 and 2015, an industry mentor in 2016, and a tutor in 2017. NCSS is what made me realise that I wanted a career in Software! It is a 10 day event where students from all over Australia and New Zealand, and tutors from all over the world, come together to learn and teach computer science. It's just as nerdy as it sounds and is always an incredible experience!

To learn more about NCSS, check out the website .

About Me

I am a kiwi software developer and am always in search of the next project!

The projects I enjoy the most are those in the field of Computer Science education in schools. It took until my second-to-last year of high school before I finally considered software engineering as a viable career path. School is where you should be exposed to as many industries as possible, so that you can figure out what it is that interests you. I don't know what it is about software engineering and computer science that makes it such a well-kept secret from schools; it's a fun, rewarding and challenging area to work in and it is a shame that so many kids won't get to experience it, which is why I think outreach work is so important.

I am passionate about my work, and I love to be challenged! I love to take on projects that are well over my head and be surrounded by engineers more experienced than myself because that is where I learn the most.

When I am not working, I enjoy public speaking and teaching programming and therefore dedicate a lot of time to volunteering for organisations and/or at events. Outside of academia and tech, I like to keep fit by running 2-4 times a week and attending pilates classes at the gym. When I really need to relax I can often be found watching comedies on Netflix or painting my nails.