Back to work
United Airlines 2023–Present Enterprise Pilot Platform Design + Implementation

CCS+ Trade
Center

My Role Senior Designer, Frontend Implementation, Design Leadership
Team 6-person hybrid UX + Engineering
Platform Web, Angular and Orion Design System
Impact 15,000+ pilots · 2 production releases
01
Context

Two legacy tools.
One modern platform
built from scratch.

Before CCS+, United Airlines pilots managed their schedules across two separate tools: a legacy internal system and a third-party app called Crew Companion. Both were non-responsive, built on 90s-era UI patterns, and deeply frustrating to use. Neither communicated with the other, forcing pilots to constantly context-switch to complete a single workflow.

United's answer was CCS+, a single, modern, mobile-responsive platform built in-house to replace both. I joined the project from day one, before it had a name, when the team was still designing and building the foundational components from scratch.

The Trade Center is the most critical and highest-traffic feature of CCS+. It is where pilots trade trips, pick up open trips, manage requests, and check schedule legality.

"Before CCS+, the tools were so outdated that pilots had to switch between two separate apps just to complete one task. There was no trust in the system. They were scared to click things."

15K+pilots on platform
2prod releases
02
Research & User Testing

I flew to Houston, Denver,
and Chicago to find out
what pilots actually need.

I traveled to Houston, Denver, and Chicago, sitting with pilots, watching them use the legacy tools and early CCS+ prototypes, and listening to what made them hesitate. What I found wasn't just a list of feature requests. It was a trust problem.

Pilots would hover over a button and pause, visibly unsure whether clicking it would trigger something irreversible. They were not confused by the interface. They were scared of it. That shifted everything about how I approached the design.

The key insight was that experience level changed everything. Frequent traders had muscle memory and tolerance for ambiguity. Infrequent users had none of that. They needed explicit signaling, clear reversibility, and visible confirmation at every step. Designing for both meant building a system that was efficient for power users without being intimidating for everyone else.

01
Trust is a design problem
Pilots hesitated before clicking, scared of triggering irreversible actions. We designed explicit confirmation states, reversible flows, and visible feedback to rebuild confidence in the system.
02
Pay and legality come first
Pilots primarily care about two things: how a trade affects their pay and whether it is schedule-legal. Every other piece of information is secondary. This changed how we prioritized data visibility in the trade grid.
03
Data density is a feature
Pilots want to see as much information as possible at once. They scan and decide fast. Progressive disclosure and hidden columns weren't options. The design had to honor density, not fight it.
03
Process

From requirements
to shipped code.

Every CCS+ feature followed the same four-stage process: A repeatable system that increased speed while maintaining alignment with the broader product and user experience.

01
Understand requirements before touching Figma

Before sketching anything, I read the user story carefully, then had direct conversations with the business analyst, stakeholders, and the lead designer. The goal was to surface ambiguity early. What does done actually look like? What constraints exist that are not written in the ticket? What are stakeholders optimizing for versus what the user actually needs? Misalignment at this stage is far cheaper to fix than misalignment after designs are presented.

02
Rapid sketch iteration, all directions, no filtering

I sketch fast and broadly, getting every possible direction out before evaluating any of them. The point is volume and rapid iteration. The early trade board sketches below show this: multiple layout approaches for the same dashboard, different ways of surfacing the engine run timer, different structures for the calendar and pay summary.

03
Pressure-test against four constraints before proceeding

Before moving a sketch into Figma, I check it against four things simultaneously: Does it solve the actual user story? Does it align with existing design standards and Orion components already in the app? Is the technical lift reasonable given the sprint scope? Does it fit the page or flow it needs to live in? If a direction fails more than one check, I go back to sketches rather than investing in a Figma mock that will get rejected.

04
Figma, present, iterate, implement

The strongest sketches go into Figma for higher-fidelity exploration. I iterate until the design is ready to present, incorporating feedback from design review and stakeholder sessions before final approval. On CCS+, I also implemented approved designs in Angular and SCSS, which meant I caught edge cases before engineering did and resolved them in the same sprint rather than opening new tickets.

Early sketches

These are from the earliest exploration phase of the Trade Board, before anything went into Figma. You can see the dashboard structure being worked out, the engine run timer concept forming, and the timeline color-coding system for seniority windows taking shape.

Early trade board overview sketch

Trade Board overview: navigation structure, trade pool table, and pay summary accordion taking shape in first pass.

Engine run timeline with color-coded seniority windows

Engine run timeline with color-coded seniority windows: green for all pilots, blue for line holders only, purple for reserve windows.

Calendar iteration sketch

Calendar layout iteration: exploring how to surface pay summary, engine run info, and schedule in one scannable view.

Engine run detail state sketch

Engine run detail state: in-progress timer, processing message, and next-run scheduling details alongside the calendar view.

04
Before / After

From legacy chaos
to structured clarity.

The before state was visually outdated. It had no information hierarchy, no visual language for trip data, and no way to scan across multiple items efficiently. Every screen required the pilot to read, not scan.

Pilot Pool Display Before / After
Legacy CCS
Legacy pool display

Dense legacy table, no visual hierarchy, no data prioritization, no trip visualization.

CCS+
New Trade Center

