Projects

Tracks sheep locations with radio time-of-arrival and triangulation.

  • Python (OpenAPI / Swagger)
  • Vue.js + d3.js
  • Linux Configuration
  • Client Communication

Wraps microcontroller register-level control in an idomatic Rust abstraction library.

  • Rust
  • Make
  • Embedded Devices

Gateway Switcher

Quickly switch between two network gateways from the system tray.

  • C++ (Qt)
  • QMake
  • Routing Table Networking

Cow Tracking Research

Computer vision research to track cattle movement. Submitted to the IVCNZ computer vision conference.

  • Computer Vision
  • Deep Learning
  • Amazon Web Services

Skills

Frontend Development

Designed and implemented graphical user interfaces with Qt and in the browser using jQuery, d3.js, Angular, and Vue. Mobile-friendly website styling with CSS and Bootstrap.

Backend Development

Developed RESTful APIs with Node.js and Python, using PostgreSQL, Sqlite and Mongo databases. Used different authorization schemes and designed database schemas.

Algorithmic Problem Solving

Understand the basic search and sorting algorithms, complexity and data structures (COSC122). Competed in several programming competitions, placing 4th in the 2016 ACM ICPC competition.

Functional Programming

Proficient Haskell programmer. Leverage functional design to improve code readability and using event-driven libraries such as ReactiveX.

DevOps

Used many build automation tools such as CMake. Performed automated software deployment and configuration with Ansible. Management of VPS instances from AWS and Digital Ocean.

Linux Administration

Daily user of Linux desktop and UNIX shell commands. Experienced at systemd service configuration and software package creation.

Computer Networking

Set up the network for the university gaming club LAN events. Host my personal website, email and projects on a VPS. Familiar with network protocols from all layers of the OSI model.

Professional Communication

Authored around 30 technical reports during my Engineering degree. Team lead of industry-backed honours project. Answered 12 questions on Stack Overflow.

Experience

Junior Design Engineer

Tait Communications

Modified Ansible to work with embedded devices. Implemented an event-based WebSocket API in Lua.

  • Python
  • Lua
  • Configuration Management
  • Angular Web Framework

Software Developer

AgSense NZ

Modernised Node.js codebase, automated build script.

  • Node.js
  • Code Refactoring
  • Nginx Web Server

Education

Bachelor of Computer Engineering with Honours

Minor in Computer Networking

University of Canterbury

2015 - 2019

Computer engineering focuses on programming low-level embedded devices and high-performance software.

  • Embedded Devices
  • Operating Systems
  • Computer Networking
  • Object-Oriented Design