Portfolio Graphable Contact

Expense Account: Full-Stack in One Hour

View on GitHub

After a technical interview where I spent 45 minutes manually typing TypeScript to solve an expense-report validation problem — pretending databases, auth, and caching don't exist — I wondered: what if the interview just said "build the whole thing, use every tool you have, you've got one hour"?

So I did. Starting from an empty directory, I built a complete expense report system: Go API with Gin + GORM + MySQL, React frontend with TypeScript and Tailwind, JWT auth, CSV upload, configurable business rules with full audit history, dry-run validation, and a manager workflow for reviewing and submitting expense reports. All in under an hour, on camera, narrating my thought process the whole time.

The rules engine supports single-transaction clamps ("no food expense over $100"), trip-aggregate clamps ("no more than $250 total on transportation"), and total-trip caps. Rules are soft-deleted with an effective_until timestamp so historical expense reports stay valid against the rules that were active when expenses were incurred.

The point: the value of an engineer isn't typing speed on a leetcode problem. It's the ability to express a complete technical vision, make reasonable architectural decisions, and ship something real — fast.