The problem
Contractor onboarding and project management span multiple applications, licensing sources, and permission levels. The engineering challenge is to connect those workflows while keeping identity and access consistent.
As a founding software engineer, I built four applications using Next.js, React Native, Supabase, and Stripe.
Verification across registries
I automated license verification across 20 state registries using FastAPI, OCR, and vision language models. The workflow flags discrepancies between submitted documents and registry information for review.
Session performance and authorization
- 01Submitted documentsContractor onboarding inputs
- 02OCR & vision modelsExtract and compare document information
- 03Registry verificationCheck licensing across 20 state registries
- 04Discrepancy reviewFlag inconsistencies for review
A public workflow summary. PostgreSQL RLS enforces access; private screens and customer information are excluded.
I parallelized five session queries and cached ES256 JWT verification to reduce repeated work on the authentication path. PostgreSQL row-level security enforces role-based access close to the data.
These decisions address different concerns: parallel queries remove avoidable serial waits, verification caching avoids redundant cryptographic work, and RLS provides the authorization boundary.
Scope and results
- Four applications for contractor onboarding and project management.
- License-verification coverage across 20 state registries.
- OCR and vision-model checks to flag document discrepancies.
- Parallelized session queries and ES256 verification caching.
No internal latency benchmark or private customer data is presented here.
Engineering takeaway
A multi-application product needs a coherent authorization model as much as a coherent interface. Putting access rules at the database boundary helps make those rules consistent across clients.