Designer & Engineer from Colorado, currently living in San Francisco.
My first exposure to design was from hanging out on different video game forums (mostly Counter-Strike forums) and designing custom forum signatures. I didn't make this but this is kind of what that looks like:
Through doing this, I became competent at Photoshop and started using it to do more expressive graphic design. In high school, I made a lot of art, posters for bands, layouts for a literary magazine, and various other archetypal things.
When I was graduating from high school, I had a pretty hard time choosing between art school and engineering school. On one hand I liked being creative and expressive, and on the other hand going to engineering school seemed like a prudent life decision. I chose to go to engineering school and started cycling through a carousel of different majors. I took classes in computer science, cognitive science, HCI, graphic design, and a few other things. I ended up focusing mostly on computer science HCI. I quickly discovered that I was a mediocre CS student despite finding it fascinating. I particularly enjoyed the more abstract elements of computer science like algorithms and systems design.
Ultimately I learned that I really liked building things, and particularly liked making really nice UI and interactions. I ended up spending a lot of my time building different products with other students and engineers in the area. I co-founded a few companies (failing with all of them of course) and did as much consulting as I could. Building products, trying to get people to work with me on them, trying to get users, and trying to make money were all incredibly formative experiences for me. Over time, I did a few internships and ended up being fortunate enough to work at Google and now at Quora.
Fortunately, there's no typical day for me! Designers at Quora are responsible for three main things: product mechanics, interaction and visual design, and front-end engineering. This means that given some goal, a Quora designer will propose a product change, decide which interaction / UI makes sense, and then will write the code (Python, LESS, JS) that makes that change real.
This usually involves setting up and running an A/B test on their own. In addition to that, my particular role involves contributing to product strategy, project management, hiring, mentoring, and many other meta things. For a typical Quora designer, any day is going to depend on what problem you are solving and what stage you're at in the process. I'll spell out some typical phases and you should assume this is nonlinear in practice.
Early parts of the process are going to involve lots of sifting through data, user research, debate about product mechanics, writing Quip documents, whiteboarding, and sometimes mockups. It's important for us to become fluent in the possibility space for whatever problem we are trying to solve and to pick up and drop different tools depending on the type of problem.
When I am trying to solve a hard interaction or visual problem, I should definitely be doing mockups and some sort of prototyping. If I am doing growth or optimization work then I'll probably just host a brainstorm and jump right into building a few things as fast as possible.
If I am making a more fundamental change to the product (adding a new feature) or trying to catalyze certain user behavior (encourage people to write high quality answers), this will involve a longer process of developing hypotheses, looking for analogous mechanics in other products or potentially completely different contexts.
To give one small example, we talk often about how to encourage and scale certain social norms among Quora users, so when this book about the social dynamics of American prisons was going around, we found it to be pretty interesting. Amazon Link.
The majority of most of our designers' time is spent in this phase. Not because coding things takes a while but because this is where the majority of important design decisions are made. This where you are bringing your ideas to life and getting to interact with them with real data. Here you can use your new feature yourself, turn it on for your team, run an A/B test, host a user test, etc. This is where you get to quickly iterate and get your feature in its best state. Given that our entire product development process is built around the premise of designers coding, getting an idea into the product with some code is extremely easy and fast. This whole process often happens over the course of one day.
This phase can happen at any point of the process but it's a common and fundamental “mode” of thinking for a Quora designer. Here you are reacting to feedback, whether it's from your team, from a user study, or, if you are interpreting data results, from an A/B test. Designers drive this process so it's up to us to collect the right kind of feedback depending on the problem we are solving. If I am working on a new interaction and I want to make sure it's usable for people, ideally I would run both an A/B test and a user study. An A/B test would help me understand the usability of the change at scale, and a user test will help explain the data.
The tools I use to do my job are:
We have a giant Q. My desk includes: a bear statue, a “Reserved” sign I stole from a restaurant, a Henry Hoover, and arm wrests because my wrists hurt. I sit next to Emmad, another designer on my team. He does all the work.
In general, I'm motivated by problems. I'm attracted to things I think I can fix and improve, whether it's a part of the product or a process we are using. I get a lot of energy and satisfaction from doing this. I think in order to be good at this you have to understand the possibility space, meaning you have to always be looking for things that are solved. So I am always trying out new apps (especially anything in the top 50), playing new video games, and looking for new ideas or analogous ideas to what I'm doing.
This all matters because I want to understand why something is successful so I can learn from it and re-create it. Mobile games, for example, as a category are full of crazy growth and retention mechanics that are always worth trying to understand. I prefer to find interactions and product mechanics through actual apps instead of something like Dribbble. For finding new ideas or analogous ways of thinking, I listen to podcasts or talk to David Cole (Quora Head of Design).
Although I do prefer to look at apps that are real (as opposed to just concepts), I certainly still look at the standard collections of UI:
This has been the hardest section for me to answer and I've saved it for last. Ultimately, when it comes to consumer software, nothing obvious comes to mind and obviously, I'm really bothered by that! I think there are two things going on simultaneously. One is that consumer mobile and desktop software is on the top plateau of the innovation → optimization S curve.
What this means is that a lot of products and interaction design are largely figured out. We know that mobile is good for communication (social), photography, gaming, and a spectrum of utilities. We didn't really know that in 2004. We now also know things like hamburger menus are bad and confusing. So a lot of the design work we are doing now on mobile is just optimizing what we know that works. Everyone rightly is coalescing on the same design patterns and the average user only has so many apps and they all only do so many things.
The other thing going on right now is that there are new paradigms forming with voice / conversational UI, AR, and VR, and we are just really early in their development. They are all clunky, slow, expensive, extremely limited in their range of capabilities. For example, voice products right now are really only good at triggering pre-produced audio outputs, like music or the news. So what I am getting at is that I expect a lot of great and novel design to come out of the investment being put into these new spaces as they mature and market forces start spinning faster.
I'll name a couple Quora related things and then an old personal project that I have a soft spot for.
Notifications - I had the chance to work on scaling our notification systems. This work included solving three scenarios:
The solution to these problems included leveraging affinity scores (how much two users like each other), introducing bundling of similar types of notifications, changing the behaviors around badging, and using different heuristics to refine each individual notification. What I like about this work is that I made many decisions that impacted the user experience in a major way, but didn't produce any UI. I wrote about this at length here.
Question Asking - Another project that I'll call out is a re-framing of our question asking experience.
Without going into any theories as to why these things matter, the intention of this design was to:
Currently - I made Currently in 2012 during a weekend when I was home sick because I wanted to learn how to build Chrome Extensions. All it is is a dumb little tool that shows you the time and the weather when you open a new tab on chrome. I've worked on mostly stoic functional products in my career and so getting to have a bit of fun with superfluous animations and details was good for me. At one point, Currently hit over 200k WAU as well so that was rewarding. If you want to try it out, go here.
There are so many things I could talk about here, but I'll list a few different ones.
Designing fully personalized realities
“As software eats the world, machine learning eats software.” When every aspect of a user's experience is personalized for them in some way, this presents a few challenges for a designer. It becomes increasingly hard to predict, realize, and control the experience an individual user might have.
When working on something like a personalized feed (Facebook, Twitter, Youtube, Instagram, etc) you learn pretty quickly that mockups are useless and that you need to focus on systems with real data. It's impossible to make decisions about every user’s experience while only looking at your own data. This is one of the many reasons that all of our designer's code. Iterating on the UI of something as dynamic as a personalized feed goes so much faster when you can make tweaks in code while reviewing the UI with real data. When I was working on the Quora feed I would add a UI element and sift through hundreds of feed stories seeing how it behaved until I felt that it would suffice.
Another aspect of this challenge is if we truly want to encourage a specific user experience, we have to work closely with ranking engineers to realize this. We tend to solve this by taking qualitative ideal experiences and matching them with metrics that ranking can optimize for. I've done this for many-core systems of Quora including feed, notifications, and related questions.
Interaction and Visual Patterns
This challenge is not particularly unique to us but nonetheless a big one. We want to ensure that our product has consistent UI and interactions everywhere so that our product is usable and can evolve holistically when we want to change something like our typefaces. Also, we want it to look good! Given that we work very rapidly as a team, this can be a moving target. Fortunately, since our design team codes, we enforce all of our standards in code. We've been able to invest more in these things over the years and have a team dedicated to building and maintaining common patterns.
I think the hardest challenge that we face as a design team and company is in scaling quality. We want people to ask interesting questions that get interesting answers. We want people in our community to respect each other and help each other. These things are not the norm of the average social internet product. I think we have seen some success here but we have a long way to go.
I will happily give advice to anyone that I think could be helpful to them. Feel free to DM me on Twitter.
I know some of these things won't be feasible depending on your current situation, but I'll make some general statements.
Learn to code
Although there are many reasons, I'll give two. First, you will do your best work when you can directly manipulate the exact experience that the user is having. You will find more details, more streamlined solutions. The second reason, be a truth seeker. For everything you do be rigorous about how you are measuring success. How do you know your ideas are good? How do you know the changes you want to make are better or worth the investment?
The best way to learn about making products is to go through every experience involved. Convincing others that your idea is good, building your idea, convincing people to use your product, convincing people to pay you money for your product, and all the things in between. You'll learn so much from having a holistic understanding of what it takes to make a product successful.
Be a sponge
Learn from people around you, learn from products that are successful, challenge yourself when something is successful that you wouldn't expect to be, challenge yourself to find out which things are actually successful vs. ones that only appear to be.
Don't learn one set of tools or one way of thinking. Every problem is different and needs different kinds of solutions. Don't just learn one programming language or one design tool. Don't be an interaction designer, be someone who can do interaction design when it makes sense.
Innovate as a last resort
This is a big topic but I just want to make a point about interaction design specifically. I see a lot of people who overemphasize the value of novel interaction design. The truth is that most products do not need bespoke interactions and would benefit from use of more common patterns because that's simply what users are more likely to understand. I've found in practice it is rare that you actually need to invent a new paradigm to solve what you are trying to solve.
I'd like to promote the Quora Design Blog. We've been trying to write as much as possible in order to share our thinking, learnings, process, and culture with the design community.