Hamming 2.0 - Simplifying AI voice agent testing
Role: Product Manager and Designer
Timeline: April 2025, 3 weeks
Software: v0, Dovetail & Figma

Context & Stakes

Where we started

Slack message: a customer tells our CEO they're switching to a competitor because of too many UX issues, and the CEO asks Gaurav Shah to look into it.

I joined Hamming AI as the first product hire. The product had been built for a year without a designer, which left us with heavy UX debt: inconsistent UI, messy workflows, and no design system to hold it together. Customers were starting to churn. The breaking point came when one told our CEO they were leaving for a competitor because of "too many UX issues."

The market we were in

AI was moving fast. Competitors had already cloned our product and were racing to add features. In that environment, shipping new functionality was critical. Growth was the metric that mattered for raising the next round. But churn was just as dangerous. In early-stage startups, your best sales channel is word of mouth. If existing customers left unhappy, we weren't just losing revenue, we were losing our loudest advocates.

A fork in the road: one path leads to shipping features for growth, the other to fixing UX for retention.

The stakes with enterprise

At the same time, we were negotiating with Cisco. Enterprise buyers don't sign deals because of great UX. But they can walk away if the product feels confusing or unpolished. Testing AI voice agents is already complex. If we made it harder than it needed to be, we risked being dismissed. With competitors priced similarly, usability could tip the scales. Churn threatened our base. Usability threatened our biggest deal.

The paradox

This put us in a bind. To land Cisco, the product had to become more powerful. To keep current users, it had to feel simpler. More capability usually means more complexity. Our challenge was to deliver both at once, without breaking the product or the team.

A loop diagram: adding features to land enterprise customers makes the product feel too complex, so features get removed to simplify it, which then makes it less powerful for enterprise customers, and the cycle repeats.

Constraints on execution

The design team was two people, including me. Engineering was stretched thin across backend work, bug fixes, and a new marketing site. There was no official deadline, but everyone felt the clock ticking. Founder-led sales meant product tradeoffs had direct revenue impact. Nobody debated whether UX debt existed. The question was how much to fix now versus how much to ship. My role was to make the tradeoffs clear and set a path forward that didn't sacrifice growth or retention.

Why this mattered now

Doing nothing wasn't an option. Ignore UX and we lose trust, slow deals, and fuel churn. Ignore velocity and we fall behind competitors shipping faster. The stakes were high on both sides. The only path forward was a strategy that balanced speed with simplification.

Framing the Challenge

Different lenses, different truths

Designers saw inconsistent UI. Engineers pointed to tech debt and slow load times. Leadership worried about churn and growth. Every perspective was valid, but nobody had a full 360° view of the product. Even as someone inside the company, I found myself struggling to connect features into a coherent mental model. If I felt lost after months of immersion, what chance did a new customer have?

Shifting priorities

Before this churn moment, our energy was focused on building new features. The churn message forced us to stop and ask: are we building on a shaky foundation? It wasn't clear what "fixing UX" even meant, but it was clear we needed data before making tradeoffs. Churn became the top priority, and feature velocity slipped into a close second.

The call for research

That ambiguity was the challenge. We could guess at problems forever, but without clarity we risked fixing the wrong things. What does "UX issues" actually mean to customers? Where in the workflows do they get stuck? What feels unnecessarily complex? We decided the only way forward was to talk to users directly. This wasn't just about identifying issues. It was also a way to show customers that we cared, and to keep them engaged while we improved.

How We Approached It

My co-designer and I built a lightweight research protocol. We chose an unstructured format because we wanted to hear people's biggest problems in their own words, not funnel them into ours. Everyone we spoke to worked in tech and had strong opinions, so we knew they would fill the space. But we still carried a guide to fall back on if a conversation needed direction. Our method was simple: a screenshare, show-and-tell walkthrough of their workflow, starting from before they even opened our platform.

We began each session by making participants feel comfortable. We told them we were here to listen, not to judge, and that we would handle the prioritization on our end. Then we asked them to walk us through their process: what are their goals, their context, and their motivations? Who else in their org uses the tool, and how? Where do they get stuck? At the end, we'd share early patterns from other interviews and invite them to react or add new context.

The product flow in theory

How our product is supposed to work (simplified): Scenario Collections, Custom Metrics, and Phone Numbers all feed into an AI Voice Agent Test.

To understand why users struggled, it helps to explain the basics of how Hamming worked at the time. Testing an AI voice agent required three separate pieces:

In theory, once you combined the three, you could run a test. In practice, these inputs lived on different tabs. Running a test happened through a button on the Scenarios tab. The setup was scattered and the logic was opaque.

What we observed in practice

Users regularly got lost connecting the dots. They struggled to understand how Scenario Collections, Custom Metrics, and Phone Numbers fit together. Incompatible metrics were hidden in the UI, leaving users confused about why they couldn't find what they needed. They often didn't know what to change to make a test run.

