Datum
One system for running a construction company.
The office and the field, finally in one place.
Construction runs on handoffs, and handoffs are where things get lost. Datum keeps the projects, the people, the equipment, the safety paperwork, and the money in one place, so nothing has to survive being passed between five different tools.
Built for boots on the ground.
The field isn't an afterthought here. Daily reports, hazards, timecards, concrete pours. It all gets captured on site, while it's happening.

Your day, already sorted.
Everyone opens Datum to their own work: what needs action, what's coming up, and what's running late.

Every department. One Datum.






The short version.
The brand film. 28 seconds.
Building it.
I co-founded Datum and build the product end to end: design, frontend, backend, and the AI that runs underneath it.
What is shipped.
Full-stack engineer. Architecture, security, infrastructure and release, end to end.
- 2,259
- HTTP endpoints across 394 backend services
- 1,031
- tables in Azure SQL, behind 558 tracked migrations
- 332
- screens and 392 shared components in React
- 132
- standard operating procedures, automated end to end
Tenant isolation is enforced at the query layer rather than trusted to callers, with role based access through Entra ID. The agent layer runs inside that same boundary: a tool registry and persistent memory fenced by SQL guardrails and data policy, so an agent cannot reach across tenants.
An ERP adapter framework with a durable writeback queue, normalizing phase codes and cost types, so the platform talks to the accounting systems contractors already run. GDPR deletion and data subject export, which meant resolving one person across three identity systems that had never been connected.
A React Native app through TestFlight, an Outlook add-in deployed across the organization, and CI/CD into Azure with health checks and uptime monitoring.
How it is put together
A request passes down through these layers. Rest on a plate, or tap one, and it explains itself. Nothing here is a number the page does not already count.
Web app
React. Everyone opens Datum to their own work: what needs action, what is coming up, and what is running late.
Decision logs
The engineering behind three of those claims: what was chosen, what it cost, what broke.
- Tenant isolationApp-layer scoping, an adversarial audit, and the day RLS went under all of it.
- Session promptingAn agent that inherits the clearance of the person asking, and never has one of its own.
- ERP writebackThe decision was who owns the money. The queue is just the consequence.