Client:
Government Agency
Role
Senior / Lead UX Designer
Platform Operations
Timeline
8+ months
Nov 2025 - Present
Team
Cross-functional
2 PMs, 8 engineers, ops
Users
10,000+
B2B2C platform
Reduced operational friction and support burden by 40% through systematic UX improvements across a B2B2C financial services platform serving 10,000+ users managing $2B+ in real estate assets.
Enterpris UX
Platform Design
System Thinking
The Problem
A legacy IWMS platform accumulated 5+ years of UX debt across disconnected modules. Business users (facilities managers, compliance officers, finance teams) faced inconsistent workflows, unclear status indicators, and fragmented user management-resulting in 200+ monthly support tickets, compliance risks from missed alerts, and 3-5 hours per user per week navigating workarounds.
The platform needed systematic improvements, not feature additions-stabilizing core workflows while maintaining SOX/SEC compliance requirements and 99.9% uptime SLAs.
Constraints
•
No breaking changes: Zero disruption to 10K+ daily users
•
Regulatory compliance: SOX/SEC audit requirements must be maintained
•
Legacy architecture: Limited backend changes due to technical debt
•
Incremental delivery: Ship improvements in weeks, not quarters
Impact
Reduction in support tickets
From 200+ to ~120 monthly tickets across platform workstreams
Weekly time saved per user
Reduced workarounds and workflow confusion through systematic improvements
Pattern consistency achieved
Standardized interactions across 4 major platform modules
Confidentiality Note
This case study is anonymized. Product names, workflows, and metrics have been generalized. No proprietary information is included. The purpose is to demonstrate systems thinking, strategic UX decisions, and platform-level design leadership.

What was broken
Over 5 years, the platform accumulated operational UX debt as teams shipped features without platform-level coordination. User ID management showed 3 different identifiers (login ID, email, display name) with no clear hierarchy. Bulk reporting lacked progress indicators, leaving users uncertain if 10,000-record exports were processing or stalled. Permission templates couldn’t be previewed before assignment. Alerts arrived via email, in-app, and Slack with no centralization or priority system.
Who it affected
Facilities managers managing 10-50 properties, needing rapid triage of maintenance alerts vs. compliance deadlines
Compliance officers tracking SEC/SOX requirements across accounts, requiring complete audit trails
System admins onboarding 50+ users monthly, confused by inconsistent permission workflows
Finance teams generating quarterly reports for 100+ accounts, unable to track report generation status
Business impact
→
Support overhead: 200+ monthly tickets (40% repetitive issues from confusion)
→
Compliance risk: Missed regulatory alerts buried under low-priority notifications
→
Operational inefficiency: 3-5 hours per user per week navigating workarounds
→
User trust erosion: Uncertainty around system state led to duplicate work and verification calls
Platform Architecture & Problem Areas
Core Platform
User Management
Reporting Engine
Permissions
Notifications
Admin Console
LDAP/SSO
Legacy Systems
Key Dependencies
User Management
Core Platform
(sync)
Permissions
User Management
(roles)
Notifications
Core Platform
(events)
Reporting Engine
Core Platform
(data)
LDAP/SSO
User Management
(auth)
Legacy Systems
Core Platform
(import)
Core Platform
Module
External System
Key findings that shaped the strategy.
Research Methods
Support Ticket Analysis
Analyzed 800+ tickets over 4 months to identify recurring patterns
User Shadowing
Observed 12 users across 3 roles performing daily workflows
System Mapping
Documented 25+ workflows and their dependencies across modules
Key Insights
1. Support tickets were symptomatic of UX debt, not user error
65% of tickets involved status confusion, missing feedback, or unclear next steps—all systemic UX issues, not bugs.
2. Users built workarounds that masked fundamental problems
Every user had their own Excel tracker for bulk reports because the platform provided no progress visibility.
3. Inconsistent terminology created cross-team confusion
“User ID” meant different things in different modules—sometimes email, sometimes numeric ID, sometimes display name.
4. Missing visibility into system state created duplicate work
Users couldn’t tell if permissions were “pending,” “active,” or “failed,” leading to redundant assignments and support calls.
5. Financial services users need information density, not minimalism
Bloomberg/Fidelity patterns (high info density, low color) were expected—minimalist consumer patterns felt “incomplete.”
The strategic choices that shaped the solution.
1
Incremental fixes over big redesigns
Strategic Tradeoff
The choice:
Ship 20 small, high-leverage improvements over 6 months instead of a single large redesign.
Why:
A full redesign would take 18+ months and risk disrupting 10K+ users. Legacy architecture couldn’t support a ground-up rebuild. Business needed immediate relief from support burden.
Tradeoff:
Some visual inconsistency remained across modules, but core workflows became 80% more usable without requiring architectural changes.
2
Prioritize status visibility over feature additions
Design Principle
The choice:
Focus first on making existing system states legible (loading, processing, completed, failed) before adding new capabilities.
Why:
Users couldn’t tell if bulk reports were processing or stuck, leading to duplicate submissions and support tickets. Making states visible reduced confusion without code changes.
Impact:
Support tickets related to “report status” dropped 60% after adding progress indicators and clear completion states.
3
Standardize terminology before patterns
Platform Governance
The choice:
Created a platform-wide terminology guide defining “User ID,” “Status,” “Role,” etc. before implementing design patterns.
Why:
Teams used different terms for the same concepts. “User ID” meant email in one module, numeric ID in another. Standardizing language first made design patterns easier to adopt.
Challenge:
Required buy-in from 4 product teams and engineering leads. Held 6 workshops to align on definitions and document existing divergences.
4
Financial services density over consumer minimalism
Design Direction
The choice:
Designed high-density interfaces (Bloomberg/Fidelity style) with multiple data points per row instead of card-based layouts.
Why:
Users manage 10-50 accounts simultaneously and need to scan information rapidly. Consumer-style minimalism (large cards, low density) required excessive scrolling and felt “incomplete.”
Validation:
Users explicitly requested “more like Bloomberg terminal” during shadowing sessions. Dense tables with clear hierarchy tested better than spacious card layouts.
A structured approach to platform-level improvements.
1
Support Ticket Mining
Analyzed 800+ tickets to identify patterns. Categorized by root cause (status confusion, missing feedback, terminology inconsistency). Validated findings with operations team.
Methods
Pattern detection
Root cause analysis
Data categorization
Deliverables
→
Support taxonomy
→
Problem areas heatmap
→
Priority matrix
2
System Mapping
Documented workflows, dependencies, and state transitions across modules. Identified where terminology diverged and workflows broke down.
Methods
User flow analysis
Dependency mapping
State modeling
Deliverables
→
System diagrams
→
State transition maps
→
Workflow documentation
3
Cross-Team Alignment
Held 6 workshops with product, engineering, and operations to align on terminology, establish design principles, and prioritize fixes.
Methods
Workshop facilitation
Stakeholder alignment
Decision frameworks
Deliverables
→
Terminology guide
→
Design principles
→
Shared roadmap
4
Incremental Delivery
Shipped 20 improvements over 6 months. Each fix targeted a high-impact pain point with minimal engineering lift. Measured before/after support ticket volume.
Methods
Iterative delivery
Impact tracking
User validation
Deliverables
→
20 shipped improvements
→
Impact metrics
→
Pattern library updates
Deep dives into each area of focus with detailed problem-solving artifacts.
User ID Management
Resolved confusion around 3 different user identifiers (login ID, email, display name) through hierarchy standardization and improved visibility.
Data normalization
Workflow redesign
Error prevention
Bulk Reporting
Added progress visibility and status clarity for bulk operations, eliminating uncertainty around 10,000+ record exports and reducing duplicate submissions.
Progress indicators
Status clarity
Error handling
User Roles
Redesigned permission templates to show previews before assignment, reducing access errors and improving audit trail clarity for compliance.
Permission preview
Role templates
Audit trails
Alerts & Notifications
Centralized notifications with clear hierarchy (critical, important, informational), reducing alert fatigue while ensuring compliance deadlines remain visible.
Notification hierarchy
Centralization
Priority system
How I established patterns, consistency, and standards across all four workstreams
The Challenge: Fragmented Experiences
When I joined this project in November 2025, each workstream had its own design patterns. User ID Management used different button styles than Bulk Reporting. Status badges varied in color and meaning. Modals had inconsistent layouts. This fragmentation confused users and slowed development—engineers had to build the same components multiple times.
My approach: I led the effort to create a unified design system that would work across all four workstreams, establishing patterns that could scale platform-wide. This wasn’t just about visual consistency—it was about creating a shared language between design, engineering, and product.
01
Shared Component Library
I documented and standardized core components used across all workstreams
→
AG Grid Patterns: Standardized table headers, actions dropdowns, pagination
→
Status Badges: 7 consistent statuses with defined colors and meanings
→
Modal Workflows: Multi-step pattern with progress indicators
→
Form Elements: Consistent inputs, dropdowns, validation states
→
Notification Cards: Unified alert/notification patterns
02
Interaction Patterns
I defined how users would interact with common workflows platform-wide
→
Clickable IDs: Blue underlined text opens detail pages (User ID Mgmt, Bulk Reporting)
→
Bulk Actions: Checkbox selection + actions dropdown pattern
→
Tab Navigation: Header tabs for categorization (Reports, Roles)
→
Inline Editing: Click-to-edit for simple changes without modals
→
Toast Notifications: Consistent success/error messaging
03
Visual Standards
I established visual consistency that makes the platform feel cohesive
→
Color System: Status colors (green=success, yellow=warning, red=error, blue=info)
→
Spacing Grid: 4px base unit for consistent spacing
→
Typography Scale: Standardized heading and body text sizes
→
Border Radius: Consistent corner rounding (4px for cards, 2px for inputs)
→
Elevation: Defined shadow levels for layering
How Patterns Connect Across Workstreams
These aren’t isolated features—they’re part of a cohesive platform. Here’s how patterns I established in one workstream carried through to others:
✓ AG Grid with Enhanced Filtering
User ID Management:
Grid with user list, clickable IDs, bulk actions, advanced filters
Bulk Reporting:
Same grid structure with report list, status tabs, progress indicators
→ Engineers built one AG Grid component with variants, not separate implementations
✓ 7-Status Badge System
User ID Management:
Active, Inactive, Suspended, Pending
Bulk Reporting:
Processing, Completed, Failed, Queued
Alerts:
Unread, Read, Archived
→ Same color meanings across modules: green=complete, yellow=in-progress, red=error, gray=inactive
✓ Multi-Step Modal Pattern
Bulk Reporting:
4-step report configuration (Type → Data → Filters → Schedule)
User ID Management:
3-step bulk import (Upload → Map Fields → Confirm)
→ Same stepper UI, progress indicators, and validation patterns
✓ Header Tab Navigation
Bulk Reporting:
Tabs for Recurring, One-Time, System-Generated reports
User Roles:
Tabs for System Roles, Custom Roles, Permission Sets
→ Consistent tab styling and behavior across modules
Impact: By standardizing these patterns, we reduced design time by ~40% for subsequent features and cut development time by ~35% since engineers could reuse components. More importantly, users learned the patterns once and applied them everywhere—reducing cognitive load and training needs.
Ensuring compliance and inclusive design across all workstreams
Accessibility as a Foundation, Not an Afterthought
As an enterprise platform serving thousands of users including those with disabilities, Section 508 compliance wasn’t optional—it was essential. I integrated accessibility into every design decision from the start, working with developers to ensure WCAG 2.1 AA standards were met across all four workstreams.
My role: I led accessibility audits, created accessible component specifications, and collaborated with engineering to implement and test solutions. Every design handoff included accessibility annotations, ARIA requirements, and keyboard navigation flows.
◉
Perceivable
• 4.5:1 color contrast minimum
• Alt text for all images
• Status conveyed beyond color
• Resizable text up to 200%
⌥
Operable
• Full keyboard navigation
• Visible focus indicators
• Skip navigation links
• No keyboard traps
◈
Understandable
• Clear error messages
• Consistent navigation
• Form labels and instructions
• Predictable behavior
⚙
Robust
• Valid HTML semantics
• ARIA labels and roles
• Screen reader compatible
• Assistive tech tested
Accessibility Implementation Examples
User ID Management
Keyboard Navigation
✓
Tab through AG Grid with arrow key navigation between cells
✓
✓
Space bar selects/deselects checkboxes for bulk actions
Screen Reader Support
✓
ARIA labels for status badges: "User status: Active"
✓
Table headers properly associated with data cells
✓
Actions dropdown announced: "Actions menu for John Doe"
Bulk Reporting
Progress Communication
✓
Progress bars include text: "65% complete, 3 minutes remaining"
✓
ARIA live regions announce status changes
✓
Status not conveyed by color alone—text + icons
Modal Accessibility
✓
Focus trapped in modal during multi-step workflows
✓
ESC key closes modal at any step
✓
Current step announced: "Step 2 of 4: Data Selection"
User Roles & Permissions
Form Accessibility
✓
All form fields have visible labels and instructions
✓
Error messages clearly associated with fields
✓
Required fields indicated with text, not just *
Complex UI Patterns
✓
Permission checkboxes grouped with fieldset/legend
✓
Drag-and-drop has keyboard alternative
✓
Tree navigation with arrow keys for role hierarchy
Alerts & Notifications
Alert Communication
✓
ARIA live regions for new notifications
✓
Priority levels announced: "High priority alert"
✓
Icons paired with text for urgency
User Control
✓
Notification preferences accessible via keyboard
✓
Dismiss buttons properly labeled
✓
No auto-dismiss on critical alerts
Color Contrast Standards
All text and interactive elements meet WCAG AA standards (4.5:1 for normal text, 3:1 for large text and UI components)
Active
Contrast: 7.2:1 ✓
Processing
Contrast: 6.8:1 ✓
Failed
Contrast: 7.5:1 ✓
Primary
Contrast: 8.1:1 ✓
Accessibility Testing Process
🔍 Automated Testing
axe DevTools and WAVE for every component
— Manual Testing
Keyboard-only navigation and screen reader testing
👥 User Testing
Validation with users who rely on assistive technology
Tracked improvements across user experience, platform health, and organizational efficiency.
Quantitative Impact
40%
reduction
Support ticket volume
From 200+ to ~120 monthly tickets (measured over 6 months post-launch)
60%
decrease
Status-related tickets
“Is my report processing?” tickets dropped after status visibility improvements
3-5 hrs
saved
Time saved per user per week
Reduced workarounds from workflow normalization (user self-reporting)
85%
consistency
Pattern standardization
Status indicators, terminology, and interaction patterns aligned across modules
Qualitative Outcomes
User Impact
✓
Workflows became predictable across modules
✓
Users stopped asking "What state is this in?"
✓
Reduced duplicate work from uncertainty
Platform Health
✓
Shared terminology across 4 teams
✓
Pattern library established for future work
✓
Foundation for modernization efforts
Organizational
✓
UX involved earlier in planning
✓
Cross-team design review process created
✓
Platform governance model established
What worked, what didn't, and what I'd do differently.
What worked well
✓
Incremental delivery reduced risk. Shipping 20 small fixes instead of one big redesign allowed us to course-correct quickly and maintain user trust.
✓
Support data validated design decisions. Ticket analysis gave us credible evidence to prioritize fixes and measure impact.
✓
Terminology standardization unlocked other improvements. Once teams agreed on definitions, pattern adoption became much easier.
What I’d do differently
→
Establish platform principles earlier. Defining design principles at the start would have accelerated alignment and reduced debates about individual decisions.
→
Track baseline metrics before starting. We relied on directional impact for some outcomes. Establishing clearer baselines would have strengthened the business case.
→
Involve engineering earlier in prioritization. Some “easy” fixes had hidden technical complexity. Earlier collaboration would have improved our prioritization accuracy.
Key takeaway
Platform UX isn’t about shipping features—it’s about establishing systems that help teams make better decisions over time. The terminology guide, design principles, and pattern library created more long-term value than any single feature redesign because they became the foundation for consistent decision-making across the organization.
Explore the Workstreams
Deep dive into each area with detailed problem-solving artifacts and design deliverables
01
User ID Management
Identity mapping, access controls, and audit-ready user state.
02
Bulk Reporting
Scheduled exports, data pipelines, and reporting templates.
03
User Roles
Permission models, role-based access, and admin workflows.
04
Alerts & Notifications
Real-time alerts, delivery channels, and notification preferences.

