Multi-vendor local delivery · 2024–2025
Thunder
Backend developer in a small team
A delivery marketplace for supermarkets, pharmacies and produce shops with three apps (customer, store and driver) and an order that moves through 13 states. I set up the service layer and its generator, built the driver side of the order lifecycle, and built its most distinctive feature: ordering something that has no price yet.
What stood out
Negotiating a price inside the chat
- A customer asks for an item the store has not priced. The request opens a private chat room with the store instead of an order.
- The store answers with an invoice sent as a typed chat message. Its status changes in place as the customer accepts or declines.
- On payment the invoice is converted into a normal order, with VAT and the store and driver commissions split, so everything after that reuses the standard lifecycle.
- Each state change has its own request class that checks who is asking and what the previous state was.