Automotive · 2026 · iOS + Android
Lezof Auto
Production Flutter app for a leading UAE car-maintenance company. Real-time tracking, in-app payments, and quotations for 1,000+ users.
Technical Product Owner + Mobile Engineer
1,000+
Users
40%+
Fewer follow-ups
Workshop
Jobs, parts, stock
Click any screen to zoom
01
Context
Lezof Auto Services LLC needed the workshop in the technician’s and advisor’s pocket. The product is not a consumer car app. It is job cards, quotations, inspections, inventory (stock in, barcode), and account (expenses, part purchases, income) for a Dubai shop — including Emirates plates and a convert-to-job-card step.
02
My role
I owned
- Workshop IA: tools vs. order queues vs. inventory vs. account
- Job-card primary flow and quotation-to-job conversion
- Stock-in UX (scan vs. catalogue, rack, min/max)
- Flutter implementation against the shop backend
The team owned
- Odoo / ERP inventory and accounting
- Parts catalogue data
- Shop floor process ownership
03
The problem
A job in an auto shop is a pile of objects: vehicle, customer, labour, parts, quotes, and stock levels. When that pile lives on a desktop in the office, the bay waits. Advisors retype plates. Inventory is a guess until someone walks to the rack.
04
Discovery
The admin home had to open on the highest-leverage action: Create job card — vehicle, customer, labour & parts in one flow. Secondary: saved job cards, quotations, inspections. Queues (draft, open, tech…) track intake to handover. Inventory is a different job: scan a label or add from catalogue, then bin and quantity. Account is bills and payables, not a vanity dashboard.
05
Product decisions
Job card is the spine
- The decision
- One primary CTA on home. Quotes convert to job cards instead of living as a parallel universe.
- Why
- The bay does not work from a PDF. It works from a job. Quotes are a sales artifact until they become work.
- The trade-off
- Pure sales users tap twice. Floor users get a single object.
- The result
- Quotation list shows make/model, Dubai plate, and CONVERT TO JOB CARD as the climax of the screen.
Stock in is scan-first
- The decision
- Two doors: Scan code (barcode/QR from the label) or Add parts (browse catalogue), then rack location and min/max.
- Why
- Receiving is a physical act. Typing SKUs is how quantity drifts.
- The trade-off
- Camera UX had to be good enough in a bright workshop (glare tips, auto-read).
- The result
- Inventory is a phone at the shelf, not a form in the office.
Queues over status dropdowns
- The decision
- Horizontal queue cards (Draft, Open, Tech…) instead of a single filtered table as the mental model.
- Why
- Shops think in stages on the wall. The app should look like that wall.
- The trade-off
- Less Excel-like density. More operational clarity.
- The result
- Intake to handover is visible without opening every card.
06
UX / user flow
Teal workshop language. Home greets the admin, pushes Create job card, then tools and queues. Quotation screens put the Dubai plate in the center — the identifier everyone in the yard actually uses. Account uses expense / part purchase / income tabs and posted vs. not-paid on bills. Scan UI is a viewfinder with a tip, not a buried menu item.
07
Technical architecture
Flutter client on the shop’s operational backend (inventory, quotations, job cards, vendor bills). Barcode/QR capture on device. Role: signed in as Admin in the screens we shipped. Location switcher for the company entity. Numbers (AED, vendors, due dates) are live records, not mock tiles.
08
What I built
- Admin home with workshop tools and order queues
- Job cards, saved drafts, quotations, inspections
- Quotation-to-job-card conversion with vehicle and plate identity
- Stock in: scan, catalogue, rack, min/max
- Account: expenses, part purchases, income, bill status
09
Trade-offs
Customer-facing booking was out of scope. This is an internal operating system. We also did not rebuild full accounting on mobile — Account is the slice a manager needs at the counter, not a replacement for the ledger.
10
Launch
Internal Flutter app for Lezof Auto Services, used against real vendors, plates, and job flow in the UAE.
11
Outcome
Advisors can move a BMW X5 from quotation to job card, receive stock against a rack, and see a posted bill without walking back to a desktop. Throughput metrics stay with the shop.
12
What I learned
Industrial mobile only feels premium when the primary action matches the floor. I would have shadowed one full job — from plate read to handover — before freezing the queue names. The plate is the UX, not the menu icon.