Construction

Embedded today, in production

Northeast Florida Commercial Contractor

Custom apps the contractor owns, replacing the rented tools its team used to fight. The system of record stays; the daily work moves into software they own.

An embedded engineer in the contractor's own cloud, building apps the company owns app by app: cost-to-complete forecasting, change-order routing, approvals.

Problem

The problem.

Mid-market commercial construction runs on rented software priced per person: every new hire and every promotion adds recurring cost without adding proportional value. Most of what those tools do day to day is narrow: enter time, post a job-cost batch, review a forecast, approve a change order. Rebuilding those flows used to need a software team. With managed cloud surfaces, a REST-accessible backend, and AI-assisted code generation, one embedded engineer now rebuilds them app by app as software the company owns, while the system of record stays in place. What the company ends up owning is a harness: the setup around the AI that connects it to their systems, enforces their rules, catches mistakes, and remembers what works, with a build loop landing shipped improvements into that software week after week.

Approach

How I built it.

  • One embedded full-stack engineer working inside the contractor's own cloud. The system of record stays in place; its vendor REST API handles every write.
  • Custom apps the company owns replace specific rented workflows: cost-to-complete forecasting, change-order routing, project lookup, job-cost reporting, approvals. Each feature ships as a single PR.
  • Reads go through thousands of live SQL views from the system of record, compiled into a queryable, drift-monitored knowledge base. A schema-drift detector catches upstream upgrades before they break downstream code.
  • Writes go through the vendor's official REST API so every mutation lands through the vendor's own audited pipeline. No middleware platform, no low-code suite, no off-the-shelf "construction tech" subscription.
  • Each app lands behind Entra ID with project-scope authorization enforced per route. Every role whose daily work moves into software the company owns is one less per-person bill.

Architecture

What's running, and why.

Frontend / app surface

Azure App Service
Node host serving a Vite + React 19 + TypeScript bundle behind Express.
Azure Static Web Apps
Functions runtime for lightweight HTTP endpoints alongside the main app.

Auth

Entra ID
Single sign-on with project-scope authorization enforced per route.

Data layer

Reads: ERP database (SQL Server)
The ERP is the read system of record, untouched. Thousands of live SQL views are compiled into a documented, cross-referenced knowledge base. The read contract every app builds against.
Writes: ERP vendor REST API
All mutations (projections, change orders, subcontract batches, AP/JC posts) go through the vendor's own audited pipeline.
Schema-drift detector
Watches ERP upgrades and flags view-shape changes before they break downstream code.

CI/CD and operations

Azure DevOps Pipelines
Single-PR-per-feature flow with build / lint / test gates before deploy.
Operational tooling
Diagnostic scripts plus an isolated scripts/dangerous/ directory for write-class operations that need explicit human gating.

Outcome

What shipped.

$150K/yr

Retired per-seat licenses, measured against the bill they replaced. Stakeholder-confirmed.

And growing

More rented tools retiring in parallel as the team moves into owned apps

Multiple apps

Live in production: cost-to-complete forecasting, change-order management; more in pipeline

Thousands

SQL views from the system of record, compiled into a drift-monitored read contract for every app

Owned dashboards

Reporting moving off rented viewers into dashboards the company owns

Pending

Workflow time savings (forecasting, approvals, batch posting). Not yet measured.

Stack

  • TypeScript
  • Node.js
  • React 19
  • Vite
  • Express
  • ERP (SQL Server)
  • ERP REST API
  • Azure App Service
  • Azure Static Web Apps
  • Azure Functions
  • Entra ID
  • Azure DevOps
  • BI dashboards

What this proves

Where this ports.

A regional GC, MEP, or specialty contractor in Northeast Florida doesn't need to wait for a "construction tech" platform. The rented tools running narrow daily work are a recurring six-figure line item, and that is just the part you can count: the bigger return is the work owned software unlocks. The pattern (one embedded engineer, the contractor's own cloud, vendor-API writes, governed reads, app-by-app replacement) ports directly to the next contractor. You own what gets built.

Want the same pattern in your business?

Thirty minutes. Describe what you're working on and I'll tell you if I can ship it.