Tell me about a time you launched a significant feature

Sunday, November 3rd 2024

I'd like to talk about my launch of a distributed rate limiting service, which was 0-1, at Cloudflare.

Situation

The overall problem we were addressing was customers. I had two primary sources of validation and input: I talked with the sales engineers who shared the scope of the problem and the amount of ACV that could be potentially unlocked by deal and by customer; the second source was conducting surveys and interviews with our SMB customers.

The problem was that customers were experiencing layer 7 DDOS attacks against their websites. This was costing them in terms of congestion on their server, raised security concerns since these looked like brute force or dictionary attacks, and in some cases, were bots gaming their system.

Task

Ship a product that appealed to developers, casual users, and the enterprise while introducing a new pricing and billing model based on usage, not on tiered subscriptions.

Actions

This is roughly the sequence of things; many of them were done in parallel, however. I worked multiple teams to ship this.

  1. Consolidate requirements into a clear set of features. Attributes included full request-based filters, such as Method and URI, various counting mechanism in terms of time and windows; response-based counting, such as error codes. This came from working with Sales Engineering for enterprise; marketing for conducting surveys
  2. Align with engineering to solve the problem of distributed rate limiting counting;
  3. Research the competition in terms of features, pricing, and UX -- I did this on my own;
  4. Work with engineering to confirm an API structure -- a separate team from the back-end team;
  5. Prepare the requirements for the data and logging team in terms of collecting analytics and displaying it for users; use cases and mockups were done by me early in the phase.
  6. Built the wireframes for the UI and pulled in the design team once I could communicate the business case and flow and asked them to work through these with edge cases and details on the user flow;
  7. I started to work on a model for usage based billing and teamed with the special projects team to help validate a pricing solution;
  8. I worked with the billing team and the new billing platform which I had delivered for billing and invoicing based on usage;
  9. I brought in Support, talked to them about what was coming, asked to team with an SME to address questions and prepare them to be able to answer questions and fill up the Knowledge Base;
  10. I brought in SE and designated an SME to work with me on full-scale enablement from a technical perspective.

Rough order of delivery

  1. The highest risk was being able to be a performant distributed rate limiter with the different types of filters; until we could get that, the due date was hard communicate;
  2. Ship the API -- no billing -- I shipped to those who signed up a set of Postman instructions and a request for feedback; feedback was very good;
  3. Conducted UI/UX interviews against the high-def mockups with design and PMM with two goals:
    1. Language on the pricing model to see the reaction;
    2. Lots of feedback regarding the concerns and friction;
  4. Once we got a UI/UX working in production, I worked with the SE to start to trial it out with the sales team; because they were billed on invoice, we can open up the pipeline and generate both customer validation and revenue while still working out the details.
  5. Then we started to get SMB users to use it and provide feedback, put in a credit card, and be billed based on the new pricing;
  6. Once this beta trial started to look right, then we shifted into a GTM motion.

GTM

Results

  1. We were generating new revenue, with combined attributed to enterprise as well as SMB, hitting $10M ACV in 12 months, and hitting $1M or more (can't remember) TTM;
  2. Exceeded the revenue for Load Balancer product launched shortly after this; even though Load Balancing is a much larger TAM;
  3. We enabled a new pricing motion based on usage being the first one, enabling future billing and invoicing;