Embeds JupyterLab into DNAnexus to enable users documenting and sharing interactive custom analyses .
An important feature launched in Jan 2019 on DNAnexus Apollo platform .

DNAJupyter Cover Image

Web app product resulted from my internship at DNAnexus


Sang Soo Jun (PM) and more stakeholders

My Role
UX Designer

Interaction design / colaboration with a multi-functional team

Sketch / InVision


The integration of both UIs
The original tedious User Flow:

"As a Bio-statistician, I use DNAnexus to store my data and the its apps to manipulate the data. But in order to actively interact with the data, I have to switch to another webapp, JupyterLab..."

The original high-level user flow
The Goal:

"As a Bio-statistician, I will use JupyterLab inside DNAnexus so that I won't have to switch back and force to work on my research data."

The optimized high-level user flow


Feature themes

Data Access
User: "How do I use data stored on DNAnexus in JupyterLab?"
Engineer: "It's not practical to sync both storages in real-time, how do we convey that information?"

Feature themes

User: "What if my colleagues and I work on the same file at the same time?"
User: "How do I control the versions?"

Feature themes

Extensibility (design problems due to the integration of the two webapps)
PM: "Resources are needed to run JupyterLab on DNAnexus, how to inform users to control their cost?"
PM: "Where do we put the special features?"
User: "What if the running time is about to end?"


Gather feedback and Iterate:

Without practically easy access to direct users, the collaborations with cross-functional teams and the feedback from stakeholders were foundamental to the iterations and process.

the process diagram


The whole project involved 54 pages dealing with more than 12 user problems in the flow. Below are 3 examples of how I solved one major user problem from each Design Challenge colaborating with multi-functional teams.

Data Access: How to use the data stored at DNAnexus in JupyterLab?
Iteration on Data Access Challenge
Collaboration: How to control the version?
Iteration on Collaboration Challenge
Extensibility: What if the running time is about to end´╝č
Iteration on Extensibility Chanlenge


1. Bob (a user) creates a new Jupyterlab Sandbox in DNAnexus, and opens it.
2. Bob and his colleague collaborates on a same file at the same time.
3. Bob uses features provided by DNAnexus: data importing, version tracking, auto-save, and snapshot (saving).
4. Bob modifies the running time at multiple moments.


  1. Communication is fundamental. Through my internship, I have experienced how important communication is to a designer's job. Many of the time was spent on discussions and meetings (either scheduled hour-long ones, quick stand-ups, or simple "touch-shoulders") with colleagues, which often resulted in critical breakthroughs for our work to be done more effective and efficient.

  2. Many design efforts are spent to let the users not noticing any efforts. Unlike in school where we focus a lot on cool concepts and effects, I found a large portion of my daily work was to design or fix user experience in "subtle" places like how to display error messages or where to put a simple function. Tedious as they sound, I believe they are in fact the infrastructure to user's experience and I enjoy refining them continually.


DNAnexus Apollo was launched in Jan 2019, and one of its 6 foundamental features is "Empower biologists to explore data", which basically talks about "DNAJupyter".

the outcome of my work