Linguini

Head of Product & Design

Linguini

022021–2025

Brizo FoodMetrics’ core analytics platform for foodservice sales teams, redesigned end to end and shipped to production. Three-times faster task time after launch — a result of cutting the decision paths the old UI forced users to traverse before they could answer a single question. Sales teams had to chain three or four screens to do work the new design completes inline.

Brizo FoodMetrics is the foodservice intelligence platform now part of Datassential — the surface sales teams used to research restaurants, identify decision-makers, evaluate market opportunity, and build outreach lists. Linguini was the internal codename for rebuilding it end to end.

The product worked, but the workflow didn’t — and the deeper problem was performance. A meaningful result needed at least three criteria — say a location, a business type, and a dish — yet the old UI ran the search the instant you added the first. So you added one criterion and waited; added a second and waited again; added a third and waited again, each query slow against the full database. Every real question became a chain of slow searches before it returned anything useful. The latency was the design problem.

The redesign collapsed those chains. The new Linguini surface put search, filters, the result list, and relational data — parent group, recent menu changes, foot traffic, market segments — into one inline view. You built the whole query from criteria, ran it once, and read the answer in place; refining it from there updated the visible set live, without page reloads. A search could be saved and re-run.

The filter architecture was deep by design. Location drilled to metro area, state, county, city, and postal code. Menu filters reached ingredient-level with matching operators — any of / all of / none of — against a multi-level food taxonomy. Business type, chain size, market segment, operational status, and technology vendor all filtered in combination. The goal was to make complex segmentation feel like a single gesture.

Later in the engagement I co-designed Help Me Sell — an AI-powered feature that generated one-click personalized sales strategies for a restaurant’s ecosystem, contributing directly to retention and sales metrics.

Opening Soon turned operational status into a forward-looking sales signal — surfacing establishments confirmed to be opening, gated behind an in-app upsell. As an in-app advertising surface it reached a 90% feature-request rate from the users it was shown to, and lifted both sales and retention.

Three-times faster task time after launch. That number is the median across the representative analyst workflows we measured before and after.

When I joined Brizo there was no design function — I was the in-house designer, leading as product owner. The Linguini group grew to eleven: developers, engineers, and QA, with additional design support contracted from outside the company. I led the group — setting direction, running the cadence, maintaining the MUI-based design system, holding cross-functional alignment with engineering, product, and marketing, and owning the interaction design on the highest-complexity features myself.

I — The audit before the redesign

The hardest redesigns start with an audit, not a sketch. Before a single new screen, the legacy product was mapped end to end — every screen, every filter, the foodservice ecosystem the data serves, and the jobs each customer segment came to get done. Only then did the redesign earn the right to collapse it.

A large canvas inventorying every screen of the legacy Brizo FoodMetrics product.
fig. 1 — 2021, the legacy product, audited screen by screen — eighty-plus mockups and fifty-four filters mapped before a line was redrawn.
Stakeholder map of the foodservice industry — operators, distributors, suppliers, finance, real estate, and technology vendors.
fig. 2 — 2021, the foodservice ecosystem the data serves, mapped in synthesis.
A user success canvas for independent restaurant operators — a jobs-to-be-done empathy map.
fig. 3 — 2021, a user success canvas (Product-Led) — the jobs, struggles, and anxieties of the independent operator.
A value-proposition canvas for the franchisor and restaurant-chain segment.
fig. 4 — 2021, a value-proposition canvas (Strategyzer) — the chain segment’s jobs, pains, and gains profiled first, then the product value mapped to relieve them.
A hand-drawn flow of the list-upload feature — wireframe screens connected by annotated arrows.
fig. 5 — 2022, the imported-list upload flow, sketched end to end — screens, states, and mapping rules.
A wide systems flow showing a customer CSV uploaded, indexed to Brizo IDs, searched, exported, and downloaded as a new CSV.
fig. 6 — 2022, the same flow traced as a system — how a customer’s CSV is indexed to Brizo IDs, searched, and exported back as an enriched list.
The import wizard’s file-upload step over the imported-lists dashboard.
The import wizard’s field-mapping step, matching CSV columns to data fields.
fig. 7 — 2023, the sketch resolved — the import wizard’s upload and field-mapping steps.
A wireframe spec for the establishment-name filter — four interaction states with annotated rules.
fig. 8 — 2022, the establishment-name filter, specified state by state — with the scoping rules written in by hand.

II — The shipped surface

The shipped surface is where the audit pays off. Search, deep filters, and relational data resolve into one inline view — a question asked, answered, and followed by the next without ever leaving the screen.

A filter modal over the live results table — selecting dishes against a multi-level food taxonomy with matching operators.
fig. 9 — 2023, dish-level filtering with any-of / all-of / none-of operators against a multi-level food taxonomy — over the live result set.
The menu viewer over the live result set — a restaurant’s menu read inline.
A foot-traffic profile for a restaurant, charted over time.
fig. 10 — 2023, relational data inline — the menu viewer and foot-traffic profile, read without leaving the result.

