Professional work / AssetWorks LLC / 2026
From one app to a shared platform
Pulled authentication, users, audit, and the API gateway out of a single product and into a shared backend that several applications, plus mobile, now build on.
Shared backend in use across four internal applications as of October 2026
- 4
- internal applications on one shared backend, plus mobile
- 8
- services verified healthy in the proof of concept
- 2
- new developers onboarded onto the platform
- 94
- backend tests passing with CI green after cleanup
The problem
Several internal applications were each carrying their own copies of the same services and tables. Every copy drifted, and changing an endpoint in one place kept breaking another app.
My role
Designed the shared-backend model and led the move: migration strategy, service boundaries, the documentation other apps build against, and onboarding new developers onto it.
- Applications
- Field validation web app
- Operations dashboard
- Two newer internal apps
- Mobile apps
- Shared gateway
- Per-app proxy routes
- Consumer contracts
- Shared services
- Auth
- Users and profiles
- Audit
- Data
- Per-service databases
- App-scoped migrations
What I did
Prove it before committing
Built a proof of concept that ran the original product's auth, users, audit, and gateway from the shared source. All eight services came up healthy and login worked end to end. Along the way I found and fixed cross-repo problems, including a gateway proxy body-forwarding bug and migration checksum failures.
Give each app its own data boundary
Designed app-scoped migrations and per-service database isolation. I collapsed years of incremental migrations into one baseline per service and separated seed data from schema, so each app owns only its own data.
Write down the contract
After the third endpoint mismatch broke a consuming app, I created a living consumer-contracts reference (every endpoint, who calls it, and the response shape) with a change-impact checklist, plus a consumer onboarding checklist and smoke-test script.
Make go-live evidence-based
Put in a multi-app go-live readiness gate, an evidence-based Definition of Done, a cross-app verification gate, and version-drift checks, so "ready" means demonstrated, not assumed.
Bring new developers in
Onboarded two new developers: set up their environments, walked them through the architecture, paired on their first services, and wrote a bootstrap spec for their new application. Wrote shared, cross-platform team workflows so Windows and Mac developers follow the same steps.
Stack
- TypeScript
- Node.js
- Fastify
- PostgreSQL
- Docker Compose
- AWS ECS
- GitHub Actions
- ESLint