ATLASSIAN

Sandbox Migration Event Logs

How redesigning Atlassian’s sandbox debug experience helped reduce support friction by 50%

Role

Product Designer

Team

1 Senior Designer, 1 Lead Developer, 1 Product Manager

Key Responsibilities

- Own end-to-end redesign of internal debug tool to reduce support friction
- Conduct task-based usability testing and developer interviews to inform UX
- Use information hierarchy and progressive disclosure to simplify complex logs
- Pair closely with engineers to implement reusable interaction patterns
- Leverage Atlassian design system for consistency and extensibility
- Enable cross-tool adoption of design through scalable UI components

background

When enterprise customers sandboxes fail, support engineers are required to troubleshoot.

Enterprise customers at Atlassian use sandboxes to safely test product changes, configurations, and app behaviors in isolated, non-production environments.

These sandboxes are critical for de-risking changes before deployment — especially in regulated industries where a single misstep can have major consequences. When customers are ready, they can migrate changes from sandbox to production.

But when something goes wrong during that migration — whether data fails to transfer, apps don’t behave as expected, or settings don’t persist — customers raise support tickets.

These tickets land with Atlassian’s internal support engineers, who turn to the Sandbox Admin System (SBAS) to troubleshoot. A core part of SBAS is the Sandbox Migrations Container, which lists all migration attempts.

problem

Engineers are relying on raw JSON logs to diagnose  

Until recently, this view surfaced only raw JSON logs — unstructured, dense, and lacking context. Engineers had to manually dig through data dumps to identify root causes, often while juggling multiple tools, logins, and time zones.

For routine tickets, the process was tolerable. But when migrations failed in more complex ways, resolutions could stretch into days — frustrating developers and threatening enterprise trust.

SOLUTION

Enabling faster diagnosis, smoother support, and higher confidence in Atlassian’s enterprise cloud platform.

A redesigned Migrations Container that transformed raw logs into structured, actionable insight — enabling faster diagnosis, smoother support, and higher confidence in Atlassian’s enterprise cloud platform.

Solution

Update In Progress

01

Hi! I am currently updating this solution breakdown to reflect my current skill set.

Check out below for the previous version, or tune into my updated Macquarie and Pearler case studies!

...

impact

Improving customer experience, user experience and faciliatating cloud adoption

01

Reduced support friction by 50%, improving developer productivity and resolution speed.

02

Sparked internal adoption across adjacent tools spreading a new visual and interaction standard


03

Created task-specific clarity for support engineers under pressure replacing noisy data dumps with structured insight

04

Enabled a reusable pattern (e.g., header bars, “tabs-as-filters”) that shaped future internal tooling

05

Gave enterprise customers faster, more reliable sandbox support contributing to cloud platform satisfaction

Learnings

Ask more, ask often

This was my first fully led project, and I walked away with much more than a set of screens:

- Collaborating async made me better at storytelling and documentation
- User testing with real tasks helped me prioritise qualitative insights over quantitative noise
-I learned how to work with uncertainty, without a PM or researcher — and still deliver value
- And I began to see how “small tools” like SBAS can quietly power trust at an enterprise scale

“Design isn’t just about making something usable. It’s about making it usable when it matters most.”

Process

How research, exploration, and iteration shaped the product foundation

Problem

Developers Were Debugging with a Blunt Instrument

Atlassian’s Sandbox Admin System (SBAS) supports engineers who troubleshoot issues for enterprise and premium customers testing changes in isolated environments.

A key component of this system — the Sandbox Migrations Container — lists all data copies and migration attempts from sandbox to production. However, this logs simply surfaced a raw JSON file, exposing success and failure events in a flat, unstructured dump.

This made diagnosing failed migrations difficult and inefficient, especially under time pressure. The lack of grouping, hierarchy, or prioritization meant developers had to manually parse complex data with no contextual guidance.

“Right now I have to manually go to the audit logs and enter the migration ID myself. If that was available directly in the event log, it’d save a lot of time.”

What was at stake:

🐢

Slower support ticket resolution
😠

Developer frustration
🔒

Risk to enterprise trust and satisfaction

The Setup

No PM, No Researchers — Just Me, Devs & Docs

When I joined the project, our product manager had just left.

I worked with:
🧑💻 Lead developer: Weekly async design reviews
👩🎨 Senior designer: Ad hoc syncs every 2–3 days
🧠 Design crit team: Fortnightly formal sessions
📜 Historical research: Inherited documentation as my foundation

With no dedicated UX researcher, I ran my own usability testing and leaned into developer interviews, async walkthroughs, and user quotes to shape direction.

User Research

Developers Wanted Less Noise, More Signal

I conducted task-based usability testing with 7 engineers using high-fidelity Figma prototypes. Each participant completed 2 tasks:
1) Identify a sandbox issue,
2) Troubleshoot the issue.

Each task had a 100% success rate, and had SEQ scores of >5 out of 7 indicating satisfaction with room for improvement.

Pain points uncovered:

😵‍💫

Developers had a mental model of single sandbox use — new multi-sandbox support caused confusion
🧠

Cognitive load was high due to duplicated information across platforms
🔒

Auth friction was high — engineers had to log in multiple times to retrieve basic data

Exploration & Iteration:

Designing for Speed Under Pressure

My design goals:

🧭

Information hierarchy — no more data dumps
🧱

Progressive disclosure — reduce visual overload
🔍

Traceability — grouping events by sandbox

Design system use:
Used Atlassian’s patterns for tables, badges, alignment, tabs
Collaborated with a senior designer to co-create header patterns for extensibility, and collaborated with another designer to understand my side panel implementation

The "Tabs as Filters" Decision: In an early iteration, I used tabs to let users toggle views by status (e.g. Failed, Success). While unconventional, the small dev team appreciated this as a “saved view” — a junior call that turned into a surprisingly sticky pattern.

Results

Support Just Got 50% Easier

- Support engineers now had clearer, faster visibility into what went wrong and where
- They could identify root causes faster, cutting cognitive effort
-
Several other internal tools began adopting this redesigned pattern — indicating organic system spread

📉 Hypothesised outcome:
50% reduction in support friction (based on internal feedback)
Quicker resolutions → higher developer productivity → happier customers