HikeOn is building a multi-module ERP for a US-based foodservice and sustainable-packaging eCommerce brand — catalog, inventory across multiple warehouses, B2B and retail orders, a custom-printed-product workflow, fulfilment, returns, supplier and purchase orders, finance, and reporting on one system. I lead product design end-to-end: UX strategy, the 250+ component design system, engineering partnership on the design-to-code pipeline, and the 8+ AI use cases now live across the product.
The business sells across seven distinct product categories — disposables, smallwares, food & beverage, tabletop, equipment, storage & transport, janitorial, industrial — plus a customizable-products line where customers order custom-printed cups, bags, boxes, and labels with their own artwork. Each category has different attributes, different supplier networks, different fulfilment paths, and different margins.
When I joined, the back-office was a stack: a separate PIM for catalog, spreadsheets for forecasting, a custom queue for the custom-print orders, a different tool for B2B quotes and catering bulk orders, another for the rewards programme, and email threads for supplier POs. The business was scaling. The tooling wasn't.
"The catalog grew faster than the team could keep up with. We had product managers chasing sustainability claims across three systems and warehouse leads guessing at restock priorities. The ERP exists to fix that." — Founder brief, first week on the job
Three specific problems to solve:
I resisted the pull to start redesigning screens. For the first three weeks I did an audit of every component, pattern, and AI touchpoint across the eight modules — shipped screens, Figma files, supplier-portal flows, and conversations with the 12 engineers actively building. The audit produced 240 distinct UI "things" that needed to become ~60 canonical components.
Then I sequenced the work in three parallel tracks that kept engineering unblocked while the system got built:
The system is built on three layers of tokens — primitive (raw hex, raw px), semantic (brand.primary, surface.raised, text.subtle), and component (button.primary.bg, table.row.hover). Engineering consumes the semantic layer. Design never references the primitive layer in a component. Theming, density, and a planned customer-facing portal all become config, not rework.
Component architecture is Figma Auto Layout with semantic variables and booleans — every component is one master with variants for size, intent, state, density, and theme. Replaced 240+ one-off "things" with 64 canonical components covering 100% of the product.
A 16,000-SKU catalog with seasonal demand, multi-warehouse stock, and a custom-print operation generates more decisions than any operator can keep in their head. The AI work isn't decoration — it's how the team makes those decisions on time.
Rather than design eight bespoke AI experiences, I defined a shared "AI cell" pattern with four consistent parts: the suggestion, confidence, "why this?" explainer, and accept / edit / dismiss actions. Every AI surface in the product is a composition of those parts — so users learn the interaction once and trust it everywhere.
7-day, SKU-level demand with confidence scoring. Operators can override and the model learns from the override.
Flags SKUs about to run out across warehouses, suggests quantity and supplier, drafts a PO for one-click approval.
"Show me catering orders over $5k from last week that haven't shipped" → structured query and filtered view.
Morning surface: "Top 3 movers, 2 at-risk SKUs, 1 margin anomaly" — each with a direct CTA.
On a new custom-print order, checks artwork against print specs, flags resolution or bleed risks, and routes to the right press operator.
Buyer vs. fulfilment lead vs. accountant — different surfaces promoted based on task history and role.
Flags SKUs whose realised margin diverges from expected by more than 1.5σ — usually a freight or supplier-cost change the catalog hasn't caught up to.
Internal tool: cluster customer interview transcripts into themes. Used by PM + design weekly.
"The AI shouldn't feel like a feature. It should feel like the product thinking with you. That means the same shape, the same voice, the same 'why this?' link — everywhere." — Design principle in the AI pattern guide
The custom-printed-products line is the highest-margin category and the most operationally complex. A single order can involve: customer artwork upload, MOQ and material checks, an automated proof, a customer revision cycle, supplier handoff, a press scheduling slot, sample approval, and bulk run scheduling — across multiple suppliers depending on the substrate.
I designed it as a single timeline view per order rather than the modal-stack the original product was heading toward. Every state is visible. Every blocker is attributed to a person or system. The customer-facing proof emails are generated from the same data — so what the operator sees and what the customer receives are the same record.
Key decisions:
Audit before redesigning. Three weeks of mapping felt slow at the time; it saved three months of rework. Every future DS project starts with an audit.
Ship tokens before components. Engineers were adopting the semantic palette by sprint 2 — no wait for components. It set the tone that design unblocks engineering, not the other way round.
One canonical AI pattern. Operators trusted the AI faster because every surface behaved the same way. "Why this?" became a product-wide affordance, not a feature.
Treat the highest-margin workflow as a design problem, not a backlog. The custom-product timeline was three sprints I had to argue for. It's now the most-cited screen in operator interviews.
Hired a second designer earlier. I was the bottleneck from sprint 10 onwards. Should have made the case to the founder by sprint 5.
Built the design-to-code sync script in-house from day one. A manual process for the first 3 months; automating the token export would have shaved hours per sprint.
AI confidence scores are table stakes; override memory is what builds trust. The first version shipped without it and accept-rates plateaued at 40%. After adding it, they climbed to 64%.