Work 01 · Capstone — Amazon Shopbop · Serverless · Sep 2026 – Present
The Daily Fit
A Wordle-style fashion puzzle, scored by semantic similarity.
§1 The Problem
Shopbop sells fashion; the capstone brief asked for a daily habit to match — a guessing game where the score isn’t letter colours but closeness of taste. Judging “semantically similar” between outfits is exactly the kind of problem humans argue about and vector search doesn’t. It also had to persist streaks, or a daily game is just a page refresh away from forgetting you existed.
§2 The Architecture
A web client talks to a serverless AWS spine: API Gateway fronts Lambda functions that generate the daily puzzle, score every guess through Shopbop’s vector search API, and persist puzzles, guesses, and streaks in DynamoDB. No servers, no schedules to babysit — the game is data, and the data is small.
§3 The Tradeoffs
Serverless is the right tradeoff because the load is a daily spike, not a stream — cold starts matter less than a zero-ops bill. One DynamoDB table holds puzzles, guesses, and streaks; denormalizing around known access patterns beat a relational schema for this. And the similarity judge lives in Shopbop’s own vector search API, which means we inherit their notion of style — for a fashion product, that is the correct dependency to have.
Serverless earns its keep here because the traffic is a daily spike, not a stream. A game that resets every day doesn’t need a fleet — it needs one table that never lies about a streak.
Stack — drag the strip to scrub