

The original platform supported only three isolation point types:
Even these labels caused confusion during alpha testing: "tryout" and "mechanical" weren't immediately meaningful to the workers and safety managers who would be using them daily. Drawing on alpha user feedback and knowledge shared by the sales team — who had deep insight into real-world facility needs — we expanded the list to 15 distinct types. "Tryout" became "Attention," "Mechanical" became "Gravity," and a full range of real-world energy sources was accounted for:
approach:
Iconography needs to be grounded in how real users interpret visual language in their environment

solution:
Passes accessibility standards while preserving the bold, immediately recognizable color associations the field

improvement:
Ability to switch between table and card view
I also advocated for a dedicated full-screen detail page for each isolation point — recognizing that the volume of critical information simply couldn't be surfaced effectively within a card. To define what that page should contain, I researched what data was essential to capture for each isolation point. The final data model included:
This structure ensured that every isolation point carried everything a worker would need to apply or remove a lock safely and correctly.
The depth of image functionality required by isolation points — thumbnails, full-screen expansion, multi-image scrolling — prompted me to document cross-platform image behavior as a reusable UX pattern. This ensured that how images are uploaded, displayed, and interacted with would be consistent wherever they appeared across the platform, not just within isolation point management.
I identified a significant inconsistency in status terminology across the platform: the same states were described using multiple conflicting labels — "blocked," "busy," and "under maintenance" for a locked-out point; "unblocked" and "free" for an available one. I proposed and drove the adoption of a clear, consistent language system — "locked out" and "active" — eliminating ambiguity and reducing cognitive load for field users. I also introduced the ability to duplicate isolation points, directly addressing user feedback around the time-intensive process of adding entries with similar properties.
With the structure, data model, and language defined, I translated everything into complete flows — covering happy paths, empty states, loading states, conditional logic, and error handling. Each flow was built with the full range of user scenarios in mind, ensuring the experience held up not just in ideal conditions, but in the edge cases that field environments inevitably surface.
Image upload was another area that benefited from iterative prototyping. Given that images serve as critical identifiers and step-by-step safety references, the upload experience needed to be intuitive and reliable — even for users in the field on mobile devices. I prototyped and refined the interaction in detail, ensuring the flow felt natural across both web and mobile contexts.
The final design specifications were built to the highest level of detail — documenting every screen, state, condition, and interaction. Errors, loading states, empty states, edge cases, and conditional logic were all accounted for and annotated, leaving no room for developers or QA to second-guess intent. The goal was a handoff package so thorough that the implementation could proceed with confidence and minimal back-and-forth.
handoff:
Every screen in the spec has the same level of detail as the Name input field below
Given more time, I would have pushed for direct observation sessions with field workers in active industrial environments earlier in the process. While EHS managers provided invaluable insight, there's a meaningful distinction between how safety procedures are managed versus how they're executed on the floor. Earlier exposure to that context would have further sharpened the iconography decisions and terminology choices from the outset.