Projects

Course and personal projects.

LLM Agent Harness and Serving Optimization

Oct 2026 - Present

Personal Project

A runtime for tool-using LLM agents that measures how harness design changes cost and latency. It validates every tool call against a JSON schema, sends bad calls back to the model to repair, runs independent tools in parallel, routes between cheap and strong models, and prices cache reads and writes from the provider's reported usage. On a long-horizon agentic-RAG benchmark built from HotpotQA, rolling context truncation made Claude Sonnet 5.5 4.5x more expensive than keeping the full history, because it broke the prompt-cache prefix 10.4 times per session and cut cache hits from 80% to 16%. The checkpoint compaction strategy I designed keeps the history append-only between batched compactions: 86% fewer prefix breaks, 74% cache hits and 62% lower cost at the same accuracy. Serving Qwen3-8B with vLLM on one GPU, prefix caching reached 92% KV-cache hits and raised throughput 2.6x, and 16-way continuous batching cut cost per session 87%. GitHub

LLM AgentsPrompt CachingvLLMPython

Multi-Image Medical Visual Question Answering

Sept 2026 - Present

CMU 11-777 Multimodal Machine Learning, Team Lead

I lead a five-person team on multi-image medical VQA with the MedFrameQA benchmark: I manage the GitHub repository, assign the five research directions across the team, and communicate with the TAs about the project. My direction is adaptive visual tool use. On a frozen MedGemma-1.5-4B model, appending one cropped frame region before answering raised accuracy from 42.0% to 48.4% on 500 questions with 1,443 images, across seven matched conditions and 4,500 logged inference records. The evaluation excludes 131 source videos already used during development and pins data and model revisions by checksum. Prompting the model to choose the crop region did not beat random crops: it chose the first frame in 97% of cases.

MultimodalVLMMedical AITeam Lead

Internship Autopilot

Sept 2026

Open-Source Project

Searching for internships as an international student means checking every posting for citizenship, clearance, CPT/OPT and PhD-only restrictions, then rewriting a resume for each role. This open-source pipeline automates both. Twice a day it collects new postings, screens them with rule-based eligibility checks and tags each one's sponsorship terms, then builds a one-page resume for every remaining role from the user's own bullets, compiling the LaTeX after each addition to keep it to one page. It reads job descriptions through the Greenhouse, Lever and Ashby APIs, recognises the same role listed under different titles, sends an alert within the hour when a priority company posts, and tracks applications in a static dashboard. In my own use it screens about 1,600 postings per run and has generated 555 tailored resumes; 30 unit tests run in GitHub Actions. GitHub

PythonAutomationLaTeXOpen Source

Camera Color Calibration

Sept 2024 - Dec 2025

UIUC Diao Group

Built a colorimetric calibration pipeline in Python (OpenCV, NumPy, colormath) that maps camera RGB to a standard color space, so printed samples can be inspected for color consistently across captures. Linearized raw images by undoing sRGB gamma, gain and white balance, extracted the mean RGB of each ColorChecker patch, and fit an RGB-to-CIE XYZ transform by least squares. Evaluated accuracy with per-patch CIEDE2000 color differences in CIELAB (D65) and applied the calibration to produce color-corrected images.

Computer VisionColor SciencePython

Cyberbullying Detection with LLMs

Aug 2025 - Present

Collaborative Research Project

Research on detecting implicit, context-dependent cyberbullying beyond surface-level lexical cues, using retrieval-augmented LLMs. Explored parameter-efficient fine-tuning (LoRA/QLoRA) and evaluated open models across multilingual benchmarks with systematic ablations.

LLMRetrieval-AugmentedLoRA

Ant-Weight Battlebot

Jan 2026 - May 2026

ECE 445 Senior Design — 3rd Place

Designed and built a two-wheel differential drive combat robot (under 2 lbs) with a horizontal drum spinner weapon and dual front wedges. Built around an ESP32-S3 microcontroller for Bluetooth control, with an MPU-6050 IMU for gyroscopic stabilization. Features a symmetric chassis for inverted operation, decoupled power rails (14.8V motor / 5V logic), and a communication watchdog for safety. Placed 3rd in the class-wide battlebot competition. GitHub

Final battlebot build

EmbeddedRoboticsHardware

Distributed File System

Oct 2025 - Dec 2025

Course Project

Built fault-tolerant distributed file system in Python implementing MapReduce framework across multiple Linux VMs with coordinator-worker architecture for parallel data processing. Engineered SDFS operations with integrated failure detector enabling automatic fault recovery, task re-assignment, and parallel SQL query processing supporting SELECT with regex and JOIN operations on large datasets.

Distributed SystemsPython

Unix-like Operating System Kernel

Oct 2024 - Dec 2024

Course Project

As primary developer in a team of three, implemented a Unix-like kernel for 64-bit RISC-V on QEMU in about 9,300 lines of C and assembly: Sv39 paging with user/kernel isolation, page-fault handling, 12 system calls including fork, exec and wait, an ELF loader, an inode-based file system over a VirtIO block-device driver, a UART console driver and a preemptive timer-driven scheduler with locks. It runs up to 16 concurrent processes and 19 user programs, including two text games. GitHub

SystemsCOS Kernel

FPGA-Based Game System Design

Sept 2025 - Dec 2025

ECE 385 Final Project

Designed and implemented a hardware-accelerated treasure hunt game on FPGA using Verilog/VHDL, featuring real-time graphics rendering and HDMI video output. Built complete digital system integrating game logic, graphics controller, memory management, and USB keyboard interface on Xilinx FPGA. Achieved 60 FPS performance. GitHub

HardwareFPGAVerilog