Refocus on UX

At we’re building a service for cloud developers to access FPGA hardware acceleration with standard Go tools and usability has always been at the heart of what we do. We are a small team and each of us has a high degree of responsibility. In the months leading up to entering our public beta, the pressure was on across the board to improve, speed up and tidy up the service. When eyes are down it’s easy for the bigger picture to slip out of sight, so now we’re taking the time to come together and refocus, using the one thing that has always been at the centre of what we do to prioritize and plan all aspects of our work — the user experience.

Making some subtle changes has allowed us to see more clearly where our service could be failing our users or allowing customers to slip through the gaps. Let’s look at a few of the changes we’ve made.


Entering our public beta coincided with launching a new customer onboarding flow, involving a pretty straightforward web-based signup, integrated with our web app, tooling, installation and documentation. As new users started signing up it was clear there were unforeseen issues and opportunities for confusion. For example, installation instructions were duplicated between the web signup process and our getting started guide, so people were in effect asked to do this step twice. The end of the signup process didn’t give clear instructions on what to do next, but instead gave a couple of options, one of which led to our web app to provide an account overview and a few other bits of information but no clear step forward. You get the idea…

As a result we streamlined the process to provide a clear route from first entering your details to deploying your first application to a cloud FPGA — no forks in the road, no dead ends. We brought all the required setup steps into the web signup flow, and automated as much of the process of deploying an application to an F1 instance as possible, to give a really quick, succinct feel for the service to our new customers.


These onboarding issues really brought home the importance of being able to take a clear, holistic view of what a user experiences, end to end, not just each section of the business separately. It’s the connecting points where customers get lost, or just give up!

Straight away we began work to bring things together, creating a combined staging environment to ensure everything our users interact with holds together correctly and efficiently. Having staged versions of our tooling, documentation and app, all working together means when we’re preparing a release we can easily test and inspect the flow of information, instructions and learning materials to rule out inconsistencies and errors prior to going to production — removing the possibility of users hitting these issues before we do.

Clarity and Consistency

Our service is aimed at highly skilled individuals — software developers — but involves taking them into the potentially uncharted territory of hardware programming. We offer a clear path, using only standard and familiar tooling, but the subject matter is notorious for its complexity. For this reason it is essential we provide a steady guiding hand through the initial stages of learning our workflow, and straight away we found areas for improvement.

We were relying on third party documentation to take our users through vital setup steps, but when inspected more closely this jumped out as a potential point where people could get stuck and give up — before even hitting our main tutorial program. So, we took away all the ambiguity and created a succinct, fool-proof setup guide containing everything a user needs to do to use our service, leaving other options and variants open for people to discover on their own.

Our documentation includes short tutorials that step through our tooling and workflow, while introducing programming concepts needed to get the most out of the technology. There’s also help built-in to our tooling, and of course, helpful error messages. Our docs and help were originally written by different team members and so inconsistencies in language and concepts had crept in. Bringing everything together with a UX focus brought these seemingly minor issues to our attention. An easy fix to avoid unnecessary confusion.

So, what did we find?

A lot of the issues we identified through our shift to a UX focus seem pretty minor on their own, but all together they could have lost us customers and confused our users. These issues would not have come to light without setting the goal of an excellent user experience and using this to view all aspects of our service. Let us know what you think, how do you ensure you keep the user experience at the heart of your development?