Production, in daily use · Architect and lead developer · 2025 to present
OTTER
The operations platform a 30-employee Florida contractor runs its business on, daily
- Next.js
- TypeScript
- PostgreSQL
- Prisma
- Neon
- Vercel
- RBAC
- PDF / XLSX / DOCX
The constraint
Invoicing rules were not uniform. Each client and each operating division wanted a different document, in a different format, built from the same field data. That is why the document pipeline is a first-class subsystem rather than a report button, and why the permission model goes down to per-user overrides instead of stopping at roles.
What it is
Scheduling, digital daily safety forms, invoicing, document generation, and file management for a field-construction company managing 40+ active jobs. Built from nothing and in daily production use.
What shipped
- 51 PostgreSQL tables on Prisma behind 143 REST route handlers.
- A 5-role hierarchy with 35 granular permissions, per-user grant and revoke overrides on top of the role baseline, and an audit log for every permission change.
- A document pipeline emitting PDF, Excel, and DOCX for client-specific and division-specific invoices, time-and-expense forms, and CTR spreadsheets, all built from aggregated field data.
- A drag-and-drop scheduler over a 13-state job workflow.
- Serverless deployment on Vercel with Neon Postgres and Blob storage, hardened with CSRF protection, rate limiting, and JWT sessions, plus an HMAC-signed integration with an internal ticketing service.
Measured outcome
- Invoice cycle went from multiple days of manual work to same-day.
- Foreman administrative time down roughly 30%.
- In daily production use at a 30-employee contractor across multiple operating divisions.
Screens

