OMO Lavanderias
A cross-platform ecosystem for over one million users of Brazil's largest fabric-care brand — orders, bookings, payments, and notifications in microservices that have to run every day.
Caring for clothes should be as easy as ordering food.
Serving over a million Unilever users across Brazil is a serious operational problem. Orders need to match partner laundries, bookings have to respect capacity and time, payments can't fail, and notifications need to arrive at the right moment — on iOS, Android, Web, and on the stores' internal apps.
The ecosystem grew organically. When I joined, there were real opportunities for simplification, idempotency, and concurrency control — especially at the boundaries between services.
Mid-level full-stack engineer, focused on backend and the contracts between services.
- — Maintenance and evolution of microservices for orders, bookings, payments, and notifications.
- — Concurrency control with Redis/Redlock; idempotent webhooks; SAGA choreographies between services.
- — Code reviews, definition of engineering standards, and mentorship for the team.
- — Participation in Bamse's AI Committee — applied research on agents to speed up parts of my own engineering workflow on this project.
Deep dive into the domain before any line of code.
Conversations with OMO product, operations, and customer support to understand the vocabulary, the real SLAs, and where the friction hurts most.
Mapping contracts and critical concurrency points.
Defining what needs idempotency (payment webhooks), what needs Redlock (slot booking), and what can be eventually consistent.
Implementation in vertical, observable slices.
Each slice delivers value and stays visible in logs and metrics — so we can validate with real operations before continuing.
Code review, standardization, and mentorship as a team contract.
The team moves faster when the standard is written down — and when review is technical and generous at the same time.
The system stays stable serving 1M+ users, with critical order, booking, and payment flows reliable enough to not wake the team up at night.
- — Idempotent payment webhooks eliminated manual operations rework on redelivered events.
- — Redlock on slot booking eliminated the race condition that caused double-booking at peak hours.
- — Review standards and ADRs adopted by the team reduced PR variability and the onboarding time for new devs.
- — Lessons from the AI Committee applied to my own workflow: project-specific skills and hooks accelerated recurring refactors.