All case studies
Operations platform MVP in twelve weeks
Replaced spreadsheet-driven dispatch with a real operations platform, shipped as a focused MVP and extended from live usage.
The problem
Dispatch ran on shared spreadsheets. Nobody could tell which jobs were late, drivers were coordinated by phone, and monthly invoicing took a week of manual reconciliation.
Challenges
- Operations could not stop for a rollout — the old process had to run in parallel
- Field connectivity is unreliable, so the driver view had to tolerate dropouts
- Invoicing rules were tribal knowledge, not documentation
What we built
- Dispatch board with job states, assignment and exception flags
- Mobile-friendly driver view with offline-tolerant status updates
- Automated invoice generation from completed jobs
- Role-based access for dispatchers, finance and management
Architecture
- NestJS API with an explicit job state machine — no free-text statuses
- PostgreSQL as the single source of truth, with an append-only job event log
- Queued invoice generation so month-end never blocks the app
- Docker Compose in staging, AWS in production, GitHub Actions for CI/CD
NestJSPostgreSQLReactDockerGitHub ActionsAWS
Key engineering decisions
An event log, not just current state
Every job transition is stored as an event. Disputes are answered from history, and reporting was built later with no schema change.
Codify invoicing rules in one place
We extracted the finance team's rules into a single tested pricing module, so a rule change is a config edit plus a test, not a code hunt.
Results
- Month-end invoicing dropped from days of manual work to a scheduled job
- Dispatchers see late jobs as they happen instead of at end of day
- The MVP scope shipped in twelve weeks and is still the core of the platform
Request a set of drawings for your own project.
One business day for a reply from an engineer, not a sales pipeline. Tell us the problem and we'll tell you honestly if we're a fit.
