Gap, Inc.

Multi-Brand Design System Platform

Led frontend architecture for shared UI platforms serving millions of users across Gap and Banana Republic brands, building scalable design systems that accelerated feature delivery while maintaining brand identity.

March 2021 - May 2024, August 2024 - August 2025
Senior Software Engineer / Technical Lead
ReactNext.jsDesign SystemsTypeScriptPerformanceA/B Testing

The Challenge

Gap and Banana Republic were operating with fragmented UI systems developed independently by separate teams. This led to duplicated engineering effort, inconsistent user experiences across brands, and slower time-to-market for new features. Each brand maintained its own component libraries, resulting in the same UI patterns being built multiple times with different implementations. Teams struggled to maintain brand-specific differences while sharing common functionality. The challenge was to unify the frontend architecture without erasing brand identities, enable rapid experimentation through A/B testing, and create a system that would scale across multiple teams and products.

My Approach

1

Token-Based Design System Architecture

Partnered closely with design teams to establish a comprehensive design token system supporting both Gap and Banana Republic brand identities. Created a flexible architecture that maximized code reuse while allowing brand-specific customization through theme variables. Built foundational components with composition patterns that could adapt to different brand requirements without code duplication.

2

Shared Component Library Development

Built and evolved a production-grade component library used by multiple product teams. Established clear component APIs, comprehensive documentation, and usage examples. Implemented TypeScript for type safety and better developer experience. Created automated visual regression testing with Applitools to catch UI inconsistencies early.

3

Performance & Growth Optimization

Implemented frontend performance optimizations including code splitting, lazy loading, and bundle size reduction strategies. Integrated analytics and A/B testing frameworks to enable data-driven product decisions. Built instrumentation for tracking user interactions and conversion metrics across both brands.

4

Cross-Team Collaboration & Standards

Established frontend standards and best practices adopted across multiple teams. Led architectural discussions and code reviews to ensure consistency. Created comprehensive documentation and conducted training sessions to accelerate team adoption. Worked with product, design, and marketing stakeholders to align on priorities and deliver customer-facing features iteratively.

Design System Pillars

Component Architecture

Atomic design principles with composable components. Built 50+ reusable components from buttons to complex data tables, each supporting theme customization.

Developer Experience

TypeScript for type safety, Storybook for component exploration, comprehensive documentation, and automated testing to enable confident development.

Brand Flexibility

Design token system allowing both brands to share components while maintaining distinct visual identities through theme configuration.

Performance First

Optimized bundle sizes, code splitting strategies, and lazy loading patterns ensuring fast page loads across millions of sessions.

Results & Impact

Users Served
Millions
across Gap & Banana Republic
Component Reuse
85%+
of UI built with shared system
Development Speed
40% faster
feature delivery timeline
Code Quality
Significantly Improved
consistency & maintainability

Technical Highlights

  • Architected multi-brand design system with 50+ TypeScript components serving millions of users
  • Implemented design token architecture supporting theme customization across Gap and Banana Republic
  • Built comprehensive component library with Storybook documentation and usage examples
  • Established automated visual regression testing pipeline using Applitools AI
  • Optimized frontend performance through code splitting, lazy loading, and bundle size reduction
  • Integrated analytics frameworks (Google Analytics, GTM) for conversion tracking and A/B testing
  • Ensured WCAG 2.1 AA accessibility compliance across all shared components
  • Created CI/CD pipelines for automated testing, building, and deployment
  • Led migration from legacy systems to modern React/Next.js architecture
  • Conducted technical workshops and pair programming sessions to upskill team members

Key Learnings

Early stakeholder alignment is critical when building shared systems—get buy-in from design, product, and engineering leadership before architecting solutions

Design tokens are the foundation of multi-brand systems—invest time upfront to define a flexible token architecture that can scale

Documentation and developer experience are as important as the code itself—teams won't adopt tools they don't understand or trust

Balancing flexibility with consistency requires intentional constraints—provide enough customization options without allowing chaos

Incremental migration beats big-bang rewrites—gradually introduce the design system while proving value to skeptical teams

Visual regression testing saves countless hours—automated screenshot comparison catches issues before they reach production

Building a design system for your organization?

Let's discuss how I can help create scalable, multi-brand design systems that accelerate product development.

© 2025 Keith Nickas.
Lighthouse Score: 99
Loading Calendly...