William Bruno

Open to new roles & engagements for Autumn 2026.

← Back to work

FedEx Developer Portal

Tank Design · 2022–2024 · Lead Product and UX Designer

Consolidated five disconnected developer tools into a single governed platform for onboarding, API discovery, sandbox keys, and production credentials — now live for thousands of FedEx developers worldwide.

5 → 1

tools unified into one governed platform.

6

personas, mapped across five lifecycle phases.

26

test rounds a year with real developers.

3 yrs

leading product and UX across the platform.

They asked for documentation. The problem was onboarding.

Background

FedEx’s developer experience was split across five disconnected tools. Five logins, no shared patterns, no single source of truth — and developers were abandoning before they ever saw product value.

The project came to Tank Design as a documentation refresh. Research showed the barrier wasn’t content: developers never got far enough to read it. I made the case for a full platform redesign instead, and won the budget to deliver it.

Six personas

From solo developers moving fast to enterprise teams managing complexity, mapped across five lifecycle phases.

One platform

Shared patterns for API status, billing, webhooks, and account management, governed as a single system.

My role

I led product and UX design for nearly three years, working with FedEx engineering and product teams from research through delivery: journey mapping, information architecture, interaction design, the design system, and biweekly usability testing across four countries.

Outcomes

  • Five separate tools and five logins became one governed platform with a single onboarding path, live in production for thousands of FedEx developers worldwide.
  • Failure paths in webhooks and account setup were promoted from error states to designed lanes, each with its own content, actions, and recovery.
  • Shared patterns for API status, billing, webhooks, and account management now scale across business units inside FedEx’s 1DX system.
Six developer journey maps from discovery through launch
Six archetypes mapped across discovery, onboarding, building, testing, and launch.

Confidence first, commitment second

Developer platforms hide their value behind sign-up walls. This one answers three questions before asking for an account: what can I build, how hard is it, and how good are the docs.

Pre-login homepage with value proposition and quick-start path
The pre-login homepage: value, APIs, and a quick-start path before sign-up.
FedEx API catalog page
Every API visible at a glance, with direct links to docs.

Designing the failure paths

Webhooks push real-time shipment data into warehouse dashboards, and a misconfiguration breaks a logistics loop. I designed for the four paths that don’t end in success: no billing account, no shipping account, accounts already associated, contributor without permission.

Tests with real developers told us trust is built or lost in the failure paths. Each one became a first-class lane with its own content, actions, and recovery.

Webhook create flow, step 3
The create flow, with branches for every gate a user might hit.
API status page showing current disruptions
System state is a designed surface, not an apology.

A platform that grows with you

The post-login home isn’t one screen. It’s four states: new user, organization created, accounts added, full administrator. Simple on day one, deeper as needs grow.

Post-login state one, new user
State one: a new user’s first session.
Post-login state four, full administrator
State four: a full administrator’s working surface.

Notifications, authored as a system

Toast, alert, modal, and gate are named types with shared structure and variable interpolation. The live copy file uses the same primitive across every surface — consistency at scale, without copy-pasting.

Toast, alert, modal, gate: one shared template across every surface.

The architecture

Onboarding through production, every key moment mapped. The platform’s structure was shaped decision by decision.

This is a working artifact, not a screenshot. Click through the five calls to see how the structure took shape.

Interactive · hand-coded

Built to live inside FedEx’s 1DX system

I led the design library updates, running weekly workshops with FedEx’s internal brand team so the platform and the broader system evolved together. Every pattern authored once, documented with its full set of states.

FedEx Developer Portal design library board
The platform’s design library, aligned with 1DX.

Outcome

The platform is live in production — pre- and post-login, APIs, webhooks, organization admin, and the design library — used by thousands of FedEx developers worldwide and validated through continuous research.

The calls that shaped it

Reframed a docs project as a platform redesign.

Research said developers left before the docs. I argued for the bigger scope, and won the budget.

First-classed the in-progress lane.

Saved-but-incomplete projects, permission gates, and system states treated as primary surfaces, not edge cases.

Authored notifications as a system.

Toast, alert, modal, gate as named types with shared templates. One pattern, every surface.

Leadership & influence

  • Made the case that a documentation refresh was really a platform problem, and won the budget to deliver it.
  • Ran weekly design-library workshops with FedEx’s internal brand team so the platform and the broader 1DX system evolved together.
  • Synthesized 26 research rounds a year into product direction and PI design briefs across two increment cycles.
  • Worked directly with engineering through delivery so design intent survived implementation.

What I’d do differently

Start the failure-path research earlier. Testing taught us that trust is built or lost when things go wrong, but that insight arrived mid-stream, after the happy paths were already designed. The recovery lanes for webhooks and account setup would have been stronger sooner if we had led with them. It’s now the first question I ask on any platform project.

Next project Cognex →