About me
I am a Full Stack developer with full working rights in the Australia, New Zealand region.
My experience ranges from building, designing and deploying products from day 1 to communicating directly with customers on their experience in using software.
I am obsessed with building software with a user-first mindset.
I believe if users are not comfortable using it, it is not designed correctly.
Always eager to learn, and improve testing out new languages and tools to accelerate and optimise my workflow and finding new solutions to problems that I come across.
Work Experience

- Built a web platform for a startup enabling users to store digital assets on the IPFS
- Developed iOS and VisionOS apps in Flutter and Dart, including spatial computing UI for VisionOS
- Shipped a community post page with article sharing, image uploads, and threaded comments
- Built an admin dashboard with email template customisation and bulk send capabilities
- Integrated RESTful APIs including EmailJS for transactional messaging
- Implemented BIP-39 mnemonic generation to support secure account recovery flows
- Authored technical documentation and aligned architecture decisions across the team
- Delivered front-end work on the live booking platform
- Modernised the landing page UI using vanilla JavaScript, HTML and CSS
- Worked closely with the Product Manager and engineering team to ship features and resolve bugs
- Improved first-time user retention through targeted feature flags
- UX improvements:
- Combobox — free-text search and record entry for clients
- Out-of-hours bookings — flexible scheduling beyond standard times
- Context menu — rapid access to common actions from the appointment grid
- Brisk Appointment
- Led development of the MVP for a NZ-based rewards platform where users earn and redeem points at partner businesses
- Translated Figma wireframes into production-ready TypeScript components with a strong focus on UX
- Set up user authentication including OTP and email verification flows
- Built the marketing landing page
Juggle Rewards App (React Native)
- Juggle Rewards (React)
Projects
Cardboard Addiction
Closed - BetaMarketplace for Digimon TCG
Full stack indie project
A full-stack, peer-to-peer marketplace web application for Bandai’s Digimon TCG. Users can upload their trade binders and wish lists, the system is then able to match users based on their desired cards to help facilitate peer-to-peer trades.
Lack of supported peer to peer marketplace for the Digimon TCG. Gate keeping selling, buying and trading cards tedious and hard.




- File-based routing and Vercel deployment pipeline via Next.js App Router.
- Serverless PostgreSQL database with row-level security.
- Custom PostgreSQL functions such as duplicate offer detection
- SignUp/Login via Supabase Auth with email verification
- REST API to fetch card details, images, and set numbers
"Make Offer" would load match results from the database. But without a form of duplication detection, a user could load the same offer multiple times. Having conflicting trades was not ideal and confusing when managing inventory.
The duplicate check was resolved by replacing two independent set membership checks with a single joined comparison, ensuring both conditions had to be satisfied by the same record rather than being evaluated in isolation.
Deployed and in closed beta. Currently testing basic trade functionality and real-life use-cases with 10 beta-users. Feel free to test this out - using [DigiBrisbane2026] as the sign-up code
Fearless Nuzlocke Tracker
LivePokemon Nuzlocke Tool
Full stack indie project
Fearlesslocke Tracker is a web application designed for players taking on the fearlesslocke challenge. In a fearlesslocke, you play a monotype run of every main-series Pokémon game and must complete a successful run with all 18 types. The catch: once you use a Pokémon species in any run, you can never use it again across the entire challenge.
No existing tool tracks multiple Nuzlocke teams while preventing duplicate Pokémon usage across runs



- React component architecture for reusable team, encounter, and run management interfaces.
- TypeScript for type-safe data models and API interactions.
- Local storage or database persistence for session recovery and progress retention.
- Custom hooks for shared state and reusable business logic.
- Asynchronous API fetching with loading and error state management.
- Data normalization and transformation of PokéAPI responses.
- Route-based navigation for run tracking, team management, and settings pages.
The main challenge was creating a scalable team management UI that remained easy to navigate as team and run data grew. Handling data of Pokemon with multiple forms - like Deoxys
Implemented a modular component architecture with reusable team, box, and encounter views, alongside filtering and search functionality to reduce interface complexity and improve navigation. Normalized PokéAPI data by separating species information from form-specific data, allowing alternate forms to be tracked and displayed consistently.
Publicly live. Current focus is on hardening the Fearlesslocke mode and improving the team builder UX. Planned next: shareable run links so players can post their runs to the community, and a leaderboard for completed Fearlesslocke challenges.
Tech Stack
Earlier Career
ezyVet
Intermediate Software Solutions Advisor
- Delivered software training, technical support and documentation for a global stakeholder base
- Contributed to revenue retention through cross-functional work across customer support and QA
- Tested and logged reported bugs in Jira, reviewed with QA and engineering
- Wrote custom PHP/TWIG templates to generate additional client revenue
- Designed and ran a technical onboarding programme covering hardware troubleshooting, network configuration and TWIG templating
- Hosted a public-facing ezyPrint Webinar covering core platform workflows
Gorilla Technology
IT Technician & Audiovisual Engineer
- Provided L1/L2/L3 IT support for clients including the Cancer Society NZ (500+ users)
- Managed and maintained Gorilla Technology and World Podcasts
- Recorded and edited audio and video content for the NZ Tech Podcast
National Holdings / JNJ Management
IT Admin
- Sole IT administrator responsible for all infrastructure and assets within the Sky World building
- Managed multiple websites including Sky World and Metrolanes
Outside of work
Education
2014 – 2017
The University of Auckland
Bachelor of Science · Computer Science & Information Systems