Open to Summer 2027 · PM & SWE

Emma Di

I build the thing, then I find out if it worked.

I'm a CS student at Stanford on the HCI track, minoring in MS&E. Right now I'm a product and full-stack engineer at Ditto, a campus matchmaking app, where I work on retention, match prioritization, and the sentiment system.

music director Emma Di stanford '28

About

Hi, I'm Emma

I work somewhere between product and engineering, and at Ditto I don't really separate the two. I'll write the PRD, build the thing, and then a couple of weeks later I'm the one looking at what the numbers did. That last part is my favorite. It's where you find out whether the idea was any good, and it's usually more surprising than I expect it to be.

I got into all of this through robotics. Two years training perception models for an apple-picking arm taught me how much distance there can be between a number on a slide and a machine in an orchard, since 86% accuracy is a genuinely good result and also means the arm comes back empty more often than you'd like. I've been interested in that gap ever since. Since then it's been behavioral research on how people reason about cause and effect, and consulting work that was mostly about turning a hundred user interviews into something a team could build.

What connects all of it is that I really want to know whether something worked. I'd rather build something small I can measure than something big I can't, and I'd much rather find out I was wrong early than stay confident for months.

Outside of work I'm music director for an a cappella group and I play in the Stanford Wind Symphony, and I spent a term at Oxford studying platform regulation and AI ethics, which I ended up loving more than I expected to. I'm always happy to talk about matching algorithms or four-part harmony.

See what I've built

Receipts
School
Stanford University, B.S. Computer Science (HCI), minor in Management Science & Engineering — June 2028
GPA
4.0 / 4.0
Courses
Data Structures & Algorithms · Analysis of Algorithms · Computer Systems · Large Language Models · Programming Abstractions · Convex Optimization · Probability Theory · Linear Algebra
Also
Counterpoint A Cappella (Music Director) · Stanford Wind Symphony · Women in CS · University of Oxford visiting student
Toolkit

Product

PRDsInstrumentationFunnel analysis Cohort analysisSurvey designUser research LinearPostHogFigma

Engineering

PythonTypeScriptC++C JavaRReactNext.js NodeFlaskMongoDBDockerCI/CD

AI / ML

LLM agentsChatbot skill designEvals Shadow testingClassifier designMCP servers PyTorchYOLOv8OpenCV

Selected work

Things I shipped, and what happened next

Four of these run in production at Ditto. Each write-up goes through what was broken, what I built, and what happened once it shipped.

Ditto · Engineering DRI + acting PM

The Pause Revamp

Deactivating was the only way to step back, so people used it for things that weren't permanent. I built the in-between state: a pause flow, timed auto-resume, and an exit hub, out to 18K users in a week.

−19% deactivations RetentionReact TypeScriptInstrumentation
Read →
Ditto · Matching algorithms

Three-Tier Match Priority

Ditto guarantees some users a match, and the matcher was keeping that promise 37% of the time. Adding priority tiers to a weighted Gale–Shapley / Edmonds' Blossom matcher without gutting overall volume.

37% → 87% coverage Graph matchingPython MongoDB
Read →
Ditto · LLM systems

The Sentiment Loop

A post-date feedback chatbot that learns what someone actually wants, feeding a production sentiment system that now scores the entire active user base. Two per-surface scores instead of one blended average.

Primary signal source LLM agentsSafety escalation Classifier design
Read →
Ditto · Growth surface, owned end to end

The Yearbook

Your friends vote on you across six dimensions, an LLM writes up who that makes you, and the results page hands you back to Ditto. Instrumented from the CTA all the way through onboarding.

844 launch visitors ReactTypeScript MongoDBAttribution
Read →
TreeHacks 2026 · Full-stack

Atria — AI Hospital Bed Allocation

Hospitals decide who gets discharged and who gets a bed mostly without forecasting. Two surfaces for two different jobs, over a multi-agent backend that streams every decision before it executes.

Next.jsThree.js WebSocketsMulti-agent Human-in-the-loop
Read →

Also built

Smaller things, still real

Side projects and research, all of which either shipped to real users or ended up published.

Experience

Where I've been

Roughly in order. Where something already has a write-up above, I've linked to it instead of saying it twice.

Off the clock

Outside of work

On tour in Italy with the Stanford Wind Symphony
Wind Symphony tour, Italy
Performing with an orchestra
Orchestra performance
High school robotics team at competition
Robotics competition, high school
Photo booth at a Cal Hacks event
Cal Hacks
Sunrise hike with friends
Sunrise hike
Baking cookies with friends
Baking with friends

Contact

Let's talk

Looking for PM and SWE roles for Summer 2027. Ideally somewhere I get to help figure out what to build and then build it, working with people I can learn a lot from.