Comic courtesy of XKCD, via Creative Commons License
Our frontend engineering candidates go through many of the same types of interviews as our backend candidates, i.e., algo and coding. But because they’ll be building the user-facing parts of our system, we want to make sure candidates have some design chops as well. Hence the UI design interview.
Perhaps my favorite part of being on the frontend team at Palantir is that we get to work on both the design and the implementation of our own UIs, from inception to finished product. Engineers collaborate on the design of the product with other engineers as well as with designers, and we openly debate the merits of all our decisions. The UI interview simulates this kind of cooperative design and debate. Typically, this means you’ll be asked to design and/or evaluate one or two pieces of UI during the interview, while your interviewer plays both collaborator and critic.
Read on for some helpful points to keep in mind as you work on a design problem with your interviewer.
The user is the ultimate arbiter of success for any interface. If users can accomplish their tasks in a simple, efficient, intuitive way, then we’re doing our job right. Therefore, we must keep the user in mind at every stage of interface design.
One common mistake that you can make up front is to assume YOU are the user. Because working on a computer is a solitary activity, it’s easy to forget that everyone experiences an interface in a different way. Depending on what you’re designing, the user may be a complete novice or a seasoned sysadmin.
It’s important to imagine what your users are like. If it helps, give the user a name, age, and occupation. Ask yourself these questions:
When designing a feature for the interface, walk the user through the feature. Make a rough sketch of the main components (buttons, lists, text blocks) on a whiteboard or sheet of paper. Then simulate how your user might interact with the feature, by drawing in their input and selections.
While sketching your proposed interface, put yourself in the user’s shoes. Ask yourself these questions:
and so on. Once you’ve asked yourself those questions, consider how the answers should impact your design and modify it accordingly.
tl;dr: The user is paramount. Each of your decisions should be justified by its impact on the user.
Some candidates are reluctant to contradict the interviewer or provide alternative ideas. We want the opposite. If you have a good idea,advocate for your position. I prefer candidates who will contradict me, as long as they back up their ideas with arguments, stories, or examples. The more you can articulate the reason for your beliefs, the better.
Go ahead and keep throwing ideas out there. I’ll shoot down some of them, but don’t be daunted. It may take 10 ideas before we discover a gem. (This is how all design works, not just in an interview setting.)
I’ve seen many candidates jump through incredibly awkward (albeit fancy) hoops just to display some very simple data. If you have a list of data, display it as a list. In general, being familiar with UI conventions is helpful because they encode a lot of hard-earned wisdom.
If you’ve created an interface that will enable the user to do their task as quickly and painlessly as possible, then stop. Don’t weigh down the interface with unnecessary features. As Deiter Rams famously said, “Good design is as little as possible.” This holds true for user interface design just as well as product design. Consider Alan Cooper’s rule of thumb, “A user will take as much time to make a choice as there are choices.” If a user is inundated with options and features, they find the interface more difficult to use. A simple, direct approach is frequently the best one.
If you want a quick and easy measure of the simplicity of a feature, just count the number of clicks to complete the task using your interface. If the user has to switch from mouse to keyboard, count that twice.
If you’ve done some design in the past, especially in a collaborative setting, just come and be yourself—you’ll do fine. But if you’re relatively inexperienced, here are some ways you can improve your design skills:
I hope this post will help you design better interfaces, and perhaps I’ll be working with you soon!