The problem I watched for ten years
A UAE typing centre is where paperwork becomes official. Labour contracts, visa applications, renewals — residents and company PROs come in person, hand over documents, wait, and come back. On a busy morning the room is full before the shutters are fully up.
Most of that waiting is not the service itself. The typist needs the documents and the details; the customer needs the result. The physical queue exists because there has never been a trusted channel between the two.
The queue is not the service. It is the thing standing in front of the service.
What makes it hard
An online typing centre is not a form on a website. The constraints come from the process itself:
- Every service has its own required document set, and a missing page means rejection, not a retry.
- Fees differ by service and applicant category, and they change.
- Documents are sensitive. Passports and Emirates IDs cannot sit in a public bucket.
- Centres already have their own workflow and staff. Software that ignores it gets ignored back.
- Half the users read Arabic first and the other half read English first. Neither should feel like a translation.
How I am approaching it
Model the service, not the form
Each service is a record with its own document checklist, fees and rules. The customer-facing form is generated from that record, so adding a service is configuration rather than a rebuild.
Make the status the product
What people actually want from a typing centre is to know where their application stands. Every job moves through visible states — submitted, accepted, in processing, ready, collected — and each change notifies the customer.
Build for the centre, not only the customer
Centres get a console shaped like the way they already work: an inbox of incoming jobs, a claim action, a document viewer and rejection reasons that mirror the real ones. If it is slower than the counter, nobody will use it.
Arabic from the first line of code
Layout direction, numerals, dates, labels and document names all switch properly. Arabic is part of the build, not a toggle added at the end.
Where it stands
The backend and data model are built. The customer flow and centre console are in progress, with Arabic running alongside English rather than behind it.
Ten years at the counter turned out to be the research phase.