Systems
Custom software development and AI engineering for Dubai
We build the custom software that does not exist off the shelf: transactional platforms, internal systems, integrations between things that were never meant to speak, and AI components with a deterministic layer underneath them.
The off-the-shelf product covers 70% and the remaining 30% is where your margin lives.
You have an AI prototype that demos well and cannot be trusted with a real order.
Three vendors each built a piece and no one owns the seam between them.
The system works, but only one person understands it.
- 01
Product and platform engineering
Full delivery from domain model to production: backend, data layer, interfaces, and the operational tooling the team needs to run it without us.
- 02
AI systems with a deterministic core
Language models are useful and unreliable in the same breath. We constrain them with a deterministic layer that encodes the rules of the domain, so the probabilistic part can be wrong without the system being wrong.
- 03
Integration work
Payment gateways, ERP, accounting, logistics, messaging, government portals. The unglamorous half of every platform, and the half that decides whether the other half is usable.
- 04
Instrumentation from day one
A system that cannot be observed cannot be improved. Logging, tracing and the metrics that matter to the business are part of the build, not a later ticket.
- 01
Working software in production, released in stages
- 02
Source, infrastructure and deployment owned by you from the first commit
- 03
Documentation aimed at the next engineer rather than at the invoice
- 04
A handover that ends with your team shipping without us
Invariant
A probabilistic component is only safe inside a deterministic boundary.
- What stack do you work in?
- Python and TypeScript for most delivery, PostgreSQL as the default system of record, Kafka where events genuinely need decoupling, and the major model providers for AI components. The stack follows the problem; we do not have one to sell you.
- Can you take over a codebase someone else wrote?
- Yes, and it is a large part of what we do. It starts with an audit, because inheriting a system without understanding its model is how the second rewrite gets commissioned.
- Do you build AI agents?
- We build systems that use models where a model is the right tool. The engineering question is never the model — it is what the system is allowed to do when the model is confidently wrong.
- Are you a Dubai company?
- We work with them; we are not one. Data Nexus is licensed in Ras Al Khaimah by RAKEZ and the work is done from Etihad Towers in Abu Dhabi. There is no Dubai office and we do not claim one. For delivery it changes little — an engineering team is remote to your building either way, and the sessions that matter happen at your premises rather than ours.
Each one carries what it is good for, what it is proven on here, and the point at which it stops working. We take no vendor commissions on any of them.
- PostgreSQL
- A relational database with real transactions: either every part of a change lands or none of it does.
- Docker
- Process isolation with the filesystem and dependencies pinned, so a program runs the same on a laptop and on a server.
- three.js
- A WebGL library for real-time 3D that runs in a browser tab with nothing to install.
- Retrieval-augmented generation
- Answering from a body of documents the model retrieves at question time, rather than from what it absorbed in training.
- TypeScript
- A typed layer over JavaScript: shapes are checked when the code is compiled, and erased before it runs.
- Next.js
- A React framework that decides, per route, whether a page is rendered once at build time or computed on every request.
- React 19
- React is a JavaScript library that describes an interface as a tree of functions of state, and recomputes the parts of that tree whose state changed.
- Tailwind CSS v4
- A CSS framework whose fourth version has no JavaScript configuration at all — the theme is declared as custom properties inside the stylesheet, and every utility class is generated from those declarations.
- Supabase
- Managed PostgreSQL with an authentication service, file storage and a generated HTTP API in front of it, addressable directly from a browser.
- Prisma
- Prisma is a schema definition language for relational databases that generates a typed client and emits versioned SQL migration files.
- Vercel
- A hosting platform built by the authors of Next.js, where a push to a git branch becomes a globally cached deployment whose per-route cache behaviour is taken from the framework's own build output.
- Cloudflare
- A global proxy network that terminates traffic close to the visitor, plus Workers — a runtime that executes code at those same locations rather than at an origin.
- Turborepo
- Turborepo is a task runner for JavaScript monorepos: it reads the dependency graph between packages, runs tasks in the right order, and skips work whose inputs have not changed.
- Python
- A general-purpose language whose value in this practice is narrow and specific: the reference implementations for reading and writing awkward archive and binary formats — .docx, .xlsx internals, font tables — are written in it.
- Playwright
- A Node library that launches and drives Chromium, Firefox and WebKit through one API — written for end-to-end tests, equally usable as a scriptable browser.
- Vitest
- A test runner that reuses the project's own Vite build configuration, so tests run through the same transform and the same module graph as the application.
- Vite
- Vite is a development server and build tool: it serves source files as native ES modules while developing, and bundles them with Rollup for production.
- Sentry
- Sentry captures unhandled errors and slow transactions from running software, groups them into issues, and ties each one to the release and the commit that introduced it.
- Ziina
- A UAE payment processor, licensed by the Central Bank of the UAE, that takes cards and wallets through a hosted page created by a single API call.
- MDX
- MDX is a format that compiles Markdown into JSX, so a React component can be placed in the middle of a paragraph and rendered as part of the prose.
- WordPress
- The PHP content management system behind 40.7 per cent of all websites, which assembles every page at request time from a core, a theme and an unbounded number of third-party plugins.
- Framer
- A hosted site builder in which the design canvas is the source of truth: pages are drawn, and Framer renders and serves them from its own infrastructure.
- Telegram Bot API
- Telegram's programmatic interface: bots that hold a conversation, and web apps that render a full interface inside the chat.
- Icon systems
- The libraries that supply an application's icons: Font Awesome, Phosphor and Lucide are the three we ship.
- Document extraction
- Reading the fields off a photographed document — passport, Emirates ID, driving licence, trade licence, vehicle registration, insurance, an odometer, an invoice — and filing them against a record.
- Model Context Protocol
- An open protocol that lets an assistant call tools and read live data directly, instead of being handed an excerpt somebody pasted.
- SQL
- The language a relational database is actually configured in — tables, constraints, indexes and access policies.
- JavaScript
- The language of the browser, run on the server too — used here without a type layer on top of it.
- Shell
- The glue that runs on the server: deployment, backups, recovery and the small operations nobody wants to do by hand twice.
- From a brief to work somebody has accepted
- A piece of paid work, travelling from the sentence that started it to the moment the buyer agrees it is finished and can carry it without the supplier. 6 steps, 6 known jams.
- From a customer’s question to an answer the business can stand behind
- One question arriving at an automated agent, and everything that has to hold for the reply to be something the company would have said itself. 7 steps, 7 known jams.
- From something breaking to somebody confirming it works
- An outage, from the moment the system stopped being correct to the moment a person has checked that it is correct again — including the parts that happen before anybody has touched a keyboard. 6 steps, 6 known jams.
A conversation is enough to establish whether there is something here for us to build — and we will tell you if the honest answer is that you should buy something off the shelf instead. That answer costs you an hour and has saved clients a quarter.