Compass, UX Engineering & Design Systems

Senior UX Engineer · 2017 · 3 min read

Built and grew Compass's design system from a prototype component library into a cross-organizational resource, owned the CSS across Compass.com, and pushed the platform forward with early CSS Grid, a Storybook-to-Sketch pipeline, and web component / React interop.

Overview

At the real-estate tech company Compass, I grew from a frontend engineer into the UX Engineer role, owned the CSS across Compass.com, and founded the design systems practice, turning repeated prototype work into a shared component library and team.

Problem

As the sole engineer reporting into the design organization, I was remaking the same assets for every new prototype. There was no shared component library, and engineering teams had no vetted source of truth for building production versions of approved designs.

Constraints

Approach

I built a component library grounded in the design org's real needs, which became a trusted resource for engineering. Owning the CSS across Compass.com, I put CSS Grid into production early and paired html-sketchapp with Storybook to generate Sketch symbols straight from coded components, keeping the design library in sync with the source of truth in code. I explored the interoperability of web components and React so one library could serve teams regardless of framework, delivered a framework-agnostic global navigation renderable on client or server and embeddable in legacy and modern apps.

Key Decisions

Tech Stack

Result & Impact

The library and global navigation became foundational shared resources, and the design systems team established a durable practice that outlasted my tenure.

Learnings

I started at Compass as a frontend engineer. Within three weeks I was helping build out the frontend engineering team, interviewing at least three candidates a week; the group we assembled was the most talented I have worked with before or since.

Supporting the design org meant remaking the same assets for every prototype, so I built a component library. Around then I also adopted an in-house idea called Intents, a semantic approach to design tokens that I would carry forward and keep developing for years.

When I started, Compass was largely an Angular app, but teams were increasingly adopting React. That growing mix is what drew me to web components: a single, framework-agnostic library could serve everyone from one source. React, though, did not initially play nicely with web components, so much of my research toward the end of my tenure went into making that interop work no matter the framework.

Beyond the library, I mentored engineers in the brand and marketing department and took ownership of older pages that had lost their maintainers, migrating them onto newer, more maintainable technologies.