Skip to content

Joshua Yeung.

Software engineer. Quietly making things that work.

Cornell University · B.S. Computer Science + Statistics

CS + Statistics at Cornell, graduating December 2026. Research assistant at Carnegie Mellon — open to full-time software roles starting 2027.

Joshua sitting beneath a neon sign that reads “good ramen is even harder”

00  About

Software engineer. I like work that's clean, mountains that are tall, and dogs that are small. Serious about the craft, easygoing about the rest.

01  Selected work

case study + code

01

ChargePoint — OQC automation

An automated Outgoing Quality Control suite — built on the team's in-house test framework — that turned a months-long manual gate into a deterministic, operator-runnable ~1-hour cycle per unit.

Read the case study →
02

Dobbify

Evolved from cashback into a fashion decision engine — a deterministic per-product “should I buy this?” verdict, a brand-intelligence layer, and a price-history layer fed by a daily cron behind a pluggable provider interface. A native SwiftUI companion app on TestFlight reads the same Supabase backend.

See the work →
03

assay

A linter for agent execution traces — nine mechanical rules that flag conclusions a run's own recorded numbers do not support: a verdict contradicting its control metrics, a success threshold that moved mid-run, a tool error swallowed before the conclusion that depends on it. No rule asks a language model whether a run looks sound, because a judge would reintroduce exactly the unreliability being detected. 100% precision and recall on every rule over 31 labelled fixtures whose negatives are deliberately hard, and across 380 published third-party runs (52,494 events) it returned 246 findings for 2 true positives — with four of the nine rules unable to fire at all, because the agents that most need self-consistency checking are the ones that never record the controls and thresholds it reads.

See the work →
04

Windbourne

Config-driven computer-vision pipeline — formerly badminton-mocap — that turns badminton match video into player pose, footwork, and shuttle tracking: 11 swappable stages, 307 tests, a custom PyTorch CNN tracking the shuttlecock frame by frame, and recovered motion exported to BVH for standard 3D tools. Elite-level racket-head speeds (38–49 m/s) fall out of the joint kinematics, and players are re-identified across clips with a mean-centered ResNet embedding plus average-linkage clustering, stable on 839 of 840 frames. An experiment pass then measured the pipeline against itself over six broadcast clips: replacing the classical blob tracker with the CNN plus short-gap interpolation — no Kalman smoother, which over-gated the shuttle's reversals at racket contact — lifted confirmed coverage from 0.46 to 0.72 and cut the false-positive rate from 0.16 to 0.07, while temporal pose smoothing, tested the same way, was rejected: Savitzky-Golay inflated peak wrist speed by 24–40%, and One-Euro bought nothing.

See the work →
05

UniMeet

Cross-college .edu social app — a native SwiftUI iOS client on TestFlight beside the Next.js web app, on one Supabase/Postgres backend (43 migrations) built deny-by-default: zero client table writes, every mutation behind a SECURITY DEFINER function, and the permission matrix asserted by a generated pgTAP test rather than documented. The concurrency cases live in PL/pgSQL — sender-scoped message idempotency with a unique-violation retry path, and invite redemption locked against double-attribution with SELECT … FOR UPDATE and a row-count guard — and pushes flow through a transactional pgmq outbox to a Deno edge function that mints ES256 APNs tokens.

See the work →

02  Experience

full detail on /projects

Carnegie Mellon University

Research Assistant

Mar 2026 — Present · Pittsburgh, PA

ChargePoint

Software Engineer Intern — Hardware Test Automation

Jul 2024 — Present · Campbell, CA

Cornell University

B.S. Computer Science + Statistics

Graduating Dec 2026

  Index

navigate

01 Projects view → 02 Lookbook view → 03 Contact view →