Intermediate everything in Design & UX, page 28

Design System Adoption: Treat It Like a Product
Treat your design system like a product you're selling to internal teams, not just a library. Without an adoption strategy focused on real workflows, even a perfect system will be ignored, leading teams to build from scratch or create their own mini-systems.

Design System Governance: A Process for Evolution
Design system governance is a process for when components don't meet a team's needs. It guides teams on whether to create a one-off "snowflake" or contribute a new component back to the system. The footgun is letting teams "find a way," leading to chaos.

Systematizing Haptics: Beyond Simple Vibrations
Treat haptics like a design system for touch, not just random vibrations. Use them to confirm actions or signal state changes. The biggest footgun is overuse, which turns meaningful feedback into annoying noise that users will disable.

Using Component Libraries in React Native
A component library is a pre-fab UI kit for your app. Instead of building every button from scratch, you get polished, ready-to-use pieces that handle platform-specific animations and accessibility.

CSS `color-scheme`: Opting Into Browser UI Themes
The color-scheme property tells the browser your site supports light/dark modes, automatically styling UI like scrollbars and form controls to match the user's OS preference.

Dynamic Theme Switching with CSS
Let your app's theme automatically follow the user's OS setting. CSS's prefers-color-scheme media query lets you define styles for light and dark modes. The footgun is forgetting the 'no-preference' state, which can result in an unstyled default.

White-Label UI: Design Once, Rebrand Infinitely
White-label UI is like a WordPress theme for your product: a single design that other companies can rebrand. It lets agencies serve multiple clients without rebuilding the UI from scratch.

Component Feature Flags: Opt-in to Breaking Changes
Component feature flags are a temporary opt-in switch for new versions, letting you adopt breaking changes before a major release. Design systems use them to roll out updates without forcing an immediate migration.

Release Trains: Aligning Multiple Agile Teams
A Release Train is a long-lived 'team of teams' (50-125 people) building a large solution together. It aligns multiple Agile teams to a common roadmap, ensuring they deliver value in sync.
Thematic Analysis: Finding Meaning in Qualitative Data
Thematic analysis turns messy qualitative data into clear insights. Instead of just counting words, you identify patterns of meaning—or themes—to understand the 'why' behind user feedback, interview transcripts, or support tickets.
Component Detachment Rate: A Design System Health Metric
Component Detachment Rate is a design system health metric, like customer churn. It tracks how often designers must break a component's link to its source to make custom changes, signaling that the component is too rigid or lacks needed variants.

How Design Systems Lower Your UI Bug Rate
A design system is a factory for pre-tested UI parts. By using standardized components instead of hand-crafting them each time, you reduce one-off bugs. This is a key metric for proving a design system's ROI, but teams often fail to track it.

Component Coverage: The 80/20 Rule for Design Systems
Component coverage applies the 80/20 rule to your UI, measuring what's built from a design system versus custom code. It helps track adoption and justify freeing up dev time for unique features.
Branding Your Design System for Adoption
Treat your design system as an internal product. Give it a brand—a mission, vision, and narrative—to drive adoption and ensure consistency. This aligns teams on the 'why' behind the components, not just the visual rules.
Breaking Change Policy: Managing API Evolution
A breaking change policy is a contract with your users, ensuring disruptive API changes are predictable, not chaotic. It governs how you alter shared libraries or design systems, like removing a prop, to prevent downstream failures and maintain trust.

Who Can Change the Button? Design System Contribution Models
A contribution model defines who can change the design system, balancing consistency with evolution. It dictates whether you can fix a typo or must lobby for a new component.

Design System Intake Process: The Gatekeeper for Quality
A design system intake process is the formal "front door" for new components, defining how they get proposed, built, and approved. It's crucial for coordinating contributions across teams.

The Design System PM: Treating Internal Tools as Products
A Design System Product Manager treats the system as a product, not a project. They define the roadmap and prioritize components for their internal engineering and design "customers."

Accessibility Linters: Automate Compliance in Your Design System
An accessibility linter is like a spellchecker for WCAG compliance, automatically flagging component errors like bad contrast or missing labels. It runs in CI/CD to catch bugs early, preventing them from propagating. The footgun: it can't catch everything.

Figma-to-Code: From Pixels to Production Code?
Figma-to-code tools act as translators, turning visual mockups into code. This speeds up bootstrapping new components or prototypes, but the output is rarely production-ready and often needs heavy refactoring to be performant and maintainable.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles