About

Turning account structure into a shared, consistent primitive for any AWS service to build on.

AWS Organizations lets enterprises manage thousands of accounts as a hierarchy of roots, organizational units, and accounts. By 2022, a shared Organizations component exposed that hierarchy inside 12 AWS service consoles. It had become a platform primitive: every improvement could propagate across services, but so could every limitation.

Organizations administrators used the hierarchy to add and group accounts. Delegated administrators then relied on that same structure inside other AWS services to manage security, compliance, backups, access, and other operations.

The existing component was a single indented tree with one metadata column. As the supported scale increased from 5,000 to 50,000 accounts, its limitations became critical: navigating deep levels was difficult, context disappeared, filtering and sorting were limited, and bulk selection could not support large operational tasks.
The opportunity was to redesign this shared primitive for ten times the scale while supporting very different service workflows. Every decision was a platform decision because 12 consoles would inherit it—and more were waiting.
I mapped service needs across two dimensions: how much surface area the component occupied and what users needed to accomplish with it.
The integrations fell into three footprints:

Across those footprints, three jobs remained consistent:

That context differed by service. Control Tower needed compliance status beside each entity; another service might need security or backup metadata. The component could not own all of it. This led to a clear platform contract: AWS Organizations owned the hierarchy and interaction model, while each hosting service supplied its own metadata and actions.
Miller columns for deep-tree wayfinding
Cloudscape’s default pattern for hierarchical data was a related table. I chose Miller columns instead—a deliberate exception that had to be justified through the customer tasks.
Selecting an organizational unit opens its children in the adjacent column, keeping the parent path visible as users move deeper. The pattern supported arbitrary depth without turning the experience into one enormous indented tree. A flat view remained available for scanning, sorting, and searching across the entire organization.
This combination addressed the core scaling problems: preserving context between levels, navigating large hierarchies, and supporting selection across nested entities without flattening the structure.

Service context without service-specific forks
Hosting services could inject metadata through additional columns or a split-panel detail view. The shared component handled hierarchy navigation, searching, sorting, column behavior, and selection, while each service supplied the context its customers needed.
This allowed Control Tower to add compliance information without rebuilding account navigation, and gave future services the same extension point for their own data. The component remained consistent even when the workflow around it changed.

One system across three footprints
The same component contract could scale from a dedicated Organizations page to an embedded workflow or compact account picker. The amount of interface changed, but the hierarchy, metadata model, and interaction rules stayed consistent.
Because Miller columns were new to Cloudscape, I tested the interaction before engineering committed to building it. Fifteen customers from large enterprises completed eight tasks covering navigation, view switching, selection, and metadata search.
Drilling in was unfamiliar but learnable. Three of 15 participants could not drill into the hierarchy on their first attempt. Two worked it out later, while one needed moderator help. After the first task, there were no false clicks—evidence that the pattern needed a stronger initial affordance, not a different interaction model.

The view switcher was difficult to discover. Two participants missed the flat and hierarchy views during tasks five and six. When opened, the grouped options initially appeared to be duplicates. The finding pointed to greater prominence and clearer grouping.

Metadata had to be searchable. Every participant asked to find entities by compliance status and went to the search field first. This confirmed that service-provided metadata needed to power search and filtering, not merely appear beside an entity.

The study validated the underlying architecture while identifying the interactions that needed refinement: teaching the first drill-in, clarifying the view switcher, and making injected metadata a first-class part of search.