UX Engineer · Enterprise Dashboard · Blazor / .NET · Spring 2026

UPS RedHat OpenShift
Cluster Capacity Planner

A Blazor-based analytics platform that helps UPS infrastructure engineers model capacity changes, simulate workload removals, and run what-if scenarios across OpenShift clusters — replacing hours of manual spreadsheet work with minutes of interactive, data-driven decision-making.

UX Engineer — Design + Blazor Frontend
5-person Agile/Scrum · UPS Sponsored Capstone
Feb – May 2026 · 5 Sprints
Figma · Blazor · .NET 10 · ApexCharts · Jira
Empathize
Define
Ideate
Prototype
Build & Test
01
Empathize

The problem hiding inside a spreadsheet

UPS had recently migrated to RedHat OpenShift to manage their containerized infrastructure. The platform handled the workloads — but it didn't help engineers make decisions about them. Every capacity question required manual calculations: pull data, run arithmetic, repeat for each cluster.

The risk wasn't just inefficiency — poorly analyzed capacity decisions could lead to overfitted clusters, performance degradation, and outages. The team needed a tool that moved capacity planning from reactive to proactive.

"Without a planning tool, we rely on manual calculations, redundant analyses, and hands-on effort for cluster comparison." — UPS Project Sponsors
02
Define

Stakeholders, personas, and what the tool actually needed to do

I led the Define phase — stakeholder mapping, persona development, requirements gathering, and scoping the site map before any design or development began. Two primary users emerged from our conversations with the UPS sponsors:

Primary User

Derek — Platform Engineer

Day-to-day user. Needs to quickly check if a proposed workload fits a specific cluster, see what gets freed by removing workloads, and get a growth projection without doing the math himself.

"I need to know if adding this workload will break us before I submit the ticket, not after the outage."
Secondary User

Priya — Infrastructure Architect

Strategic decision-maker. Evaluates proposed changes across multiple clusters before approving them. Needs side-by-side scenario comparisons — not individual reports — to justify hardware procurement decisions.

"When I defend a $2M hardware request, I need numbers — not estimates."

From there I defined the four-module site map — confirmed with UPS sponsors before any code was written — and created the use case diagram mapping each user's path from login through the three analytical workflows.

UPS Cluster Analytics App site map

Site map: four modules scoped and approved by UPS sponsors before development began.

UPS use case / user flow diagram

Use case diagram: login via Entra ID → addition, removal, or what-if analytical path → export scenario results.

03
Ideate

From blank page to wireframes

With requirements confirmed, I moved into low-fidelity sketching. The central design question for every module: what does an engineer need to see first? The answer was always fit status — does this change work or not — before any supporting detail. I sketched all three analytical modules in detail, working out input structure and output hierarchy on paper before touching Figma.

UPS wireframe sketches — addition modeling, outputs, and what-if analysis

Early wireframe sketches covering Capacity Add inputs, output layouts, and the What-If Analysis module.

The What-If module required the most iteration. My original concept was a 4-step wizard — cluster selection, removal, addition, results — each on its own screen. Thorough, but too much friction. When the team later collapsed it to a single page during development, that was the opposite problem: too much to process at once, no sense of direction. The solution came from watching engineers actually try to use it:

Simple enough to navigate quickly. Structured enough to feel intentional.

04
Prototype

High-fidelity in Figma, approved by UPS in Sprint 2

I built the high-fidelity prototype in Figma and presented it to UPS sponsors for approval in Sprint 2. The visual language: UPS brand colors — dark brown navigation, amber accents, high-contrast utilization bars — with a light content area that kept dense data readable. Once approved, it served as the build spec for the engineering team.

Hi-fi prototype — fleet overview Hi-fi prototype — addition modeling and what-if

Hi-fi Figma prototype: fleet overview (left) and the addition modeling + what-if wizard screens (right) — presented to and approved by UPS stakeholders.

05
Build

What shipped across 5 sprints

Once prototypes were approved, I implemented the frontend in Blazor/.NET 10 across the remaining sprints, working alongside the backend team to integrate live cluster data from the UPS Data Collection Team's API. ApexCharts powered all data visualizations.

Home — Fleet Overview

The command center. KPI tiles at the top show total clusters, healthy, warning, and critical counts at a glance. A searchable cluster table displays live CPU, RAM, and DASD utilization bars with color-coded status per row. Clicking any cluster opens a detail panel with current resource saturation and a 3-year growth projection chart.

UPS final home — fleet overview with all clusters

Fleet Overview — 24 total clusters, real-time health status, and utilization bars across CPU, RAM, and DASD.

Cluster detail panel — current saturation and 3-year growth projection

Cluster detail panel — current resource saturation with exact figures, plus a 3-year growth projection showing when resources approach exhaustion.

Addition Modeling

Engineers select a baseline cluster, enter existing and proposed nodes and workloads, set an annual growth rate, and generate results. The output returns fit status per resource (Fits / Watch / Critical), before vs. after utilization, remaining capacity figures, and a growth projection timeline.

Addition Modeling — simulation parameters, unselected Addition Modeling — cluster selected, capacity displayed

Addition Modeling: simulation parameters with no cluster selected (left), and cluster baseline capacity displayed after selection (right).

Addition Modeling — workloads added and results panel

Results panel: fit status per resource, before/after utilization bars, remaining headroom, and growth projection timeline — all from a single "Generate" action.

Removal Analytics

Select a cluster, check workloads to remove, and instantly see the reclaimed CPU cores, memory, and storage. A utilization before/after comparison table and selection summary confirm the full impact — including CPU overcommit ratio and bottleneck identification.

Removal Analytics — cluster selected, workloads listed

Removal Analytics: cluster selected with all active workloads listed — engineers check the ones they want to remove.

Removal — workloads marked, reclaimed resources shown Removal — before vs after utilization comparison

Three workloads marked for removal — 4.20 CPU cores, 24.64 GB memory, and 208.95 GB storage reclaimed (left). Before vs. after utilization and selection summary (right).

What-If Analysis — 2-step wizard

The most complex module, and the one that iterated the most. Step 1 consolidates all inputs: search and add clusters, mark workloads for removal, add new nodes and workloads. "Apply to All" propagates additions across all selected clusters simultaneously. Step 2 surfaces all results: grouped utilization by stage, requested vs. remaining charts, a 10-year growth projection with first-exhaustion year flagged, and a full delta comparison table. Exportable as PDF.

What-If Analysis — empty state, no clusters selected What-If Analysis — scenario configured with clusters, removals, and additions

What-If Step 1: empty state (left) and a fully configured scenario across two clusters — one with additions, one with removals applied (right).

What-If Analysis — grouped utilization by stage charts

Step 2 results — grouped utilization showing original baseline → post-removal → applied additions for CPU, Memory, and DASD side by side.

What-If Analysis — 10-year growth projection and delta comparison table

10-year projected utilization with first-exhaustion flagged at Year 4, and a full delta comparison table: baseline vs. scenario per resource.

Outcome

Presented at the NJIT capstone showcase — 1st place in our category

🏆 1st Place — UPS Sponsored NJIT Capstone · Spring 2026

The completed platform was presented to UPS sponsors and NJIT faculty in April 2026. The tool delivered on every core requirement — and then some.

UPS capstone team with sponsors and judges at NJIT showcase

The full team with UPS sponsors and NJIT faculty at the Spring 2026 capstone showcase — where we took 1st place in our category.

5Agile sprints delivered
4Core modules shipped
10yrGrowth projection model
🏆1st place, capstone category
Reflection

What this project taught me

The What-If pivot was the most important design lesson. I designed a 4-step wizard; the team built a single page; neither worked. The 2-step version came from watching a real engineer try to use it — not from revisiting the wireframe. That feedback loop is irreplaceable, and I'd build it into the process much earlier next time.

Designing for trust, not just clarity. Every utilization bar and delta percentage in this tool carries real weight. Engineers use these numbers to justify procurement decisions. That meant obsessing over precision, making data sources legible, and never showing a result without the inputs that produced it — so nothing felt like a black box.

Being the design-to-engineering bridge. As the only person responsible for both UX and frontend implementation, I was the translation layer between what the experience needed and what Blazor could render. That dual role made me a sharper designer — I stopped proposing things I couldn't build — and a more intentional developer.