Designed and implemented a modular backend architecture for IoT platforms, supporting high-throughput ingestion and querying of time-series data. Built and validated systems using test-driven development (TDD), improving code quality, test coverage, and long-term system stability. Applied software design patterns (e.g., Strategy pattern) and core data structures (e.g., FIFO queues) to meet scalability, performance, and business requirements.
Built an interactive browser game in HTML, CSS, and JavaScript for a La Trobe initiative, shipping a playable build as a self-contained front-end module and integrating it into an existing campus system with a small team.
La Trobe University, Melbourne AUS
Full-stack IoT capstone spanning ESP32 sensor firmware, concurrent MQTT ingestion into InfluxDB, and a Next.js app—containerised with Docker Compose and CI via GitHub Actions.
Modular Go backend for IoT time-series ingestion and querying with NanoMQ and TimescaleDB, load-tested to the required 11 msg/sec across 500 simulated devices.
Local-first encrypted medication adherence app with on-device cryptography, dosing analytics, and threat-aware privacy UX—shipped in Expo, rewritten in Flutter.
Rust CLI that fuzzy-switches tmux sessions with fzf, or creates/attaches sessions named from the project folder and current git branch—with distinct attach vs switch-client behaviour inside and outside tmux.
Capstone IoT platform—ESP32 sensors over MQTT into a concurrent Go ingestion service and InfluxDB, with Docker Compose and GitHub Actions holding the stack together for a Next.js + Ollama front end.
Privacy-first medication adherence app—Expo prototype then Flutter rewrite—with on-device crypto, BIP39 recovery, threat-aware UX, and CI gated at 60% diff coverage.
A Rust CLI that fuzzy-switches tmux sessions with fzf, or creates sessions named from folder + git branch—with distinct attach vs switch-client behaviour.