MovieMatch

⇠ scroll ⇢

NextJS React TailwindCSS Transformers NLP Vector Embeddings Hugging Face Spaces

In a sea of movie reccomendation algorithms, I wanted to create a project which truely stood out. I wanted to create a project which leveraged skills in data science and web development, inspired by dating apps such as Tinder.

I Implemented a Tinder-style movie recommender web app using machine learning, SBERT vector embeddings, and cosine similarity to dynamically match users with films based on preferences. In addition to that, I added an interactive swipe interface for like/dislike input, updating user taste vectors in real time and filtering results using genre, metadata, and collaborative filtering techniques.

Website GitHub

TaleCrafter

⇠ scroll ⇢

NextJS Typescript TailwindCSS OpenRouter Supabase Stripe Google OAuth

TaleCrafterAI is a generative AI tool used for storywriters to build and write stories. I lead its development as part of my first internship at Zoomob, a video game company which recognized the difficulty in crafting novel based video games.

With TaleCrafter, I showcase my skills building scalable SaaS products form the ground up, from designing the tech-stack, developing authentication and backend systems using Google Oauth, database and storage using Supabase, API calls to Openrouter, to building a beautiful frontend with TailwindCSS, I was tansformed from someone with zero knowledge and experience in web development into one who can now create anything I want with limitless possibility.

3D Room Portfolio

Blender ThreeJS GSAP Vite CSS Javascript

Every developer needs their own portfolio to showcase their work. But why limit myself to those plain simple copy-paste portfolios? With the limitless potentials of web development, I decided to create a portfolio truely unique and personal which showcases now only my work, but also who I am as a person.

This project was originally inspired through my first internship at Zoomob, a video game company. However, I was instead tasked to lead the development of TaleCrafterAI. While I didn't work on any games, I was exposed to other work through my peers and developed a keen sense of curiosity in 3D modelling. This inspired me to create this project, where I made everything from scratch including 3D modelling, textures, UV maps and texture baking. I combined this with the skills I learned in web development, combining it all with ThreeJS and animations with GSAP.

GitHub

Converso

⇠ scroll ⇢

React Typescript NextJS Supabase Stripe VapiAI

This was my first project in web development, and I worked on it in preparation for my first internship. It was a great learning experience, diving into web technologies and applying what I had learned to create something tangible.

I developed a real-time AI tutoring platform where users could chat with an AI about any topic they wanted, offering a personalized learning experience. I implemented full-stack functionality, integrating user authentication, subscription management, and payments using NextJS, Supabase, and Stripe. I also deployed and maintained scalable SaaS features like rate limiting, token tracking, and user session control, ensuring the platform could handle increased usage and provide a smooth user experience.


Note: The website is deprecated due to limitations of using a free database. Storage is reserved for other projects. Contact me if you wish to know more.

Website GitHub

Skateboarding Coach

⇠ scroll ⇢

Support Vector Machines K-Nearest Neighbours Matlab

In 11th grade, I represented Hong Kong at the International Science and Engineering Fair (ISEF). I traveled to Dallas, Texas, where I presented my project, “Detection of Skateboarding Tricks Based on Gyroscopic Data.” After using a gyroscope and accelerometer to collect data samples of skateboarding tricks being performed, I 3D-printed a small box to hold an ESP32 processor and an MPU9250 gyroscope & accelerometer.

With that, I gathered more than 100 samples of various skateboarding tricks, feeding them into my model, which was trained using algorithms like Support Vector Machines and K-nearest neighbors. The device would detect the tricks and classify them.

Additionally, by collecting data samples of commonly made mistakes, the device can detect mistakes a skateboarder makes during their performance and provides pre-written user-specific feedback through a developed application on what to do to improve.

I was able to take this project a step further, composing a 35-page research paper titled: "Investigating the Accuracy and Prediction Speed of K-Nearest Neighbours and Support Vector Machines on the Classification of Skateboarding Tricks Using Inertial Measurement Unit Signals".

Paper

CollegePilot

⇠ scroll ⇢

TypeScript React Supabase Edge Functions Postgres/pgvector RAG LLMs

CollegePilot is an AI college-counseling platform I built and independently scaled to 5K+ daily active users. It guides high-school students through the whole application journey: personalized school matching with reach/target labels, essay drafting and scoring, an activities finder, deadline tracking, and an AI counselor that checks in on your progress.

Under the hood, a RAG layer fetches only the relevant pieces of a student's essays, activities, and the colleges database — Postgres/pgvector with 384-dim embeddings and cosine search — instead of pasting everything into the prompt, giving sharper, grounded feedback at far lower token cost. I also ran A/B tests on the UI/UX, onboarding, and funnels to improve activation and retention.

Website

StonksGPT

NextJS TypeScript Alpaca API MCP ElevenLabs LLMs

StonksGPT is a full-stack AI trading assistant that combines real-time market data, voice-powered conversations, interactive charting, and safe trade execution through the Alpaca Trading API and the Model Context Protocol (MCP).

Users can manage their portfolio, analyze stocks with side-by-side comparison charts, stay current with market news, and place orders — all through a dashboard with natural-language chat and ElevenLabs-powered voice calls. The assistant supports configurable LLM backends (OpenAI, Anthropic, Google Gemini, Dedalus Labs), generates charts automatically while you chat, and keeps trading safe with position-aware order management.

GitHub

Real-Time Chat App

React NodeJS Express Socket.io

A real-time chat application built as a monorepo with a React client and an Express server. It features user authentication with sessions, a friend system, and instant messaging over Socket.io websockets, with rate limiting protecting the backend.

This was one of my earliest full-stack projects, and where I first learned how the client, server, and shared packages of a production-style codebase fit together.

GitHub