On the work
Building government-grade software: lessons from a civic-data portfolio
What changes when the system decides an election, maps a regulation, or reports the air quality — and why that bar suits UAE smart-city work.
Most software fails quietly. A form doesn't submit, a page loads slowly, a number is off by a rounding error, and the cost is a mildly annoyed user. A handful of the projects I've worked on don't have that luxury: a system that records how a city council votes, a map that tells people whether a location is inside a legally protected zone, a service that reports the air quality a city breathes. When the output carries a decision or a claim about the real world, the engineering changes shape.
Correctness first, and provable
For the Municipality of Bitola's council e-voting system, "does it work" was the easy part. The real question was: does the vote get recorded correctly, and can we prove it? Those are two different requirements. The first is code. The second is data design — every vote leaves a clear, ordered, auditable trail, and no one, including whoever built the system, can quietly change a result after the fact.
That principle generalises. Anywhere a system produces a record that someone might later dispute — a vote, a payment, an approval, a compliance status — the trail is not a feature you add for the audit. It's the reason the system is trusted at all. It gets designed in from the first schema, not bolted on before launch.
The most important engineering on these projects is usually the part a user never sees: how the data is structured so that the answer can be defended, not just displayed.
Access control is the product, not a checkbox
On a typical business app, roles and permissions are plumbing. On a system making binding civic decisions, they're the point. Councillors sign in with individually assigned access. Privilege is least-by-default. Roles are separated so that the person who administers the system is not the person who can cast or alter a vote. This is standard security practice — but here it's load-bearing, and it gets the attention that reflects that.
It has to work on the phone people actually carry
Transit Ringas lets commuters in South Africa report safety incidents on public transport as they happen. Bitola City Bus shows riders where the bus actually is. Neither can assume a new flagship device on a strong connection. They're built for a mid-range phone, sometimes on a patchy signal, because that's who the service is for. Performance and offline tolerance aren't optimisations on these projects — they decide whether the thing is usable by the people it exists to serve.
Accessibility sits in the same place. If a public service is hard to use with a screen reader or a keyboard, it has excluded some of its citizens. That's a defect, not a nice-to-have.
Don't let the product overclaim
500m maps every school in North Macedonia and the 500-metre zones around them where casinos are prohibited by law. It would be easy to present that as an authoritative legal record. It isn't — the source data has approximation in it, and whether a specific venue is compliant is a question for the authorities, not a map. So the product says exactly that, plainly, on the page: informative, not authoritative; here are the sources; here's what it does and doesn't establish.
Honesty in the interface is part of building something trustworthy. A civic tool that quietly implies more certainty than it has is worse than one that states its limits.
Operations without a handoff gap
Bitola Air ingests and serves live sensor readings; the value is entirely in it being current and available. That means monitoring that actually catches a stalled feed, backups you can restore from and have tested, and runbooks for the failures you can predict. On these projects the person who built the system is also the one who operates it — there's no gap between "the developer" and "the ops team" where a 2 a.m. incident falls through.
Why this maps to UAE smart-city work
Dubai is spending heavily on exactly this class of system: services that citizens and government depend on, where the bar is correctness, auditability, resilience, and usability for everyone — not just the fastest path to a demo. The habits that a civic-data portfolio builds (design the audit trail first, enforce access for real, build for the low-end device, state your limits, operate what you ship) are the habits that class of work needs. It's a useful thing to have already done when the stakes are real.
More on how I work with UAE teams is on the Dubai & UAE page; the underlying capabilities are under Cloud & Security. Get in touch to talk through a project.
More reading
- Hiring a full-stack developer in Dubai: contractor, agency, or marketplace — The three ways UAE teams source engineers, what each actually costs you in money and coordination, and when a solo contractor is the right call.
- Working with a remote developer across GST (+4) — A playbook for Dubai teams hiring an engineer in Europe — the overlap window, the cadence, and the two weeks that decide whether it works.