Originally Published 2018 as a recruiting post for the Quora Design Team.

This is a foundational piece I’m going to refer back to as we publish a series of posts on machine learning and design. Machine Learning is extremely important at Quora. It powers our personalized digest emails, the home feed, applying topics to questions, moderation, routing questions to people to answer, spam detection and more.

In our case the answer to the question is that almost all designers have some basic understanding of Machine Learning, and we’ve also developed a framework for who needs to know how much.

Note that I’m going to use Designer and PM interchangeably because the two functional roles have a lot of overlap at Quora and this should be equally helpful to both. Imagine you are someone working on…

Design Patterns

Your day to day is working with type, grid, layout, color, and establishing design patterns to be reused across the site. This is about as far as you can get from ML

Nevertheless, it’s extremely useful to realize that content in a highly personalized product can greatly vary from user to user and it’s a risk designing for people only like yourself. For example, when I worked at Facebook, my news feed would be full of high quality DSLR photos from other employees, not unlike this launch photo from the 2013 Newsfeed redesign.


But it turned out most real users didn’t have friends with great cameras at the time, so in reality most screens were smaller and the emphasis the design places on presenting high quality images well simply wasn’t as important as internally perceived.

Spam/Quality Control Systems

Spam filters are based on classification [1]. Classifiers **use data from the past to label if something belongs to one class (in this class spam) or another (not spam). Any such system makes mistakes, either marking well-intentioned messages as spam (false positives) or still letting spam through (false negatives). This generalizes to multi-class classification as well.

Handling false positives and negatives becomes the main user experience concern of such systems, firstly on the client:


Messenger’s Message Requests Interface is a flow for handling messages from people you don’t already know. It has to solve for spam, harassment and celebrity inbox overload.

But if your classification system is not bulletproof, for example if legitimate emails sometimes get marked as spam, then message senders have to take partial responsibility and ask you to “make sure you check your spam folder”.

Your job then becomes how to handle when false positive and negatives when they happen. When things get inadvertently marked as spam, you’re designing for the fear of missing out and when something makes it past the filters, you’re dealing with explaining the potential failure and giving the user the feedback loops to then deal with it.


Powered by Fruition