Event Metadata & Natural-Language Analytics Prototype

ezCater Senior Engineering Manager, Events + Messaging Platform August 2022–November 2025

Situation

Event tracking at ezCater had been built bespoke over years by different teams. There was no shared metadata layer, no centralized schema, no discoverability, and no way for anyone outside engineering to understand what events existed or what they meant. The legacy tracking infrastructure was fragile and siloed.

Breaks could go undiscovered for days or weeks. Senior leaders were regularly pulled into Slack threads to debug event data issues. Product managers had zero discoverability into what was being tracked. Marketing and analytics teams had no reliable way to understand event taxonomy. Meanwhile, the company’s dependence on third-party cookies for customer acquisition was becoming a liability.

I led a team of 7 including Staff Engineers and Engineering Managers on the Events and Messaging Platform team.

Decision

This required work at two levels: replacing the legacy infrastructure and building the metadata layer that would prevent the same problems from recurring.

Infrastructure: I led the migration from bespoke legacy event tracking to RudderStack — standing up the instance, managing the vendor relationship, and building out RudderStack-specific event-tracking clients. This included architecting the transition from third-party cookie-based acquisition to Conversion APIs, projected to save ~$3M in customer acquisition costs annually. The RudderStack platform became the foundation for connecting customer behavioral data with marketing automation platforms, enabling real-time personalization capabilities that hadn’t been possible before.

Metadata: We needed a testable metadata layer on top of this new infrastructure — something with out-of-the-box functionality that could spin up easily. I progressed the idea of using Infrastructure-as-Code patterns and collaborated with the staff engineer to develop plans and move in that direction. IaC made a lot of sense for what we needed — a structured metadata registry that could be programmatically validated, queried, and versioned. We greenlit it.

Vision: In March 2025, I created a React visualization prototype demonstrating natural-language interfaces for event data — built through conversations with Claude.ai. The prototype showed concrete use cases:

This was not a dashboard. It was a prototype for an agent that understands event taxonomy. It visualized the ambitious final form of our metadata efforts. This was created before Claude Code had reached anything close to mainstream — and Claude Code later demonstrated the vision was not far-fetched.

[See the Event Streaming Simulator exhibit for the React prototype.]

Risk

The RudderStack migration was a large-scale infrastructure bet — replacing a system that worked (poorly) with one that had to work (well) across the entire engineering organization. Vendor dependency was a real concern, and the migration touched every team’s event instrumentation.

The metadata layer added process to event creation in a team that had operated without constraints. There was real risk of adoption resistance. The natural-language prototype was speculative and could have been dismissed as a distraction from platform work.

I accepted all three risks because the status quo was unsustainable: unstructured event data was creating escalation load, third-party cookie deprecation was a business threat, PM dependency on engineering for basic analytics questions was wasteful, and silent breakage across the funnel was accumulating reliability debt.

Change

The RudderStack migration gave the company a modern event-streaming infrastructure and eliminated dependence on legacy tracking. The Conversion API work positioned ezCater ahead of third-party cookie deprecation.

The metadata layer gave the platform team a foundation for automated validation and schema enforcement. Event discoverability moved from “ask someone in Slack” to a structured registry.

The natural-language prototype shifted the conversation from “how do we build better dashboards” to “how do we make event data queryable by non-engineers.”

What This Demonstrates