Takatoshi Lee

cs @ uoft · llm guardrails research with prof. Chechik · prev amicare, alcon

Hi, I'm Taka. I study CS at UofT and do LLM guardrails research in Prof. Marsha Chechik's lab. We're turning rules from case law into guardrails for AI systems, and domain experts grade every rule the model extracts. I build the platform they do that on.

Outside of code I dance, climb, play guitar, and am currently surviving Muay Thai.

open to swe / applied-ai roles, either a 12-16 month co-op or summer 2027

## now

LLM guardrails research private research code

may to aug 2026

undergrad research (UGSRP) · prof. Marsha Chechik, university of toronto · UTEA research award

The annotation platform behind the study. An LLM pulls rules out of case law. Domain experts grade every one. How often the experts agree decides how much to trust each label (that score is Cohen's kappa), and the trusted labels feed the guardrail evaluations. I built the platform end to end: Next.js and TypeScript, Supabase Postgres with row-level security, AWS Bedrock, 34 Playwright e2e tests.

## experience

Amicare · software developer intern code private

sep to dec 2025

home-care marketplace startup, toronto · react native · stripe connect · socket.io

A marketplace for booking home care. I built the React Native app where families find caregivers, follow the visit live, and pay. Stripe Connect moves the money end to end. Migrating to strict TypeScript cleared 200+ type errors and unblocked CI/CD.

Alcon · data analyst intern code private

may to aug 2025

fortune-500 eye care, toronto · python · pandas · scikit-learn

A tool for telling which rebate deals actually worked. What hooked me was a data trap: the payouts sat in the system, the deal terms sat on paper, so a customer who barely changed course read as a failed deal until you saw its terms never asked for that product. So a rep can now pick a customer, see its most similar accounts, and read each rebate's before/after effect with a p-value. Two of us built it, equal split; my part was the product auto-detection, the saved analysis cards, and the analytics page. Underneath: auto-ingested SAP data (4+ hours a week of manual work gone), a PCA similarity view that cut lookup time 60%, and a time-series regression that flagged $50K+ in likely missed rebates.

DiSa Digital Safety · AI research intern code private

dec 2022 to jan 2023

singapore · pytorch · librosa · torchaudio

Type a text prompt, get music back. A MusicLM-style pipeline in PyTorch, plus the audio preprocessing to feed it. Tuning raised listener-rated quality by about 20% and the work became the seed of the company's audio personalization concept.

## projects

Job Radar code

python · llm scoring · github actions

A bot that reads job boards so I don't have to. I built it because good student roles die in days and LinkedIn shows them late. It watches 300+ company career pages at the source (Greenhouse, Lever, Ashby, Workday, SmartRecruiters) and pings my Discord within minutes of a posting going live. An LLM reads each one and scores the fit, so the urgent ones stand out. Free to run, on a GitHub Actions cron.

hover to run the pipeline
the funnel, animated: postings stream in, the rules filter drops the noise, the llm flags what's urgent in coral

DanceSync code demo

python · mediapipe · opencv · ffmpeg · classical cv + statistics, no model trained

Two dance videos in, a score out. I built it because judging your take against the reference video by eye is slow and arguable. The clips first get lined up by their audio (cross-correlation), so different start points or lengths don't matter. Then MediaPipe reads 33 landmarks per frame and every joint angle gets compared, frame by frame (MSE). 60+ dancers use it, and review time dropped by about half.

loading real keypoints…
loading…
    all real: the keypoints, the audio, and the sound behind the replay come from the two original takes · the 1.4s offset in step 1 is staged so there is something to watch snap into place · the strip below the dancers is the per-frame joint gap, click anywhere on it to jump

    html.ai code live

    fastapi · gemini 2.0 flash · openai · mongodb · uofthacks 2025, team of 4

    A web page that rewrites itself for whoever is looking at it. Gemini classifies how you browse, every page section serves its winning version, and losing versions get rewritten by the model. Built in 36 hours with a team of 4. My part: the two demo storefronts, the SDK integration, and the debug panel that shows the AI's decisions live.

    pretend you're a visitor:
    a wireframe toy of the idea: pick a visitor type and the page re-serves itself · the real engine infers this from scrolls, hovers, and clicks instead of buttons

    EduGauge code

    tensorflow · opencv · flutter · firebase · finalist of 277, MLDA deep learning week @ NTU singapore

    Tells a lecturer which parts of class lost the room. I trained a TensorFlow emotion classifier on 100+ hours of lecture video, one frame per second, faces found by Haar cascades. It scored 87% accuracy and streamed per-segment engagement to a live Flutter dashboard. The one model I trained from scratch.

    hover to run the classifier
    frames flow through the pipeline and the smiley is the classifier's verdict · the three bars are the lecture's start, middle, and end, each showing its share of engaged frames, so a :( landing there pulls its bar down

    elsewhere: VP of tech at Ground-up Startups UTM (I built the club's site). more experiments on github.

    ## research

    Clustering with minimum spanning trees: how do they compare? paper code

    2024

    c++ · union-find · numpy · preprint, not peer-reviewed

    One paper, two experiments. I raced the two classic ways to build a minimum spanning tree, then tested whether clustering with one groups data better than K-Means. Kruskal's won the race, 117% faster than Prim's on sparse graphs (union-find in C++). Across 200+ real datasets, MST clustering won on oddly shaped groups and K-Means stayed more consistent overall.

    the paper's claim, live: k-means assumes round clusters, MST clustering follows shape · click anywhere to add points and watch both recompute

    ## education

    University of Toronto

    2024 to dec 2028 (expected)

    honours bsc · computer science specialist, mathematics minor, co-op

    • dean's list scholar
    • U of T entrance award of distinction

    ## contact

    Email me at or book 30 minutes directly. Always happy to chat.