Quotes from user interviews, including: There is no clear connection between the different concepts you use. To test one agent, I need to go to so many different tabs. It takes too long to run a test.

Interviews revealed something deeper: this wasn't just about clunky navigation. It was a mismatch in mental models. Users didn't think in terms of scenarios, metrics, and phone numbers as independent objects. They thought in terms of voice agents. For them, a voice agent was the central thread, and everything else belonged to it. That framing was missing entirely from the product.

The consequences

The result was unnecessary training, patchwork workarounds, and a steep learning curve for every new team member. Customers hacked together their own methods to extract value from what was, on paper, a technically powerful tool. Our core value prop, AI agent testing, was strong. But if customers couldn't unlock that value without friction, the business was at risk. The research validated what we had suspected: the product wasn't just messy. It was actively pushing people away.

Statement card: Technically powerful ≠ Usable.

Workshops: Making the Product Understandable

The complexity problem

A theme that came up again and again in interviews was that everything felt too complicated. Something as simple as running a test often took ten steps spread across three different pages. Step 1–3 lived on page one, 4–6 on page six, and 7–10 on page four. Users didn't just find the process long; they found it disorienting.

To fix this, we needed more than just design tweaks. We needed engineering and product context. What did it actually take to run a test? How did these objects connect to each other? Which attributes were essential, and which were noise? That understanding was the foundation for eliminating clutter and building a mental model that matched how our users thought.

Object mapping workshop

We gathered the team for a workshop to map out the product's core objects. The goal was to get everyone (design and engineering) on the same page about what exists in the system and how it should behave.

We worked through a series of questions together:

One example: Product Managers cared about tracking quality over time, monitoring KPIs, and quickly spotting when something broke. Their needs were very different from developers, who cared about debugging specific test cases. Mapping these differences gave us clarity about what objects needed to exist and what each user expected from them.

Object-oriented UX in action: each block maps a single object, its attributes, and its actions, connecting objects like Scenario Collections and Scenarios.

Each block here is a single object with its attributes and actions. The team mapped over 20 of these to align design and engineering on a shared model.

Understanding our users deeply

Something that was absolutely critical for us was understanding our users deeply. With an enterprise product, there's so much more nuance that needs to be understood. Who is the buyer? Who is the user? How can the user successfully advocate for your product at their company? Here is an example of the depth to which we understood one of our user groups.

For product managers, the platform needed to answer one core question: is something broken, and what's the business impact?

PMs live and die by KPIs like success rates, latency, and overall response quality. Their performance is often tied directly to these metrics, promotions, credibility, and even job security can hinge on them. They don't want raw data; they want clear, visual insights they can act on quickly.

When something goes wrong, they need to know why. Which flow failed? Where did users drop off? How is quality trending over time? These insights allow them to prioritize the roadmap, justify tradeoffs, and show impact across the company.

Sharing context is also critical. PMs are the connective tissue between leadership and engineers, so they need lightweight ways to package insights into screenshots, reports, or links. They're comfortable in tools like Figma, Linear, and Notion, and expect the same ease of collaboration here.

In short: PMs work in impact mode. They need to see when things break, understand the root cause, and translate those insights into business outcomes and roadmap decisions.

Key takeaways from object mapping

This led us to a clearer organizational model:

This layering aligned with how customers actually thought, matched industry shifts toward conversational pathways, and set us up to scale in the future.

Customer journey workshop

Of course, reorganizing information wasn't enough. We also needed to simplify the process. So we ran a second workshop to map the current and future workflows.

We broke it down step by step:

From this, we prioritized three focus areas. The biggest insight was that we could (and should) do far more to hand-hold users through pre-deployment testing. The workshops also helped us turn customer insights into actionable items instead of just a laundry list of complaints.

Customer journey mapping workshop board, organized by jobs-to-be-done, user actions, goals and experiences, feelings and thoughts, pain points, and opportunities.

Shared vision

With this foundation, we drafted mocks that showed how the product might look if split across multiple "zoom levels." This gave the team a concrete vision of the future product. For the first time, we weren't just fixing surface-level problems, we were aligning on how the system should work at its core.

Strategic Trade-offs & Design Strategy

A moment for big change

The scope of what we were tackling felt like a Hamming 2.0. We weren't just reorganizing flows. We were rethinking the product's foundation and how it presented itself. The redesign gave us an opening to update our design language and system. This mattered not only for usability, but for how we looked to customers like Cisco. A more polished, cohesive product would help us land enterprise trust.

Why a design system mattered now

We had been pushing for a design system for months. With only two designers, consistency was a constant challenge. Standardizing our work would make us faster and reduce errors. On the surface, the new system didn't radically change how the product looked. Typography and colors were the most visible shifts. But the underlying consistency meant we could design, test, and ship at a higher quality bar. Eventually, we hoped to evolve it into Storybook components so the frontend could fully reflect the new language.

