Skip to content
Selected work

// Case study · N°04

Bricks & Bids.

LEGO live-auction platform. Stripe migration in 5 zero-downtime phases, Kafka request/reply bid queue.

Role
Backend Engineer
Year
2024 → 2025
Status
shipped
Stack
Spring Boot 3.x · Java 17 · Kafka

Backend engineer on a US online auction marketplace for LEGO sets, minifigures, and original builds. A Spring Boot 3 + Java 17 + PostgreSQL service with live bidding; I authored 180 commits across 14+ months of migrations, integrations, and feature work.

// Context

I joined when the codebase already ran on Braintree, GoShippo, and SendGrid/Twilio. By the time I rotated off, all three had been migrated, Kafka had been introduced for atomic bid processing, and a full CI/CD pipeline shipped JARs to a DigitalOcean droplet.

Role

Backend engineer

Commits

180 authored

Payments

5-phase zero-downtime

Tenure

14+ months

Payments migration: Braintree → Stripe .

A multi-month, surgical migration with no customer-visible downtime, run in five phases: client-token endpoints, payment-method registration and bid-side authorization, charge/capture and refunds on auction win, Stripe Connect for seller onboarding and payouts, then the final cutover retiring Braintree.

Other systems I owned .

  • Shipping migrated GoShippo → EasyPost, with USPS Price Discovery (OAuth2) for live rate quoting and rebuilt buyer/seller delivery views and webhooks.
  • Transactional email moved SendGrid+Twilio → AWS SES with Thymeleaf templates fed by 20+ Spring ApplicationEvents and @Async listeners.
  • A Kafka request/reply bid queue behind a feature flag that absorbs traffic spikes asynchronously while preserving per-auction ordering and atomicity.
  • Auth refactor: sign-up/login/OTP, Google OAuth2, brute-force rate limiting, Passay password policy, pending-users held in memory until OTP verification so the DB stays clean.
  • The CI/CD pipeline: GitHub Actions → SCP/SSH → DigitalOcean droplet → systemd, with dev/prod profiles so seeders never run in production.