ON-DEMAND SERVICES · MOBILE
QiWash
On-Demand Cleaning Services Platform
QiWash is an on-demand cleaning services platform designed around the relationship between customers and service providers.

The problem
A service marketplace needs to coordinate more than a booking screen. Customers need to discover and request services while providers need their own workflows and management capabilities.
What I built
The product combines a Flutter client experience with a NestJS microservices backend and PostgreSQL.
What I owned
- Mobile product surfaces for customers (discovery, map, packages, booking) and providers (operations, chat).
- NestJS microservices and PostgreSQL behind the mobile clients.
- Payment steps woven into the booking journey so the flow stays in-product.
What changed
- Customers and providers work in dedicated flows instead of sharing one generic booking screen.
- Marketplace coordination spans discovery → booking → provider ops on the same product system.
- Backend and mobile stay aligned around real service workflows, not a UI-only demo.
Engineering challenges
Marketplace workflows
Customer and provider workflows need to remain understandable while the backend handles multiple responsibilities.
Approach
Separate customer and provider experiences were designed on top of a NestJS microservices backend.
Provider management
Service providers require their own operational flow rather than simply sharing the customer interface.
Approach
Dedicated provider dashboards and flows keep operational tasks distinct from the customer booking journey.
Payments
Payment-related workflows need to be integrated into the product while keeping the experience clear.
Approach
Payment steps were woven into the booking flow so customers can complete the journey without leaving the product context.
Gallery
Customer home and service discovery
Stack
- Flutter
- NestJS
- Microservices
- PostgreSQL
Role
Full Stack Developer
Contact
Need similar engineering?
Building a product system and need someone who can own the hard parts — I reply on WhatsApp.