When a solar installer puts panels on a building, somebody has to certify that the roof can hold them. Castillo Engineering was running that entire pipeline on Excel, Salesforce, and a creaking internal system. My challenge wasn't just building a better tool, and designing something five types of users with very different mental models would trust enough to abandon their existing workflows for.
How a Solar Letter gets made
Inputs
- Building codes (AHJ)
- ATC/ASCE hazard data
- Customer project details
- Site photos + drawings
Calculation
- Roof geometry + loads
- Structural analysis
- Engineer review + QA
Output
- Certified Solar Letter
- Building code citations
- E-seal applied
Delivered to AHJ
My IA decision: follow the artifact through the organization, not the org chart. Roles that handle the same artifact share UI; roles that perform genuinely different work get different surfaces. This kept navigation legible without building a separate product for each user type.
Installer
Submits project, uploads docs, tracks status
Jr. Engineer
Runs calculations, drafts letter
Sr. Engineer
Reviews, approves, e-seals
Manager
Assigns work, monitors pipeline
Support
Handles installer questions
I designed the next phase while engineering implemented the previous one. Overlap was the only way to hit the timeline without losing coherence.
Replace Excel by removing options, not adding them
The instinct when replacing a spreadsheet is to support every edge case it supported. I made the opposite call: the calculation surface only supports what Solar Letters require, validates inline, auto-fills contextually, and surfaces relevant building codes without requiring lookup. Constraint, not flexibility, was the win. Multiple engineers said it was faster than Excel.
One workspace, two modes, not two separate surfaces
Junior and senior engineers work on the same artifact at different stages. Instead of building two separate surfaces, I designed one shared workspace with a role-aware mode toggle at the top. Review-only controls appear only for senior engineers. Less product to build, less to break, fewer context-switching costs for people who need to move quickly.
RFI as a first-class product object, not an email thread
When an engineer needs clarification mid-review, that conversation was happening over email, invisible to the system, untrackable, easy to lose. I designed the RFI Flow as an inline, threaded object tied to a specific field or section of the project, with visible open/closed state and an audit trail that stays inside the platform.
E-seal as a deliberate, weighted moment
The e-seal is the legal equivalent of an engineer's professional signature, and it has real liability implications. I designed it as an explicit, confirmation-gated action with a document preview before commitment and a clear audit entry on application. The most legally consequential click in the product gets the most considered UI. One-step would have been faster; it also would have been wrong.
Building code expiration: the system doesn't trust itself silently
Building codes change. I designed a verification expiration mechanism that flags codes for re-verification after a defined interval: a soft warning in the workspace, a hard one at letter generation. A design decision in service of the engineer's professional liability, not just system correctness.
Displacing something people own
Engineers had built their Excel sheets over years. They were customized, familiar, and there was real ownership attached to them. Displacing a tool people have made their own is fundamentally different from replacing something they hate. I dealt with this by making the transition as low-friction as possible: exporting familiar formats, keeping calculation patterns that mirrored Excel's logic where there was no reason to change them, and building the new features around workflows they already understood.
Domain precision without becoming an engineer
Solar engineering has specific calculations, unit systems, and regulatory requirements that I had to understand well enough to design meaningful constraints, without understanding them so superficially that I built something the engineers would dismiss. I handled this by treating every review session as a domain lesson and asking the engineers to explain not just what the system should do, but why those were the right constraints. That "why" usually unlocked better design than the spec alone would have.
Five roles, no single happy path
Five user roles with genuinely different mental models meant I couldn't optimize the IA for any one type without disadvantaging another. Every navigation decision required explicitly asking: "who loses here, and is that acceptable?" The artifact-following IA emerged as the solution to this; the Solar Letter is what every role has in common, so organizing the product around it gave everyone a shared mental model even when their individual tasks diverged.
20–30
New orders processed per day since launch
A throughput that wouldn't have been sustainable on the Excel + Salesforce stack it replaced. The product is also boring in the right way: engineers don't fight the calculation surface. It just works.
Engineering team
Stopped using Excel for Solar Letter calculations. No transition period; they switched and stayed.
Salesforce
Decommissioned. CRM functions now live alongside the engineering workflow they were always supporting.
New engineers
Onboard onto one platform instead of three. The onboarding cost went from learning three tools to learning one workflow.