Scaling the system that powers over $700M ARR invoices

8 min read Original article ↗

Chandni Jain

You have hit product-market fit! Congratulations! Your flagship product is now crushing it, bringing in $700M+ ARR. But let’s be real, that brilliant, bootstrapped Monetization system you lovingly duct-taped together with Stripe, Salesforce, Oracle, Avalara, and a handful of accounting apps a decade ago? It’s feeling the strain. The burning question on every leader’s mind: Do you roll up your sleeves for another in-house build, or is it time to bring in some serious vendor solutions? Grab a coffee, because we’re about to spill the beans on our own adventure!

The Origin Story: A Legacy System’s Tale

Cast your mind back to 2014: The gig economy was roaring to life, and Checkr came up with a brilliant idea of making background checks super easy and fast to run. Our requirements for billing were very unique, and at that time, there wasn’t any SaaS Billing tool that could handle our requirements. Perhaps because SaaS itself was in a nascent stage at that time. So, we did what any scrappy, innovative startup would do: we rolled up our sleeves and built our own monetization system.

Fast forward a decade — we added over 100,000 customers, our product/packaging complexity increased, we introduced self-serve to our SMB customers, and we partnered with leading Staffing, Applicant Tracking Systems, and HR Systems to bring background checks to their customers. Checkr achieved product-market fit across all customer segments, from SMBs to Mid-Market to Enterprise, and even some of the biggest customers on Earth. As Checkr evolved and our needs became more sophisticated, our in-house Monetization system continually grew and adapted, becoming deeply intertwined with our operations and powering our incredible growth.

Now, when we say “Monetization system,” we mean the whole machinery. It’s a constellation of over 50 interconnected services handling everything from product catalog management and pricing configuration to metering usage, rating events, aggregating data, applying discounts, and generating invoices. It’s the central nervous system of our revenue.

However, after a decade of scaling, it began to show its age. Adding new features felt like welding parts onto a vintage car — brittle and risky. We were running two disparate billing systems side-by-side. The entire platform was overfit to Salesforce; it lacked the audibility required for SOX compliance, and made it nearly impossible to deprecate old behavior. We were stuck in reactive mode.

The Million-Dollar Question: To Build or Not to Build?

Last year, to further accelerate our growth, we recognized the need to re-envision our Monetization system. The big question became: do we continue investing in our custom-built race car, or acquire a new, shiny model to free up our engineers to focus on our core superpower — background checks? Our ultimate goal was a long-term solution that would accelerate our pace, unleash exciting new features, and unify all Checkr products under a single Monetization system.

The Vendor Safari: A Journey with Twists and Turns

So, it was time to shop in the market! We embarked on a comprehensive quest, evaluating various industry vendors. It was like test-driving several different cars, each with its own pros and cons. We had some incredible aha moments throughout our journey:

  1. Integration Hurdles: The Puzzle Piece Problem: Integrating with a vendor wasn’t as simple as plugging in a new device. Our existing architecture was like a complex, custom-built puzzle. Dropping in a vendor solution meant significant re-engineering and building “adapters” to make everything talk to each other. When we visualized our new architecture, we realized we would end up owning and maintaining as many components and integrations as we did previously, plus a few more. Also, based on estimates, we would be in the integration phase for 12–18 months before we even start delivering value with the new system. That seemed like an incredibly long time just to integrate with a new system.

Press enter or click to view image in full size

2. Engineering Still Required: The “Free Up” Myth: Our initial hope was that a vendor solution would liberate our engineering team from the Monetization system, allowing them to work on our core competency. The reality, however, was that a dedicated team would remain essential for managing integrations, maintaining data integrity, and resolving any complications. The promised ‘free up’ was simply not achievable. Engineers are motivated by tackling difficult, stimulating problems. The prospect of long-term integration management, as opposed to developing innovative new features, was not the direction we intended.

3. Vendor Limitations: Our Unique Needs: Most of the vendors didn’t support some of our most critical features, which were fundamental and unique to Checkr’s specific business needs. For example, all the billing for us is in the context of a background check (we call it a report internally). Screenings under a report are only billed once that report is completed. This is a very unique requirement for us that no vendor would provide. To make it work with a vendor, we would need to keep the “Report State” information on our end and only send all the metering to the vendor once the report is completed. This meant more logic to be built on our end, and it felt like we were trying to squeeze a square peg into a round hole.

The Verdict:

Now, despite all these findings, and talking to industry experts and other similar companies, the echoing sentiment was — “Buy it. This is not your core competency.” Everyone in the company was already accepting the natural conclusion: we should buy it, not build it. My boss was telling me, “Buy it! Not a hill you want to die on!”

And so, after looking at all the data points, we made the obvious choice: We Built It :) The dissenting voice of our Monetization engineering team, who saw the long-term pitfalls of buying in our case, and the conversations with a few SaaS leaders who have been on a similar journey, helped us make this counter-intuitive yet obvious choice.

The following were the main reasons why we ultimately decided to build it:

  • Command and Control: The Master Builders: Building in-house gives us complete control over our system. We can deliver critical features precisely when needed and adapt to evolving business needs with lightning speed. This allowed us to develop a bold vision and a North Star architecture for our Monetization platform, directly driving Checkr’s future success.
  • Engineering Engagement: The Innovation Spark: Our engineers are brilliant problem-solvers. By continuing to build in-house, we keep them engaged, challenged, and focused on creating innovative solutions that directly fuel Checkr’s success. Building a Monetization system that caters to multiple product needs is a hard, challenging problem to solve, and our mighty engineering team has taken up this challenge by architecting the system for the long term.
  • Strategic Overhaul: Building for the Future: This exercise highlighted the opportunity to completely overhaul our system! We’re decoupling our Monetization core components to remove all the tight coupling and bring in standardization and flexibility to handle any kind of revenue model or pricing strategy we dream up — from tiered pricing to subscription boxes to pay-as-you-go.

Our Learnings: The Plot Twist!

As engineering leaders, ‘build vs. buy’ decisions offer great learning opportunities, often revealing counter-intuitive paths. Initially, we considered a vendor to ‘free up’ engineers, but a deep dive exposed complex integrations, ongoing overhead, and feature limitations — the ‘free up’ dream was a myth.

Consequently, we fully committed to our in-house system. Though a tough, against-the-grain choice, it provided total control, engaged engineers with challenging problems, and enabled a strategic overhaul for future growth. This proved that thorough evaluation and a long-term vision, even if unconventional, are key to avoiding costly missteps.

The Journey Continues: Leveling Up Our System

In just these last six months since making this critical decision, we’ve made incredible progress. We’ve meticulously planned our new architecture, focusing on creating a modular, flexible system. This approach has allowed us to deliver immediate business value-

  • We have drastically reduced Billing Errors for our customers from 60 per month to fewer than 5 per month. This was achieved by automating processes, minimizing human touchpoints, implementing guardrails and monitoring, and in-process anomaly detection.
  • We’ve already rolled out exciting, much-awaited features for our customers, including Discounting and Prepaid Checks.
  • We’re partnering with our marketing team on multiple experiments. By leveraging these new capabilities, we’re fine-tuning our go-to-market strategies — much like unlocking new power-ups in a video game.
  • Features like tiered or volume-based pricing, once challenging with our old architecture, are now easy to build on our new platform.

Join Our Adventure!

We invite you to follow our exciting journey as we continue to innovate and build a Monetization system that truly sets the standard for excellence in the industry. Stay tuned for more details on the architecture in the upcoming blogs.