“I need you to fix carrier partner restrictions. And by that, I mean every possible scenario.” — Lead Engineer, Feb 2, 2026

In 2.5 weeks, I rebuilt a broken authorization system so 1,300 agencies could launch homeowners on time

Obie’s authorization system couldn’t handle program‑level restrictions, staged rollout, or underwriting constraints. I reframed the data model, skipped Figma, shipped a clickable prototype in 48 hours, and led the redesign that kept launch on track.

RoleSole product designer
TimelineFeb 2 – Feb 18, 2026
Scope1,300+ agencies, 6 programs
Database
306 → 1 records
Speed
48 hours to prototype
Outcome
Launch on track
Story in 60 seconds
Problem: The authorization system couldn’t handle program‑level restrictions or staged rollout, and would have derailed launch.
My move: Reframed the data model, skipped Figma, and shipped a clickable prototype in 48 hours.
How: Led rapid iteration with engineering + PM, resolved conflicting mental models, and built a scalable allowances system.
Impact: 306→1 records per partner, self‑service workflows for 1,300+ agencies, launch stayed on track.
Prototype
48 hours
Database
306 → 1 records
Scale
1,300+ agencies
Outcome
Launch saved
The launch was eight weeks away, and the system couldn’t survive it

On Feb 2, the head of engineering asked me to fix “every possible scenario.” This wasn’t a UI polish request — it was a structural problem that could derail the homeowners launch.

We were preparing to roll out to 1,300+ partner agencies in staged waves (12 → 1,300). The authorization system created 300+ database rows per partner, relied on massive joins, and couldn’t express program‑level restrictions, staged rollout controls, or layered underwriting rules.

Constraint: Homeowners launched on 4/6. We had 2.5 weeks to redesign the entire authorization system or the launch would fail.
Scale
1,300+
Partner agencies
Legacy Model
306
Records per partner
Timeline
2.5 weeks
From emergency to approval
Impact
99.7%
DB complexity reduction

“Ever since we ripped out the real functionality, it’s been one fire drill after another. If this lands on homeowners and we blow the deadline, it’s on me.”

Lead Engineer (anonymized)
Slack Excerpt
LE
Lead Engineer Feb 2, 12:25 PM
“I need you to fix carrier partner restrictions. And by that, I mean every possible scenario.”
MC
Product Designer 12:33 PM
“I’m in.”
Anonymized for confidentiality. Roles preserved for context.
The rules were messy, and all of them mattered

AD, Underwriting, and Compliance each had different constraints — and the system had to satisfy all of them on day one, not “later.”

I stopped asking “what to restrict” and flipped the model

Instead of tracking everything a partner couldn’t do, I proposed an allowances model: define baseline capability, then layer explicit exceptions. That shift aligned with how admins think and gave engineering a structure that could actually scale.

Old Model
carrier_partner_restrictions
1 partner × 51 states × 6 carriers
= 306 records per partner

Problems:
• Massive table joins
• No program-level support
• Slow to maintain
New Model
partner_programs (JSONB)
1 partner = 1 record

Allowances model:
• Missing = restricted
• Explicit exceptions
• Rules-engine compatible
Example Data Structure
{
  "EVANSTON_HO-3": true,
  "EVANSTON_HO-5": {
    "allEnabled": true,
    "States": { "CA": { "aura": false }, "FL": { "aura": true } }
  }
}
“That is the high level.”Lead Engineer, confirming the reframe
Slack Excerpt
MC
Product Designer Feb 2, 1:09 PM
“What if we rethink it like: partner baseline capability + explicit exceptions + clear precedence with moratoriums and launch controls layered on top?”
LE
Lead Engineer 1:16 PM
“That is the high level.”
Reframe confirmation (anonymized).
Program‑level constraints broke a provider‑level system

The existing restrictions UI assumed a provider‑only model. Homeowners introduced program‑level constraints (HO‑3 vs HO‑5) that didn’t map cleanly to the carrier structure, and the system couldn’t express those rules without hacks.

Example
Markel REI = ProviderId + Carrier
Markel HO = ProgramId + Carrier
HO‑3 + Evanston
HO‑5 + Evanston
Implication: We needed a program‑aware system that could still respect partner‑level state licensing and moratoriums without forcing AD to re‑check the same boxes across five screens.
I skipped Figma and used live prototypes to align stakeholders in real time

Instead of drafting screens, I built a clickable, web‑hosted prototype in 48 hours and walked each stakeholder through their real use cases on the call. We made changes together as they interacted with the prototype — no “go back to Figma, schedule another meeting” loop.

Result: Compressed a 6‑week design cycle into a 2.5‑week emergency build, with a functional prototype delivered within 48 hours of the initial request.
Slack Excerpt
LE
Lead Engineer Feb 2, 12:25 PM
“I need you to fix carrier partner restrictions. And by that, I mean every possible scenario we can come up with.”
MC
Product Designer 12:33 PM
“I’m in.”
Anonymized for confidentiality. Roles preserved for context.
Why this matters: this message kicked off the 2.5‑week sprint. It wasn’t a small UX fix — it was a system‑level emergency with launch on the line.
  • Request scope: “every possible scenario”
  • Deadline pressure: 8 weeks to launch
  • Response: clickable prototype shipped within 48 hours
