Engineer & founder

Work / JSS Technology

Jeye

Food delivery for Lebanon’s Bekaa region: a customer app, a driver app and an operations dashboard on one backend.

Role
Software architect & tech lead · built the backend and both Flutter apps
Company
JSS Technology
Timeline
Jun 2026 – Present
Stage
Launching end of October 2026
Platforms
iOS · Android · Admin dashboard
Team
JSS Technology client project
Jeye website: the full landing page
~4 months
From first commit to launch
3 apps
Customer, driver and operations, on one backend
USD & LBP
Cash on delivery in either currency
AR & EN
Arabic and English, right to left included

The problem

Drivers have to keep broadcasting their location while the app is backgrounded and the network is patchy, without flooding the server, and without a driver looking offline just because they switched apps.

Live tracking

How a driver’s position gets from their phone to the operations map and the customer’s order screen, even with the app in the background and a patchy network.

  1. 01 · Driver app

    The phone reports where it is

    While the driver is online or on a job, the app keeps sending its position over a Socket.IO connection that reconnects by itself, in the background on both iOS and Android.

    A new fix every 20 m moved · heartbeat every 45 s
  2. 02 · Backend

    The server keeps only what matters

    Each ping is validated and throttled by time and distance. The latest position goes to Redis and the database, and reachability is tracked apart from being online, so a backgrounded phone mid-delivery never looks offline.

    At most every 10 s and 25 m · 60 s position expiry · 90 s reachability
  3. 03 · Operations dashboard

    Operations see every driver live

    Positions stream to each branch’s dashboard and are drawn on a live map with every driver’s load. A background check flags drivers whose position has gone stale.

    Map redrawn every 2 s · stale after 8 min
  4. 04 · Customer app

    The customer follows their order

    Once a driver is assigned, the order screen shows them on the map until delivery. Status changes update the iOS lock screen and Dynamic Island, and a push says when the driver is close.

    Refreshes every 15 s · “arriving shortly” within 500 m

Key decisions

  1. 01

    The delivery fee comes from real driving distance plus uphill elevation, priced per region by matching the customer’s location against map boundaries, in USD or LBP, with routes cached so the maps APIs aren’t called twice.

  2. 02

    Background scans flag stuck orders, orders with no driver and uncollected cash, and accepting a delivery runs in a strict database transaction that re-checks the driver’s cash limit, so two taps can never double-accept an order.

Outcome

From first commit to launch in about four months, as tech lead: the backend and both Flutter apps, published on the App Store and Google Play under my name. Arabic and English.

What it does

  • Browse restaurants and shops, search by dish or cuisine
  • Live order tracking on a map, plus iOS lock-screen and Dynamic Island updates
  • Cash on delivery in USD or LBP
  • Delivery or pickup, saved addresses, coupons and loyalty coins
  • 4-digit delivery code handed from customer to driver
  • Driver app with timed offers that show the payout first
  • Driver wallet for cash held, debts and payouts
  • Voice calls between operations and drivers

Built with

Mobile
  • Flutter
  • Dart
Web
  • TypeScript
Backend
  • Node.js
  • Express
Data & realtime
  • PostgreSQL
  • PostGIS
  • Prisma
  • Redis
  • BullMQ
  • Socket.IO
  • Firebase
Payments & integrations
  • Google Maps
Delivery & ops
  • GitHub Actions

A closer look

Customer app

Browse restaurants across the Bekaa, order in a few taps, pay cash in USD or LBP, and follow the driver live on the map.

  • Jeye customer app: crave it, the home screen
  • Jeye customer app: find it, featured shops
  • Jeye customer app: order it, order placed
  • Jeye customer app: track it, live order tracking
  • Jeye: to your doorstep

Driver app

Go online, accept timed offers that show the payout first, deliver step by step, and keep track of cash and earnings.

  • Jeye driver app: go online, get orders
  • Jeye driver app: new order, tap to accept
  • Jeye driver app: deliver step by step
  • Jeye driver app: every delivery in one place
  • Jeye driver app: track your earnings

Links