context
stakeholders
these are clients i reported to
team
this is the team i was part of
tools
these are the tools i used
timeline
this is timeline
my role
this is my role
background
A static paper menu from long ago
The existing menu system had a 5 to 8 week lead time for any update, meaning Culver's couldn't respond to pricing changes, run a last-minute promo, or make small fixes without waiting almost two months for it to show up on a board. The menus themselves hadn't been updated since 2017: no visual hierarchy, everything the same size and visual weight, with no clear place for your eye to land.
The whole team was brought in to build the dynamic menu system. My job was to design the system that guests would actually see.


approach
Treating layout as a behavior design problem, not just an aesthetic one
I owned all visual and UX design decisions on the project, working alongside a strategy director who led the research and business framing. The team conducted site visits and interviewed 28 guests across high-volume locations to understand real ordering behavior, then designed and tested two competing layout directions, presenting both to stakeholders with tradeoffs clearly laid out.
The bigger body of work was the design system: a type hierarchy built for 10 to 14 foot viewing distances, a component library with three tiers of item treatment, and a modular architecture that lets Culver's update content across 1,000+ locations without touching the layout. I also rebuilt all final boards in Figma to 100% component consistency before handoff, and contributed to the analytics instrumentation strategy to support future A/B testing and personalization.
impact
Pilots are live, with nationwide rollout by 2029
First pilot locations went live in October 2025. Updates that used to take 5 to 8 weeks now happen overnight, which means Culver's can respond to pricing changes, promos, and seasonal items instantly for the first time. The modular system laid the foundation for a cloud-native, data-driven platform built to scale, test, and iterate across every location in the chain.






