Designing for High-Stakes Operations
Building a centralized operational platform that enables commercial cultivation teams to monitor and control environmental systems in real time.

Project at Glance
- Greenfield IoT platform built for commercial cannabis cultivation facilities in the US legal market
- Designed interfaces for multiple environmental systems: HVAC, irrigation, fertigation, lighting, CO₂
- Unified experience across operational workflows while preserving each system's unique behaviour
- Established the interaction patterns that became the foundation of the platform's operational experience
why this project matters
Commercial cannabis cultivation facilities run on tightly coordinated environments - temperature, humidity, CO₂, irrigation, lighting, fertigation - each historically behind its own interface. That fragmentation overloads operators who need one complete picture of facility health. THC Controls set out to fix that, and my challenge wasn't designing dashboards: it was reducing cognitive effort without oversimplifying the decisions operators make.
Problem & Context
Understanding the System
I'd never worked in controlled environment agriculture, so before designing anything I learned how each system actually works. They aren't variations of one problem: temperature needs live visibility, irrigation is scheduled execution with manual overrides, fertigation adds nutrient management, and lighting and CO₂ follow their own rules. Designing one unified template would have created consistency while destroying operational clarity - so each system got an interface shaped by how it works, unified through structure and navigation.

Design Solutions
Design Decision 01
Interfaces Shaped by Operational Behaviour
Monitoring needs immediate visual feedback; configuration needs richer controls; irrigation and fertigation need scheduling front and center. One layout can't serve all three.
I mapped how operators interact with each system - what needs continuous visibility, which actions are frequent, how fast issues must surface - then built a consistent structural framework that lets each system adapt its visualizations and controls to its operational purpose.



Flexibility without fragmentation: each module communicates its own way, and the platform stays cohesive.
Design Decision 02
Building Unity Without Sacrifice
Specialized interfaces create a new risk: if every module behaves differently, operators relearn the product constantly - cognitive effort in exactly the wrong place.
I identified what stays constant across every system - navigation, page hierarchy, status indicators, layout behaviour, interaction patterns, reusable components - and made that the shared foundation.


Each specialized system sits on that foundation. Navigation stays predictable, components keep visuals consistent, and specialized controls appear only where they support real operational decisions.
Consistency didn't come from making everything look the same. It came from shared structure and interaction principles - one coherent product that still respects each system's workflow.
Outcomes & Reflection
The Balance
The end state is one workspace for previously disconnected systems: monitor facilities, configure environments, run daily operations - each system specialized, the whole unified by a shared design language and predictable navigation. That balance turned a technically complex environment into faster understanding and more confident decisions.
What I Learned
It was tempting to see this as a set of dashboards. Deeper in, the real challenge was supporting different kinds of operational decisions - and the only way to see that was understanding the systems first.
Understand the system, then design interactions that support how people actually work. It's shaped every complex product I've taken on since.
Enterprise • Workflow DesignGuiding Better Field Execution
Mobile • Visual DesignDesigning Trust for Sensitive Health Journeys
Multi-surface DesignKeeping the Night Alive
Enterprise • Data VisualizationMaking Audit Data Useful