About

An application-centric experience for managing and monitoring resources across accounts, regions, and services.

In 2021, AWS spanned more than 200 services across 25 geographic Regions, while large enterprises managed thousands of accounts. The console mirrored how AWS was built: users selected a region, account, service, then resource. That worked for one database, but not for an application distributed across services, accounts, and regions.

Customers compensated by extracting resource data and stitching it together outside AWS whenever they needed to understand an application’s cost or health. The opportunity was to make the application a first-class AWS object.
Working with a principal engineer and product manager, we defined an application as the metadata, code, and cloud infrastructure that together deliver business value. AppRegistry stored its metadata, Resource Groups associated its resources, and an application tag connected each resource to the group.

As services adopted this shared object, customers could see an application’s cost, health, security, and performance regardless of where its resources lived. This became an S-Team goal in 2021. I defined the application-centric experience across consoles, CLI, and SDK, then aligned service teams around adopting it.

I worked with PMs and UX designers across 15 service teams to understand how applications should appear in their consoles. Each team proposed a different integration, and adoption was voluntary. Fifteen bespoke solutions would never scale.
The requirements reduced to two patterns. Producer services such as EC2, S3, Service Catalog, and Resilience Manager needed to create applications. Consumer services such as CloudWatch, Cost Explorer, Application Insights, and Security Hub needed to list applications and apply the selected one to an existing view.

This producer–consumer model became the shared reference across AWS. I brought it to stakeholders early so ownership decisions could happen once, against the same system, rather than across 15 separate reviews.
The two integration patterns became two reusable Cloudscape components. This allowed service teams to support applications without running their own design process. Since adoption across 10 services was the goal, reducing integration cost was the central design problem.
Creating an application
The creation pattern covered four input groups: name and description, associated resources, attribute groups for metadata, and tags. Resource selection was the hardest part because customers thought in both CloudFormation stacks and individual resources. The picker supported both without becoming a separate workflow and later shipped as a reusable Cloudscape component.

Selecting an application
The list component showed every application in an account and region, including applications shared across accounts. I designed a compact picker for flows where selection was one step in a larger task, and a full-page version for services with a dedicated application view.

Extending the system to Console Home
Console Home was not in the original scope, but the same S-Team goal called for applications there. Because the new surface had no established widget patterns, I partnered with the central UX team to define its design requirements before designing the widget itself.

as of May 2023
Adoption counted only meaningful use: applications containing resources and customers actively using or updating them. The resource selector also shipped as a reusable Cloudscape component beyond myApplications.
A few launch announcements from the initiative: