Select Page

Deep dive into my process

This is an example of how I go about improving the user experience.


Since the research team I was hired on to help with had not worked with UX before, I was given the goal to “figure out how to fix the UX”. 


Defining the goals

To start I spoke with the stakeholders. I wanted to find out how they all thought was the way to reach the goals of speeding up the model creation process, and making it easier for developers to make faster ML models.

I was looking for not just the goals, but also the metrics to measure the success. I came up with a plan and got buy-in from all the stakeholders for the order of information to find out, timeline, and how to measure success.

Research done in this phase

  • Literature review of metrics measuring to find what are the best for the current situation
  • Competitive analysis to become familiar with the tool landscape
  • Design sprint to find out what all the competing ideas are, and to let them argue over them

Design work done in this phase

I had taken the information gathered  from the design sprint and created mockups that followed the current product design language (since the team was not familiar with working with UX I wanted feedback on functionality, not design.

The examples show 3 variations for navigation gathered from stakeholders during the design sprint for later testing. The forth screen shows a screen I designed to start working with developers to see what functionality could be built.

Foundational work

To start, I set out to find the problems for developers. I started with interviews & surveys (internal users) and interviews & survey posters at conferences (external users, image at right) looking for choke points.  I was able to map out the different persona groups, the steps different developer groups are taking, the time they spent at each step, and what they saw as time wasted.

Research at this phase

  • User testing on outcomes of design sprint and for developer ideas
  • Card sort to see how engineers thought about navigation grouping
  • Design sprint with developers for API design and needs
  • Survey for training and documentation needs
  • User personas & user journeys built from interviews

Designs at this phase

At this stage it was all about figuring out which functionality was possible and how it would fit together. Designs were created to find out how users would react to possiblities and how they wanted to flow between features. The designs were trying to discover the flow of what users expected. The fidelity level was low to get user tests to focus on the functionality.


Sprint work

Once I was able to prioritize the problems affecting the most people, causing the biggest slowdowns, and the biggest headaches; the biggest problem was how difficult it was to debug ML models.

I switched modes to sprint development so I could quickly iterate between working with developers to figure out what is possible for the design, then user testing those designs to find problems, and then surveys to find out the size of the problems to fix in the next design.  

Research at this phase

This stage is all about the user testing. The refinement to get the lowest number of steps for the fastest interaction during the user journeys. Introducing visual design and making sure complements the usability.

Designs at this phase

I worked with a visual designer that had come up with a design language for many products and translated it into the product I was designing. I refined the interface based on the user testing to get the highest success rate.


Example of the evolution of a feature


This shows how to integrate a complicated feature. Displaying raw tensor data can be confusing because it is a lot of numbers that need to be navigated over multiple dimensions. Trying to display and navigate through six dimensions with only two visable can get users lost.


  • The first version was a direct translation from how the code works, it didn’t test well even with developers familiar with the API.
  • The second version split up the views to try to make it easier. The interface for moving between dimensions also became bigger to make it easier.

The finished feature ended up being 3 different views that gave a graduated level of detail.


Since this is open source, the iterations are currently being built and the current version can be found found at the TensorBoard Debugger.

More design examples can be found in my portfolio

You can also view my  Github interaction with the TensorBoard and Cirq teams.

If you are interested in more info about me, you are free to listen to the podcast I host or read articles I have written.

Feel free to reach out with any questions and thank you again for taking a look.

The extra UX headaches for AI in production

The extra UX headaches for AI in production

It used to be that UX would work with the developers to create a good experience. Dev would build it and then QA would verify it. After that the product would be released and the team moved on to new features. This still works for non-AI products.The current process...

3 steps to ensure AI doesn’t make your product worse

3 steps to ensure AI doesn’t make your product worse

As AI becomes better it has started to become a differentiator between products being offered by different companies there is a push to put it into everything. The idea is so pervasive it lead to a whole genre of memes on using AI as the solution to anything. So where...

AI specific issues while user testing

AI specific issues while user testing

Machine learning is one of the strategies many companies are using as they try to improve and differentiate their product by augmenting the user’s experience. Building artificial intelligence into apps can improve what can be done for customers and users, but can also...