The problem
Roof replacement is a multi-party workflow sold as a waiting period. Homeowners waited days for a number. Realtors stalled closings. Operators lived in a patchwork of quoting tools, email, and spreadsheets. Each audience invented a different path through the same job.
Role
CTO and co-founder. Accountable for product design, the design system, and the production platform — from Figma tokens to a Next.js / React app in production.

Strategy
- One intake: address in, price out. Measurement, pricing, and integrations stay behind a form that a homeowner can finish in minutes.
- The same job, different dashboards — homeowner, realtor, contractor, adjuster, and admin — instead of a single screen that tries to serve everyone.
- Treat the design system as a product: Figma tokens mapped 1:1 into React for landing, estimator, and admin chrome (tables, pipeline status, search).
- Retire the fragmented quoting toolchain. A unified portal and a webhook-driven lifecycle: proposal, payment, materials, crew.
- Design the operator path with the same care as the consumer one: pipeline, troubleshooting, QA “view as role,” and production observability so the team can operate what we ship.

Outcome
The platform is live at uroof.com: instant estimator, partner referral, and the path from price to proposal to crew. The design system is in production on consumer and admin surfaces. The live product has a public status page and an on-call path for production incidents.









