Why RJMetrics 'rewrote' its code - Technical.ly Philly


Oct. 17, 2014 10:12 am

Why RJMetrics ‘rewrote’ its code

A behind-the-scenes look into RJMetrics' most significant product update yet.

What RJMetrics looks like to a customer.

(Screenshot courtesy of RJMetrics)

This past summer, RJMetrics launched a new version of its business analytics product. A project one year in the making, it breathed new life into software that was originally coded in CEO Robert Moore’s attic.

“Some of the smartest engineers on the planet kicked my code from the attic to the curb and built a next-generation RJMetrics that will launch us, and our customers, into the future,” Moore wrote in a blog post announcing the launch.

Kicked it to the curb? Let’s get this straight — it wasn’t supposed to be a code rewrite, at least not from the outset, said VP of Engineering Chris Merrick and UX designer Matt Monihan.

The project started out as two separate initiatives to update different aspects of the RJMetrics product, which collects, consolidates and optimizes data from ecommerce and software-as-a-service companies so that those companies can churn their own data with charts and graphs.

For example, a customer can use the software to look at revenue over time, the number of leads coming from various channels and how much those leads are costing or the average time between customer orders.

While the data analysis aspect of RJMetrics is the most public-facing, that’s only a quarter of what developer work goes toward, said spokesman Tristan Handy. The rest of the work focuses on the “consolidating and optimizing” data piece, which involves cleaning the data up and getting it ready for analysis (that tool, the “Transformation Cluster,” is built on top of Amazon Elastic MapReduce) and storing it in the RJMetrics data warehouse (they use Amazon RedShift).

That’s one thing that sets the company apart from its competitors, like West Coast firms Looker and Tableau, who don’t store customer data in their own data warehouses, Handy said. Instead, those companies have customers with an in-house team to build custom solutions that will consolidate their data.


Echoing Moore, Merrick talked about the product updates as building a “stronger foundation for the future.” The changes were driven by what they’d heard from customers and their in-house analysts.

Here are the two projects the RJMetrics dev team embarked on that eventually became the code rewrite:

  • Improving the user interface of the report builder and offering more options on it for data analysis.
  • Rebuilding the Transformation Cluster so it could handle more data, which is important for both attracting bigger customers and for holding on to current customers who are growing. As Monihan put it, “A lot of customers grow with us. We don’t want them to ever grow out of us.”
rjmetrics report builder

The RJMetrics report builder. (Screenshot courtesy of RJMetrics)


Once the team had finished those two projects, they realized they’d rewritten about 80 percent of the code, Merrick said. (This is also where Merrick and Monihan point out that code rewrites are a touchy subject and that the RJMetrics product update was less an overall “rewrite” and more of the team “refactoring [the code] slowly” over a period of time.)

RJMetrics released the new version of the product to all its customers in July, but by then many had already been using some of the new features for months. RJMetrics uses “feature flags” to control which features a customer can see. That way, the company can roll out new features slowly and get feedback on them.

“We avoid a ‘flip the switch’ scenario because it’s risky,” Merrick said, talking about how the company releases new features.

Those feature flags also help developers know when the new features are ready for prime time, Monihan said. With the feature flag system, RJMetrics can see how often customers are using the new features and use that to determine when to release those features to everyone.

Below, find out more about how the RJMetrics dev team works.


Languages and frameworks: PHP, Javascript, Coffeescript, Clojure, Angular.js. While using PHP was a “legacy decision,” the team began using Clojure two years ago because they liked it and thought it was a better tool for what they were building, said Merrick. It was also good culturally, Merrick said, because the team got to “deepen” themselves by learning a new environment.

Developer tools: Git, Github, Vagrant, Amazon Web Services.

How much open source do they contribute? “We have some small open source libraries, but we’d like to do more,” Merrick said.

How they work: They start with a roadmap and break that into projects and teams that will work on those projects. Each team decides how to organize their workflow from there: it could be Github Issues, JIRA, Trello or even a bulletin board with index cards.

What they’re looking for in a developer: People who are smart and adaptable. They don’t screen for knowledge of a specific type of language or framework, Merrick said, because languages have converged so much that if you can write one, you can write or learn the other. Instead, RJMetrics asks developers to solve “abstract problems,” he said. (By the way, the company is hiring.)

You must appreciate accurate, relevant and productive community journalism.  Support this sort of work from professional reporters with seasoned editors.  Become a Technical.ly member for $12 per month -30-
Already a member? Sign in here
Connect with companies from the Technical.ly community
New call-to-action


Hero Digital is acquiring Austin-based marketing company Bulldog Solutions

Hopeworks by the numbers: More than 1,500 kids trained in the last three years

Turn5 opens new 15,000-square-feet customer service hub in MontCo



Why Linode sent this manager to Mumbai for 7 months

Chesterrbrook, PA


Software Quality Analyst

Apply Now
Philadelphia, Pa


Event Sales Ambassador

Apply Now

How a company with punk roots is competing with SaaS giants

Learn why ‘the channel’ is worth $1.5 trillion and growing: Oct. 9–12

RevZilla is gonna need customer service and personalization to beat the giants



This financial services firm offers global opportunity in the heart of Philly

Ambler, PA


Data Engineer

Apply Now
Center City


Member Experience Specialist

Apply Now
Philadelphia, PA


Frontend Engineer

Apply Now

Sign-up for daily news updates from Technical.ly Philadelphia

Do NOT follow this link or you will be banned from the site!