// Case study · N°03
NYMA.
Fashion-streetwear e-commerce. Led the 4-phase Sentry observability rollout that surfaced silent prod failures.
- Role
- Full-stack Engineer
- Year
- 2025 → 2026
- Status
- shipped
- Stack
- TypeScript · Node.js · Sentry
Backend engineer on a US fashion auction and marketplace SaaS for streetwear and second-hand luxury. It began as a structured fork of the Bricks & Bids backend and evolved into its own product; I authored 172 commits across the migration and the new product surfaces.
// Context
NYMA runs three flows on one item model: timed auction, fixed-price marketplace, and in-person pickup. The migration was a tracked refactor: re-namespace 50+ packages, swap the LEGO taxonomy for a fashion one (brand, collab, sub-category, size, label), and rebrand the domain end-to-end.
Role
Backend engineer
Commits
172 authored
Observability
4-phase Sentry rollout
Emails
60+ event-driven
New product surfaces .
- A full in-person Pickup sub-system: end-of-day deadlines in the buyer’s local timezone, admin actions, a "both" fulfillment type, and 9 dedicated email events.
- A Power Seller program: enrollment, credit transactions, scheduled renewals, admin controls.
- Item Authentication with automated label generation and lifecycle events.
- AI-assisted listing descriptions with a per-user rate limiter, and OpenGraph previews for shared listings.
Payments & cost .
Re-architected the bid flow to hold a Stripe payment only on the first bid instead of every bid (a measurable fee saving without weakening the auction guarantee), plus Affirm and direct-payment integrations and webhook idempotency fixes.
Observability I led .
A deliberate four-phase Sentry rollout across auctions, bidding, payments, shipping, pickup, and marketplace: errors plus custom metrics through a shared SentryMetricsUtil with one naming convention. I codified the conventions afterward: no string-as-exception, PII hygiene in metric tags, and mandatory captureException inside @Async and @EventListener (Spring’s default async handler doesn’t forward to Sentry).