Design Infrastructure is becoming a core part of how we design and build our products at DoorDash.
Officially, the Design Infrastructure team here is just me, and I work alongside a ragtag group of folks assisting from product design and engineering. But now, we’re looking to grow the team to scale up its impact and make DoorDash a leader in high quality design and engineering.
We want to build a home where people who love both design and engineering can use their skills to impact our products & processes at scale. Personally, I’ve always struggled with having to pick between being either a designer or an engineer. But with the role that this team is playing, there’s now a more defined space for others like me, where we can do both.
So what is Design Infrastructure at DoorDash?
One way you can define what we do is to see what we’ve already done. For instance, over the last year, we’ve shipped our Design Language System (DLS) for Web, Android, and iOS. We’ve built libraries that share typography, color, spacing styles and concepts between platforms using design tokens while setting the stage for cross-platform design work and shared components. We’ve standardized our typography and color systems throughout our apps. We’ve invested in building out a robust component system in DLS Web, making the hard, tedious, error-prone work of building things like modals no effort on the part of both design and engineering. And finally, we’ve started shaping the processes of how designers think about design, how they communicate and work with engineering, and how engineers think about implementing the experiences we design.
A peek at our Design Language System’s Storybook playground for playing with our components.
But that’s just a small part of what Design Infrastructure aims to do.
There are two halves of design at DoorDash that are equally important—being able to be generative and exploratory to find the right shape of a solution, and then productionizing those designs to account for edge-cases, utilizing existing solutions, patterns and language, and working alongside engineering to make those designs truly work.
And when engineering our products, we need to think about so many things: how do we make sure that we account for our edge cases? How can we make implementing complex (but important!) micro-interactions repeatable and low-cost, so that we can really focus on the things that are different between experiences? How can we make accessibility something that we bake into all of our work, as simply as possible? How do we make it easier to have shared understanding and concepts with design, so that we can communicate more fluidly? And how can we make our work as collaborative as possible?
We think Design Infrastructure is responsible for making all of this easier.
Design Infrastructure can help designers be more efficient when exploring the edges of design—think of building tools like René from Jon Gold—so that the manual work of coming up with many options can be automated away, and the real value of human judgement can be put to better use evaluating and selecting the designs that make the most sense for the problem at hand. We also build prototypes & prototyping tools that help designers solve hard questions that static design tools can’t answer. We work with product designers to push our visual, and interaction design system forward, spending time outside of any individual product project to work holistically across our systems.
Design Infrastructure will make productionizing (taking our explorations and making them work in the context of our design & engineering systems) easier: building tools for finding, understanding, and using existing design decisions & patterns—both through static (like documentation) and interactive (think tools for that guide you to use parts of the system) means. We can make communication easier by having a shared design language across design and engineering tools, and ensuring that designs are easy to read and understand when they’re documented (think a super-charged Zeplin). And we work with product design to ensure that our brand consistency and visual design quality is at a standard that meets our systems.
Design Infrastructure builds the components and frameworks that make implementing our designs easy. By creating & engineering complex interactions once and reusing them, we ensure they’re high quality and allow product designers and engineers to focus on product problems. By designing usable, flexible-enough APIs for engineers & designers to configure components, we make our system robust and better able to meet the needs of our experiences. We design our systems to make updating them as simple as possible. And finally, we establish a focus on accessibility deep in the designs and the code we write so that it’s a foundational part of how we design and build our products.
Design Infrastructure is at the intersection of product design and engineering, and we support both sides through our tools, systems, communication and most importantly, our shared empathy of design and engineering.
I’ve always been a hybrid. I’ve done engineering and design at every single stop of my career, and I don’t know how I can do something that doesn’t engage both sets of skills.
For a long time, I wondered what the right space for me was—was I better off as an engineer or as a designer? And even though I’ve always done both, it was always hard doing both at the same time.
I know now that it doesn’t have to be this way. There is room for both sides in one role & one team. My goal, alongside supporting our partners in product design and engineering, is to build a space where you don’t have to choose one side. I want a home for the best people at the intersection of design and engineering to do their best work. A place where we can make an impact on the quality of all our products and make how we do our work even better and more collaborative.
That’s what the Design Infrastructure team at DoorDash is.
And if you’re excited about that as much as I am, you should come work on it.