Slack Excerpt
MC
Product Designer Feb 4, 9:25 AM
“claude and i are COOKING this morning… is this kinda what you were thinking? (prototype link)
LE
Lead Engineer 10:15 AM
“This is a great start.”
Prototype alignment within 48 hours.
Prototype v1 (embedded)
Feb 4 • 48 hours after request
Excel‑like table, pending changes, bulk ops, aggregator intelligence.
If the embed doesn’t load, open it directly:
Open prototype →
Prototype v4 (embedded)
Feb 18 • Final approved version
Individual program cards, overrides, and scale‑ready workflows.
If the embed doesn’t load, open it directly:
Open prototype →
Iteration notes (v2)
Feb 10
Geo regions, program pills, clone restrictions, improved state selection based on stakeholder feedback.
Open prototype →
Iteration notes (v3)
Feb 17
Search for 1,300+ agencies, multi‑select bulk ops, and “god mode” overrides.
Open prototype →
Feb 2
Emergency request received.
Feb 4
Prototype v1 shared for alignment within 48 hours.
Feb 10–17
Rapid iteration with stakeholder feedback.
Feb 18
Final approval: “A‑M‑A‑Z‑I‑N‑G.”
Four versions, each pushed by real feedback

Over 2.5 weeks, the interface evolved based on constant feedback from engineering, PM, and underwriting. Each version solved a specific scaling or clarity problem the last one exposed.

PM feedback → simplify
We removed a “select all” modal and replaced it with a sticky summary banner so AD could see selections without scrolling a long list.
Engineering feedback → scale
Switched from toggles to bulk enable/disable actions and added search + multi‑select for 1,300+ agencies.
Underwriting feedback → granularity
Introduced program‑specific cards and “all except” state logic for edge‑case restrictions.
Design ops → process
Defined a ticketing process for design feedback so post‑launch UX issues didn’t stall in Slack.
PM Excerpt
PM
Product Manager Feb 19, 2:39 PM
“Gut the select‑all modal. Make it a checkbox and a summary banner so they can see how many are selected without scrolling.”
MC
Product Designer Feb 20, 8:07 AM
“The summary will float — sticky to the bottom when the list gets long.”
Real‑time simplification based on PM feedback.
V1 → V2
Placeholder: v1 table / v2 geo regions
Shift from toggles to bulk actions + geo regions to reduce 50‑state fatigue.
Feedback: “need geo regions + easier state selection”
V2 → V3
Placeholder: v2 pills / v3 search + multi‑select
Added search, multi‑select, and persistent selections for 1,300+ agencies.
Feedback: “scale this to 1,300 agencies”
V3 → V4
Placeholder: v3 overrides / v4 program cards
Separated HO‑3/HO‑5 cards and added “all‑except” state logic.
Feedback: “need unique program boxes + bulk state logic”
PM Simplification
Placeholder: select‑all modal → sticky summary
Removed modal, added sticky summary banner for long agency lists.
PM: “gut the modal”
Two mental models, one system

Mid‑project, I discovered the AD team and Engineering had opposing interpretations of how restrictions should work. AD wanted fast rollout controls without state complexity; Engineering needed a durable system that could handle edge‑case restrictions. I facilitated a level‑set that reframed the conflict as layered systems, not competing requirements.

AD Team model
- State licensing = access
- Programs managed separately
- “Why program-level state restrictions?”
Engineering model (Swiss cheese)
- Licensing, moratoriums, program rules
- Any layer can block access
- Needs state-by-program granularity
Principle unlocked: Make simple things simple, make complex things possible.
“If you can build this while making it easy to manage for my team, I don’t want to be a blocker. Deal.”AD Team lead, after alignment
Make the simple things simple, the complex things possible

The final system supported bulk operations, state‑level overrides, and a clear audit trail without overwhelming admins who only needed simple enable/disable workflows.

Binding Moratoriums
weather/world events
Binding Restrictions
risk‑based
Licensed to Write
legal compliance
Program Partner Restrictions
operational control
AD Team workflow
Enable program for 89 agencies with one click. No multi‑screen checkbox pain.
Underwriting workflow
Block HO‑3 in a single state while allowing other programs to stay live.
Launch saved. Engineering unblocked. System scaled.
Database
306 → 1
Records per partner
Speed
6+ weeks → 2.5
Design cycle reduction
Launch
Saved
Homeowners rollout
Scale
1,300+
Agencies enabled
“I think that looks fantastic.”Lead Engineer, final approval
Final Approval
LE
Lead Engineer Feb 18, 8:09 AM
“A — M — A — Z — I — N — G.”
Final approval, launch on track.
What this demonstrates

When the lead engineer asked for “every possible scenario,” I didn’t stall or scope‑reduce. I reframed the data model, built working prototypes in days, and aligned cross‑functional teams around a system that could scale. This is the kind of work I love: high‑stakes, high‑ambiguity, and deeply technical — and it’s the kind of leadership I bring to founding‑team environments.