Technical Portfolio
TutorTrack
A local-first operations dashboard for running a tutoring practice: student records, session scheduling, payment and proof tracking, WhatsApp-first reminders, calendar import, and a context-aware AI assistant that can inspect live data and propose changes.
TutorTrack-Cases
Small private toolTutorTrack-Cases is a companion project to TutorTrack: a Cloudflare Pages app that aggregates live tutoring-gig listings from TutorHabit, Tutor Circle, and Kits Tutor into one feed, built for a small group of tutor friends rather than the public. Anyone can browse the feed as a guest; signing in lets you dismiss a case or record that you opened a source listing, so that state follows you across devices.
No source mirroring
Listings are fetched, normalised through an explicit allowlist, and cached in memory for a minute—only which cases a user has handled ever reaches the database.
Real authentication
Salted PBKDF2-SHA-256 password hashing via the Web Crypto API, and opaque session tokens stored server-side only as a peppered SHA-256 hash—never the raw token.
Free-tier by design
Each page of the feed issues at most one request per source, so the app stays well inside Cloudflare Workers Free's per-request subrequest limit.
Open Stage
Open Stage connects young Hong Kong performers with real, paying stages, as part of the 21C@JC programme backed by the Hong Kong Jockey Club Charities Trust. The platform is a bilingual React app for performer and event discovery, integrated with the TO_MO API for event data and an AI assistant for event recommendations.
The visual design leans on HeroUI's themeable components to build quickly and consistently, then layers a custom system on top to chase a specific feeling: "a live programme, not a brochure." Colour tokens are sampled from the project's own gig photography—warm tungsten stage light and cool dusk hues—rather than a generic palette, and Motion (Framer Motion) drives staggered reveals and hover lifts so a page unfolds like a show starting, instead of just loading in.
ICT Setter
Unreleased(Name subject to change.) ICT Setter is a platform I'm building for Hong Kong secondary-school ICT teachers and HKDSE question setters to author, co-edit, preview, validate, and export bilingual HKDSE ICT exam papers (Papers 1A, 1B, and 2)—without hand-fighting Word's numbering, indentation, algorithm notation, and Traditional Chinese typography rules on every new paper.
Its renderer generates the browser preview and the exported Word document from the same pipeline, so what a teacher sees while editing is never a fake preview that could diverge from the real export. Papers are built from real structural blocks—sections, questions, parts, rich text, tables, code, diagrams—rather than a blank page, with revision history, per-paper collaborator roles, and durable autosave that keeps two editing sessions from clobbering each other.
ICT Setter has not launched yet, so its question bank, official exam templates, and internal teaching materials remain confidential. What's described here is the nature of the system, not any specific exam content.
Colloquy
Early prototype(Name subject to change.) Spoken English practice: pick a topic, have a real back-and-forth conversation with an AI partner, then review the transcript afterward. It's the first vertical slice toward a fuller HKDSE speaking-practice platform—my first project reaching beyond ICT into English-language EdTech.
My work is AI-accelerated. I use tools like Codex and Claude Code daily.