Purdue University Computer Graphics | Meta Software Engineer | University of Waterloo Computer Science
A web application that uses diffusion models to generate stop-motion animations from figurine photos and a series of poses. Approved as my Master's Thesis.
Key Concepts: Generative AI Model Finetuning, Pose Detection, UI/UX, Creative AI
Read Thesis Slides Demo 1 Demo 2An accessible web application that uses GPT-4o to generate code and descriptions of OpenSCAD models to help blind users understand, generate, and verify 3D models. I worked on the UI design, Backend Implementation, OpenAI API Integration, Prompt Engineering, and User Study Design. Paper published in ASSETS '25.
Key Concepts: LLM Image Captioning, Prompt Engineering, OpenAI APIs, HCI, Accessibility
Read Paper Preview Video Demo VideoA web application that automatically translates manga pages from Japanese to English by detecting speech bubbles and extracting text.
Key Concepts: Computer Vision, OpenCV, OCR, Model Evaluation
Details Source Code Project ReportA ResNet-50 model trained on images of sea creatures so it could label a user inputted image with the creature's scientific name. I worked on creating the training dataset using a webcrawler to extract representative images for each species.
Key Concepts: Computer Vision, ML Model Training, Data Extraction
Try ItA system for understanding ocean science data via a natural language interface, using OpenAI's LLMs to enable the creation of complex queries to analyze data. I worked on the RAG system for name resolution and semantic search, the scripts for filtering high-quality images from the sea creature dataset for model training, and the pre- and post-processing stages for the final output. Paper published in UIST '24.
Key Concepts: RAG Systems, LLMs, OpenAI APIs, Agentic AI, Data Pre- & Post-Processing, Data Engineering
Read Paper Preview Slides Demo VideoAdded a Facebook Group mentions feature that allows users to mention multiple people at once and send notifications to all members of a Facebook Group (millions of users). Worked with UX designers and other teams (eg. Notifications Team) to launch the feature.
Key Concepts: Scalable Systems, Cross-Functional Collaboration
Determining high confidence typeahead suggestions and decorating them with images and snippet. These suggestions are selected based on entity features, such as degree of connection, recent interactions, and popularity.
Key Concepts: Ranking Models, A/B Testing, Large-Scale Data Pipelining
A command-line tool to transcribe a piece of music from one instrument to another.
Key Concepts: Computer Audio, Pattern Detection, Data Processing
Project ReportInternal tool for timeseries extrapolation using Prophet.
Key Concepts: Machine Learning Models
An open-source command-line tool that parses .NET ReadyToRun binary executables to display assembly code, ARM and x64 UnwindInfo, and garbage collection tables.
Key Concepts: Low-Level Programming, Assembly Code, Compilers
Details Source CodeAn OpenGL application that allows users to create animations by specifying keyframes. The models will behave according to some laws of physics, such as gravity and the conservation of momentum.
Key Concepts: Computer Graphics, OpenGL
Details Project ReportNative method handles for calling C/C++ methods from Java programs. Added the new feature for the IBM's J9 virtual machine which is implemented differently from Oracle's version of OpenJDK Project Panama.
Key Concepts: Low-Level Programming, Function Call Stacks
DetailsIntegrated the Android 6 Fingerprint API into the Kapsel Logon plugin so that users can authenticate with their fingerprint instead of a passcode. This feature was launched to production. More info.
Key Concepts: Hybrid Mobile App Frameworks, API/Tool Integration
Prototype of a tool for generating HandlebarJS templates used when creating index cards with SAP Octane. Provides an interface for replacing the handlebar names with the field names of the user's JSON data. Presented at a meeting and launched to production.
Key Concepts: String Manipulation, Data Extraction
An educational bank simulator web application with PHP for the back-end, Bootstrap for the front-end, and MySQL for the database. I quickly created the MVP from start to finish based on ideas and feedback from the team.
Key Concepts: Full-Stack Development, UI Design, Prototyping
DetailsI was hired by a real estate agent from Red Carpet Real World Realty Inc to develop a Java application that extracts real estate information from webpages and uses Selenium webdriver to automatically fill the HTML form of an advertising website.
Key Concepts: Webdrivers, Data Extraction
DetailsA website that sorts, categorizes and displays ECOO (Educational Computing Organization of Ontario) contests from the last 30 years. I mainly worked on the PHP back-end, and was in charge of the part that programmatically translates Turing solutions into Java.
Key Concepts: Backend Development, Compilers
Details