Allan Corbett

Senior Product Designer

The Problem

Design and build an operating system for vertical farms - a greenfield industry with hundreds of unknown unknowns. A technical prototype needed to become a production-ready system serving plant scientists, engineers, and farm staff across multiple countries and languages, all managing complex growing environments in real-time.

Two interconnected challenges emerged: GTMS (Growth Tower Management System) needed to surface critical operational data without overwhelming users, and a design system (Eco) was needed to provide consistent, accessible components that could scale across the entire platform, adapt to diverse user needs and meet developers where they were.

My Approach

A dual-track approach: building Eco as the design system foundation while simultaneously designing and implementing GTMS as its first major application.

  • Research & validation
  • Design system first
  • Iterative development
  • Progressive disclosure

My Role

  • Lead Product Designer - Sole designer responsible for all UI/UX decisions across the platform
  • Design System Architect - Created and maintained Eco from concept through implementation, documented in Storybook
  • Frontend Developer - Authored nearly 50% of the production frontend code, translating designs directly into functional interfaces
  • Cross-functional collaborator - Worked directly with 3 product owners and developers across product, data, and research teams

Impact & Results

  • Adoption: Eco became the standard design system across IGS, used by multiple teams and apps.
  • Velocity: Reusable components significantly reduced development time for new features - teams could build consistent interfaces without starting from scratch
  • Satisfaction: GTMS successfully served plant scientists and farm operators across multiple countries, providing clear visibility into complex growing operations
  • Scale: System managed real vertical farming operations with 50+ towers, processing thousands of environmental readings and growth jobs daily
  • Accessibility: Eco enforced consistent interaction patterns, color contrast ratios, and keyboard navigation across the entire platform
4 TowersGrowth JobsEnvironmentMinimapTower 1Capacity
W4
T0
F0
S5
S1
M2
T1
Tower 2Capacity
W3
T1
F4
S5
S4
M5
T1
Tower 3Capacity
W4
T4
F5
S1
S1
M5
T4
Tower 4Capacity
W4
T3
F3
S0
S2
M1
T5

Component Tree

<eco-layout-body>
├─ <eco-layout-nav> (Navigation)
├─ <eco-nav-link>× 6 (navigation menu items)
└─ <eco-spacer> (horizontal layout)
├─ <eco-nav-action> (search icon)
└─ <eco-user-badge> (user profile)
└─ <eco-spacer> (main content area)
├─ <eco-layout-header> (header with title and segmented controls)
└─ <eco-segments> (tab switcher)
├─ <eco-segment>Growth Jobs</eco-segment>
├─ <eco-segment>Environment</eco-segment>
└─ <eco-segment>Minimap</eco-segment>
└─ <eco-layout-blocks> (grid of tower cards)
└─ <eco-card>× N (one per tower)
├─ <eco-text-heading> (tower name header)
└─ <eco-spacer> (horizontal layout)
├─ <eco-generated-pattern-stripes> (pattern background)
└─ Tower name (text)
└─ Conditional content (based on segmentValue)
├─ Growth Jobs
└─ <eco-spacer> (container)
├─ <eco-input-wrapper> (capacity section)
│ │ ├─ <eco-text-label>
│ │ └─ <eco-progress> (capacity bar)
├─ <eco-stacked-bar> (job states chart)
└─ <eco-description> (harvest forecast)
├─ Environment
└─ <eco-spacer> (container)
├─ <eco-table> (parameter readings)
│ │ └─ HTML <table>
│ │ └─ <eco-spacer>× 5 (per parameter)
│ │ └─ <eco-icon> (delta status)
└─ <eco-spacer> (tank level section)
├─ <eco-text-label>
└─ <eco-level> (irrigation tank gauge)
└─ Minimap
└─ <div> (grid layout, no eco wrapper)
└─ <div>× 54 (one per slot)
├─ <eco-icon> (schedule icon if scheduled)
├─ <eco-progress> (circular progress if running)
├─ <eco-icon> (double-height indicator)
└─ <eco-icon> (reserved/locked indicator)