Modernized Trade Center with visual trip bars, horizontal and vertical scroll to surface all data in a single row, and clear hierarchy.

Trip Customization Modal Before / After
Legacy CCS
Old modal

Static column configurator with no live preview and minimal usability.

CCS+
New modal

Live trip bar preview, drag-and-drop column reordering, multi-breakpoint support, reusable template component shared across multiple views.

Reserves Available (RAD) Before / After
Legacy CCS
Old RAD

Raw data dump. No grouping, no visual structure, no way to orient quickly by date or position.

CCS+
New RAD

Date-grouped, collapsible sections, searchable filters, consistent with the table system used across CCS+.

05
Key Design Decisions

The decisions that
mattered most.

Every major decision on CCS+ had downstream consequences. The platform shares components across features, so a change to one pattern ripples through the entire system. These were the calls I made or advocated for that had the biggest impact.

01
Reusable filter template component
The filter modal needed to work identically across the Trade Board: In Trips list and Category summary. Rather than designing each separately, I designed a single configurable template component that lived inside the main Filters modal as well as a standalone component in other pages of the Trade Board. One design decision propagated consistently across the product, reduced engineering rework, and created predictable behavior wherever pilots encountered filters.
Design Systems
02
Standardizing System Feedback Patterns
I led a systemization effort for error states, success messages, and confirmation modals by auditing the app, aligning with engineers on data constraints, and creating a standardized message framework. This enabled developers and QA to build consistent flows without design involvement, reducing ambiguity and speeding up delivery.
Design Systems
03
Horizontal and vertical scroll on the trade grid
Pilots need to see all data in a single row. Collapsing or hiding columns wasn't an option. It forces more clicks to find information evaluated for every single trade. The solution was a scrollable grid that respects both axes, so nothing is hidden and everything is reachable. This was the foundational layout decision for the Trade Center.
Data Architecture
04
Visual trip bars as first-class data
The trip bar, a horizontal visual representation of a trip's timeline, gives pilots an at-a-glance way to compare trips without reading raw time data. I advocated for making it a prominent column in the trade grid, not an optional detail, because it directly maps to how pilots mentally evaluate trips.
Visual Design
05
Shopping cart pattern for trade requests
Stakeholders requested a way for pilots to queue multiple trade requests before submitting. I contributed to the design of a robust shopping cart component that lets pilots stage requests, review them together, and submit in batch. This reduced server round trips and gave pilots a clear tool to review and submit trades without leaving the trips list, directly addressing the fear of irreversible actions seen in user testing.
Interaction Design
06
Constraints

Designing inside
real constraints.

CCS+ was built on an established design system, with an engineering team managing complex backend business rules, a compressed timeline, and stakeholders with strong opinions and limited UX fluency. Navigating all of that simultaneously was part of the job.

Design System Boundaries

All UI was built using Orion, United's official design system for internal apps, as well as with Angular Material components aligned to Orion standards. Change requests that required new component variants meant frontend rework, backend integration changes, and regression testing everywhere those components were used. We frequently redesigned within existing constraints rather than requesting new components.

Complex Business Rules

Trip trading is governed by union contract rules, FAA regulations, and United's scheduling logic. A pilot can only be awarded a trip if it's schedule-legal, and "legal" involves dozens of overlapping constraints around rest periods, flight hours, and position qualifications. Every UI decision had to account for these rules without overly-surfacing their complexity to the pilot.

Stakeholder Decision-Making

Decisions affecting 15,000+ pilots were sometimes made by a single stakeholder acting on personal preference rather than user data. We worked to counter this by bringing user testing findings into design reviews, documenting rationale formally, and proposing phased releases that let us validate with real users before committing to large changes.

Scope & Prioritization

CCS+ was one of several concurrent projects. I was simultaneously working on FA CCS features, the Trade Board Engine Admin App, and a Pilot Messaging App. I prioritized high-impact workflows across these initiatives, balancing user needs with technical constraints. This required making strategic tradeoffs and focusing on the most critical functionality to ensure meaningful features were delivered despite evolving scope.

07
Scope & Contributions

Driving end-to-end design
across CCS+

CCS+ was a large, multi-team initiative spanning 30+ contributors. I drove design across several concurrent workstreams, owning key features end-to-end and contributing to shared systems and patterns used across the platform.

Feature / Area Notes
Trade Board Pool Display redesign Led end-to-end redesign and implementation, improving clarity of trip evaluation and reducing decision friction for pilots.
New Request complete overhaul Redesigned from scratch, streamlining request flows and improving usability across key pilot workflows.
Customize Trip Modal Designed interactive modal with live preview and drag-and-drop reordering, enabling flexible trip customization and reusable patterns.
Admin Communications App Drove design from discovery to delivery; mentored a junior designer and established patterns for internal communications workflows.
Trade Board Engine Admin App Designed a data-heavy admin tool from scratch, enabling scheduling teams to audit and manage complex trade logic.
Orion Design System CCS+ extensions Extended design system patterns to support Angular-based constraints, contributing reusable components and dark mode adoption across CCS+.
08
Impact at a glance
15K+pilots on platform
2production releases
30+components shipped
4cities for research
Next project
Cosmos Design System
at StackPath