Senior Software Engineer
Apr 2020 - Present
- Implemented the new Teacher Dashboard, building custom reusable components and endpoints. Led optimizations to improve dashboard responsiveness from seconds to milliseconds.
- Drove technical interviews and hired two senior software engineers.
Jul 2018 - Apr 2020
- Identified and led Node.js upgrade from version 6 to 8 across our infrastructure, improving team velocity and server response time by 20%.
- Designed and implemented an animated dialogue system with content creation tooling. Higher quality art in this system required additional optimizations to support less powerful hardware found in classrooms.
- Built and improved importing animations from Adobe Animate into our WebGL renderer.
- Led and implemented the character customization system, allowing the user to customize their in-game and in-cinematic skin and hair color.
Dec 2017 - Jan 2018
Implemented a meta-heuristic solver for scheduling university classes based on preference constraints. Written in Rust, using "human in the loop" and simulated annealing techniques.
Jul 2017 - Dec 2017
Teaching Associate for FIT2102 - Programming Paradigms, a core unit for Bachelor of Computer Science. Handbook: monash.edu/pubs/2017handbooks/units/FIT2102.html
- Wrote 5, 3 hour worksheets with executable exercises and automated tests for half the course teaching function composition, lambda calculus, currying, observables and TypeScript.
- Tought x86 Assembler, Haskell, and MiniZinc.
Mar 2017 - Nov 2017
Developed a mind mapping tool for the Monash Adaptive Visualisation Lab. Skills: D3.js, RxJS, TypeScript, SVG.
A challenging 54 level puzzle game (spyr.itch.io/riko). Built everything including a flexible puzzle engine that supports undoing player actions, and an efficient art and audio import pipeline. Used Phaser.js, Immer.js, GLSL shaders, React, TypeScript, Aseprite (art), and Reaper (soundFX).