FLAGSHIP / 01

Yelo Sale

Senior Software Engineer · Gulf market (KSA)

B2B2C vehicle auction and sales platform with real-time bidding on web, iOS and Android.

Fleet owners sell cars in live online auctions instead of closed deals

Laravel 11Next.js 14FlutterSocket.IOMySQLRedis

Need something like this built?

Book a 30-minute scoping call
sales.iyelo.comOpen
Yelo Sale — product screenshot
Approach

A transparent digital auction house spanning web and mobile: fleet owners list cars and lots, customers compete in real-time live auctions with automatic proxy bidding, then reserve and pay online — backed by an ERP-synced invoicing pipeline and a full inventory state machine from listing to delivery.

Impact
Live auctions
Bid from web or phone, in real time
<200ms
From a bid to every screen
ERP-synced
Invoices flow to Microsoft Dynamics
The problem

Vehicle remarketing in the Gulf ran on offline, opaque channels — fleet owners and dealerships moved inventory through closed deals with no transparency, no real-time competition, and invoicing reconciled by hand against an enterprise ERP. The goal: replace it with a transparent, real-time digital auction house across web and mobile, where any verified bidder could compete live — without losing a single bid to a race condition.

The hard part

Live auctions are unforgiving. When dozens of bidders hammer the same lot in the final seconds, the system has to be the single source of truth: every bid ordered correctly, no lost updates, no two “winners,” proxy auto-bids resolved instantly — reflected on web and mobile in real time, in Arabic and English (RTL), and kept in lockstep with a Microsoft Dynamics 365 ERP.

The architecture
  • One contract, three clientsAn Nx monorepo with a Laravel 11 API serving a Next.js 14 web app and a Flutter (BLoC) mobile app, so web, iOS, and Android share the same types and behavior.
  • Server-authoritative real-time biddingLive bid state in Redis with atomic increments; a Socket.IO/Node layer broadcasts to every watcher. The server, not the client, decides bid order — eliminating race conditions and lost bids under load. <200ms bid latency end to end.
  • Proxy auto-biddingBidders set a max ceiling; the engine auto-counters rivals up to it, server-side, so they win at the lowest necessary price.
  • Inventory as a state machineEvery lot moves through listed → live auction → reserved → paid → delivered, with admin governance at each step.
  • Three-tier accessAdmin / Company / Customer, each behind its own JWT guard (multi-guard RBAC).
  • Enterprise sync & paymentsTwo-way Dynamics 365 ERP sync for customers, vehicles & invoices; Amazon Payfort payments; GoInfinito OTP + KYC bidder authorization; FCM push; PDF/QR invoices; AWS S3.
The outcome
  • A transparent, real-time auction house live on web, iOS, and Android (App Store + Google Play).
  • Real-time live bidding at <200ms latency, with proxy auto-bidding and zero lost-bid race conditions.
  • Offline, opaque remarketing replaced by a digital pipeline from listing to delivery, with ERP-synced invoicing.
  • Shipped on trunk-based alpha/beta/prod (Docker, GitHub Actions CI/CD, AWS).
My role Senior Software Engineer — Laravel back-end, Next.js front-end, and the Flutter mobile app.

Engineering write-up: Real-time Auction Bidding with Laravel, Redis and Socket.IO →

More work

Tell me what you're building.

Thirty minutes is usually enough to tell whether I'm the right fit. Bring the problem you have not been able to hand to anyone yet.

  • Reply within 24 hours
  • NDA before the first call
  • You own all code & IP once paid
  • Contract & invoice directly with me
  • Larger scopes: a vetted team, quoted per scope
  • Same NDA and IP terms for the whole team