This was the right moment to roll it out because:

Our new and updated Hamming 2.0 design system: buttons, sidebar navigation, upload inputs, and modals built on top of Flowbite.

Building on top of Flowbite

We built the system on top of Flowbite, which was already part of our codebase. That gave us two advantages:

  1. It was fast. Flowbite components were familiar to engineering and easy to extend.
  2. It was practical. We were already mixing Flowbite with Shadcn and custom components, so it fit naturally.

From there, we created what the product actually needed. Tables were core to our workflows, so we built robust table and cell components. We refined dropdowns, notifications, and charts to match real-world usage. Smaller pieces (atoms) combined into larger, reusable molecules. The system gave us speed, consistency, and a shared foundation.

Quality over novelty

This wasn't about inventing new features. It was about polishing the bets we had already made. We knew customers were using these capabilities. The problem was how they were organized, presented, and connected. A design system gave us the leverage to deliver quality faster and the credibility we needed with both current customers and future ones.

Execution Highlights

Mini Case Study: NavBar Redesign

Our redesign began with something small: the navigation bar. Even this simple change carried very specific UX and business goals.

The old navigation took up too much space without giving much back. It had a separate top bar just to hold account details. As the product grew, new tabs piled on until users with smaller screens actually had to scroll just to see all their options. That kind of friction wasn't sustainable, especially as we kept adding features.

Annotated screenshot of the previous navigation menu, flagging awkward alignment, a too-subtle active state with no hover state, missing breadcrumbs, and unused space at the top of the page.

The new design addressed these issues directly:

  1. Condensed layout: created room to add new features without clutter.
  2. Smarter active states: used color strategically instead of heavy drop shadows, making it easier to scan with less visual noise.
  3. Integrated account settings: placed at the bottom of the nav, eliminating the top bar entirely and freeing up space for core actions.
  4. Repurposed top bar: now used for page titles, breadcrumbs, and page-specific actions, helping users stay oriented while working across multiple tables and data views.
Simplified mockup of the redesigned Hamming AI sidebar navigation, condensed and organized by Scenarios, Monitoring, Custom Metrics, Prompts, and Chat Agents. Marketing card announcing the navigation update to users: 'Our sidebar has a new look,' with a refreshed, cleaner, more polished sidebar for smoother navigation. Marketing card announcing the navigation update to users: 'All your preferences, now in one place,' letting users update theme, workspace, and credits from their profile.

For our users, who spent most of their time cross-referencing tables and analyzing data, the cleaner layout made a real difference. It kept their workspace focused, reduced distractions, and made new features easier to discover.

The impact wasn't just external. This navbar redesign was the first thing we shared with the engineering team. It created energy and buy-in for the broader UI 2.0 effort. Sometimes, a small, tangible win is the best way to get momentum for a big change.

💡

While I can't share much of the solution due to my NDA, we worked hard on a lot of big changes to how we structure and organize concepts on our platform. The navbar was just the beginning, and as time moved on, it was clear that our work brought the platform closer to what users expected and needed from us.

Impact & Outcomes

Reflection & Learnings

What I'd do differently

  1. Empathize more with the business. Once you get deep into a redesign, it's easy to stay at the low zoom level. Colors, type, components, screens. What I've learned since is to keep business goals front and center. Design isn't just about what feels best to me as a designer, it's about aligning with where the company needs to go.
  2. Align earlier on strategy. The paradox kept coming up: to land Cisco, the product needed to become more powerful; to keep current customers, it needed to feel simpler. More power usually means more complexity. I wish I had documented these debates and maintained a decision log early on. It would have helped the team align faster and reduced the feeling that we were constantly picking the wrong battle.
  3. Use data better. I became confident in running interviews and gathering rich qualitative insights, but I didn't have strong quantitative data to balance against. If I could redo it, I'd push harder on usage data so we had a more holistic view of what mattered most.

What I'm proud of

Personal Growth

Working at Hamming blurred the line between design and product management. I came in as a designer, but I left with a stronger sense of experimentation, momentum, and ownership. I learned how to balance "bets" versus "features," how to advocate for engineering time, and how to make decisions with business outcomes in mind, not just design craft.

The team itself was highly experimental. We loved trying new tools and new ways of working, and I had the unique experience of being on the buyer side for many of them. Sitting in on sales calls and deciding whether to purchase tools like Dovetail or BuildBetter gave me an unexpected crash course in B2B sales. It was eye-opening to see how sales teams frame value, and it sparked a personal interest in working more closely with sales and customer support as a future "voice of the customer."

This experience showed me how much I value ownership and impact. If your team sounds like it could value that, I'm open to roles starting January 2026.