One signal mattered before any other: was an establishment open? Operational status became a five-state vocabulary — open, opening soon, possibly closed, temporarily closed, permanently closed — colour-coded across the map and the result list. Opening Soon was the one sales teams paid for: a forward-looking lead on restaurants about to open, gated behind an in-app upsell.

The Operational Status filter dialog in the live app — five statuses to display (open, opening soon, possibly closed, temporarily closed, permanently closed), with Opening Soon shown locked behind a padlock, and a set-as-default option.
fig. 11 — 2024, the operational-status filter as shipped — five statuses, Open set as the default, and Opening Soon gated behind a padlock.
The live results view with the Opening Soon panel locked — a “5 Opening Soon Est.” card explaining access is locked, with Remind Me Later and Request Access buttons, beside a map of colour-coded status pins and clustered counts.
fig. 12 — 2024, Opening Soon in production — the forward-looking establishments surfaced on the map but gated, with Request Access and Remind Me Later in the result panel at the top left.
The Opening Soon upsell modal — headed “Stay ahead with early access to game-changing insights”, listing the feature’s benefits, with Dismiss and Request Access buttons.
fig. 13 — 2024, the gated upsell — Opening Soon as an in-app advertising surface, pitching early access to establishments preparing to open. A 90% feature-request rate from the users it was shown to.
The Help Me Sell entry point, idle, before a strategy is generated.
The Help Me Sell modal showing a generated, personalized sales strategy.
fig. 14 — 2024, Help Me Sell — a one-click, AI-generated sales strategy for a restaurant’s ecosystem.

III — Ask the whole question first

A single criterion is noise. One filter against the whole database returns tens of thousands of establishments — an answer to a question nobody asked. So the search does not fire each time a criterion is added. Instead the whole question is composed first — location, business type, a dish down to the ingredient, operational status, as many criteria as the question needs, each landing as a removable chip — and run once, deliberately. Fewer searches, and the very first result set is already meaningful. Inside the results, refinements stay live; it is the initial query that waits for the whole thought.

The dish-search filter modal over the live results — selected criteria (US, then Pepperoni Pizza) accumulating as removable chips along the bottom of the modal, above Cancel and Apply.
A four-criterion query — country, operational status, a dish, and a city staged as removable chips above the result list, returning 325 establishments on the map.
fig. 15 — Stage several criteria as removable chips that accumulate at the bottom of the search modal (left), then run once — country, operational status, a dish, and a city combine into a single query of 325 establishments on the map (right).

IV — The shape of an establishment

A restaurant is never just a restaurant. It sits inside a hierarchy — parent company, chain, franchisor, franchisee, the establishment itself, down to the individual chain unit or independent — and its contacts attach at different levels of that tree. The model below maps that affiliation: how a contact’s role resolves against the establishment hierarchy, and how one field update propagates across every profile it touches. In the product, that whole structure surfaces in the establishment profile — identity, performance, contacts, menus, web footprint, and technology vendors — read in a single side panel without leaving the result.

The contact ecosystem — a contact’s affiliation across the establishment hierarchy (parent, chain, franchisor, franchisee, establishment, chain unit, independent), with connectors tracing one field update across real establishment profiles.
fig. 16 — 2024, the abstract ecosystem made operational — how a contact’s affiliation maps onto the establishment hierarchy, and how one field update propagates across it.
The live results view with an establishment profile open as a side panel between the list and the map — the restaurant’s identity, contacts, menus, web footprint, and technology vendors in one place.
fig. 17 — The same structure in the product — an establishment’s profile opens as a side panel beside the result list and the map, every section of its record in place.

V — The bets we didn’t ship

Not every good idea ships, and showing only what shipped hides half the work. These were explored on the same Linguini system, each taken far enough to prove out — and then deprioritised when Datassential acquired Brizo and the roadmap shifted, not because the design didn’t hold. They’re here for what they show about range and product judgement: a kitchen-sourcing surface, and an AI-driven comparison engine that reads two markets side by side and generates the insight — a concept taken all the way to a working proof of concept.

Kitchen Finder concept — a ranked list of kitchens beside a live city map of matching establishments.
Kitchen Finder concept — the same view with the market-landscape heatmap layer turned on.
fig. 18 — UI concept; not shipped — Kitchen Finder, an interface concept for sourcing kitchens by dish and market, with a market-landscape heatmap (right).
Compare Charts concept — two saved searches (US vs Canada donut shops) compared as paired bar charts by business type.
Compare Map concept — customers vs prospects across a region with an AI-generated comparative-insights panel.
fig. 19 — Proof of concept validated; not shipped — an AI comparison engine: two markets as paired charts (left), and customers against prospects on the map with AI-generated comparative insights (right). The AI insight was proven out in a working proof of concept.