Hello, I'm

I build backend systems and AI agents, from data models to inference pipelines.

See My Work

About Me

I'm Theo Lee, a computer science student at UC San Diego, graduating in December 2027. I work on backend systems, designing data models and REST APIs and the CI/CD pipelines that ship them. I also spent the past year researching AI agents at UCSD CSE, building multi-agent pipelines that generate 3D material code and measuring what actually makes them better.

Experience

Software Engineering Intern

Jun 2025 – Aug 2025, Jun 2026 – Sep 2026

Chopstickstory (Nonprofit) · Cupertino, CA

  • Led a 4-person intern team building a full-stack member, volunteer, and event platform with Django and React.
  • Designed data models and REST APIs for 7 resources with 1:N and N:N relationships, implementing JWT authentication and admin dashboards.
  • Containerized the development environment with Docker to resolve cross-OS inconsistency across the team.
  • Built a GitHub Actions CD pipeline that ships Docker images through Azure Container Registry to Azure App Service on merge to main.

Undergraduate Researcher

Sep 2025 – Jun 2026

UC San Diego CSE, Early Research Scholars Program · La Jolla, CA

  • Researched AI agent pipelines that generate Blender procedural materials from expert tutorial videos.
  • Redesigned the pipeline's encoding and code-generation stages with iterative procedure composition and a multi-agent Orchestrator, Generator, and Verifier workflow, reaching the best average CLIP similarity of the four variants tested (0.847 against a 0.831 baseline).
  • Presented findings at UCSD's Undergraduate Engineering Research Symposium.

Projects

Chopstickstory home page with the site navigation and a Discover Korean Culture headline

Chopstickstory

The public site and internal platform for a Korean cultural nonprofit, live at chopstickstory.org with roughly 1,000 unique visitors a week. Visitors browse programs and register for events, while staff manage reservations, volunteer applications, and work logs from the admin. A Django REST API on Azure App Service serves a React frontend on Cloudflare Pages.

Interactive map of De Anza campus trees

DATreeMap

A Django and PostGIS application serving 2,300+ campus trees on an interactive map for De Anza's Environmental Monitoring Club. REST APIs return GeoJSON over PostGIS spatial queries, with typical queries under 200 ms.

AstroSweep 3D space debris simulation

AstroSweep

A 3D simulation game prototype about space debris cleanup, built with Flask and CesiumJS. Simulates 500 debris objects across three orbital layers using real orbital mechanics. Won 2nd place at DA Hacks 3.0.

WatchTower dashboard showing error counts and Core Web Vitals

WatchTower

Backend Lead on a 13-person Agile team building a lightweight observability dashboard on Cloudflare Workers and D1. Owned the data model, API contract, and the event-ingestion worker with batch validation, payload size limits, and idempotent inserts.

ucsd-study-room command line interface output

ucsd-study-room

An open-source CLI tool and MCP server published to PyPI that automates UCSD study room search and booking through headless Chrome, handling SAML SSO and Duo Push 2FA with OS-native keychain credential storage.

Procedural clay material rendered in Blender by the agent

PyBlender-Agent

An AI agent that generates Blender procedural materials from natural language. A RAG pipeline retrieves Blender's Python API documentation from a vector database, and MCP JSON-RPC connects the agent to a headless Blender instance that executes the generated code.

Research

Research poster titled Agentic VLMs for Procedural Material Generation, laid out in panels covering background, problem statement, methodology, results and analysis

Agentic VLMs for Procedural Material Generation

May 28, 2026

UCSD Undergraduate Engineering Research Symposium · Early Research Scholars Program

I worked on this year-long project in Prof. Manmohan Chandraker’s lab as part of a team of four undergraduates, mentored by a PhD student and a master’s student. We studied how to generate procedural materials in Blender from expert tutorial videos. The baseline pipeline can lose detail at two stages: merging tutorials in a single pass and condensing the combined procedure before generating code. We redesigned both stages, replacing the one-shot merge with iterative procedure composition and the single-pass compiler with progressive compilation through an Orchestrator–Generator–Verifier workflow.

I focused on inference-time scaling, designing the multi-step decomposition and step-level LLM verification between stages. I also ran an ablation study across four pipeline variants to evaluate the trade-off between quality and cost. We measured CLIP similarity, style loss, sliced Wasserstein distance, and graph edit distance, along with cost per run.

  • The integrated pipeline achieved the highest average CLIP similarity of the four variants, scoring 0.847 compared with the one-shot baseline’s 0.831. It was also the only variant to outperform the baseline on every tested material.
  • Redesigning only the encoding stage increased average CLIP similarity to 0.839 while reducing cost per run from $3.48 to $3.15—about 9% less. The full integrated pipeline cost $5.10 per run.
  • The improvements varied by material: the encoding-only variant increased CLIP similarity over the baseline by 0.033 for steel and 0.035 for pineapple but reduced it by 0.043 for mahogany.
  • Pineapple remained the most challenging material, with the lowest CLIP similarity across all four variants.

Tech Stack

PythonPython
JavaScriptJavaScript
SQL
C++C++
HTML5HTML/CSS
CC
Java Java
DjangoDjango
Django REST
ReactReact
FlaskFlask
Tailwind CSSTailwind CSS
PostgreSQLPostgreSQL
PostGIS
CloudflareCloudflare D1
DockerDocker
GitHub ActionsGitHub Actions
Microsoft AzureAzure
Cloudflare WorkersCloudflare Workers
Pytestpytest
VitestVitest
PlaywrightPlaywright
LangChain

Resume

You can view or download my resume by clicking the link below.

Download Resume (PDF)