Starter Stories

Bob and I are featured on the Philly Startup Leaders series Starter Stories. You can watch interviews with other entrepreneurs on the Starter Stories site.  Thanks again to Cliff Stevens for making this happen.

Is America Rooting for a Twitter Downfall? Some Evidence.

<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>

Share

[RJMetrics makes hosted business intelligence software for online businesses.  Follow us @RJMetrics]

Let’s face it: the “Twitter is Awesome” storyline is so 2009.  The rise of the micro-blogging service is old news, and it’s clear that reporting on Twitter’s success is not driving pageviews like it used to.

As a result, reporters are treating Twitter like any other celebrity: when the good news stops selling, pray for a downfall.  If Britney Spears has taught us anything, it’s that celebrity downfalls are a media goldmine.  When you consider Twitter’s meteoric rise as one of the biggest stories of 2009, it’s no surprise that reporters would salivate over any contradictory news about the company in 2010.

How did I reach these cynical conclusions?  Well, last month I posted an updated set of Twitter data based on information from the company’s API.  This was in conjunction with a story over at MIT Technology Review.

MIT Technology Review Piece

The findings were extremely consistent with ones I published in TechCrunch last year (which came out while Twitter’s buzz was still peaking).  What was different this time was the number of news outlets who covered the report: around 200 globally by my count.  Thats about 10x more than last year’s nearly identical piece attracted.

While I considered my findings to be generally positive, what I found remarkable was how many blogs and media outlets chose to selectively reprint these findings, spin them negatively, and (in a few cases) present the data incorrectly or irresponsibly.  Almost every writer put the negative elements of the report front-and-center, making it clear to me that many media outlets are pushing a new storyline:  “Twitter isn’t so Awesome After All.”

Below are a few examples that really stood out.

Read More »

Simple deploy script for PHP Applications

Here at RJMetrics, we roll out features and fixes to our code multiple times per day. As our organization has grown the complexity of coordinating and executing these releases has increased exponentially, and we have been spending a lot of time lately solidifying and standardizing our deployment process.

Coming off developing some personal projects in Ruby on Rails, the Capistrano deployment system was fresh in my mind, and had left a favorable impression on me for its versatility, ease of use, and lack of verbose XML configuration files. Although it’s written in Ruby, Capistrano is general enough to deploy just about anything – and in fact there are several guides that detail how to use it with PHP. So, I plodded ahead with it – and spent a few hours installing the Capistrano Multistage extension (to support both testing and production environments) and writing my own recipes for several of our PHP projects.

And, for all of my hard work, I continually ran into small gotchas and errors that would crop up when I switched between my OS X and Ubuntu development environments. After a day of tweaking, I couldn’t get Capistrano to act consistently, and, the more I stared at my recipes, the more I realized that I wasn’t really leveraging any of Capistrano’s power, but rather going out of my way to disable its most useful Rails-specific features. At the end of the day I was just using Capistrano and the Net::SSH Ruby library as a conduit for sending commands to remote machines – something that can be more easily accomplished via ssh.

The next morning I sat down and wrote the following bash scripts to replicate the Capistrano features that we need to deploy PHP projects from our git repositories here at RJMetrics, all in about 50 lines of code.

[deploy.sh]
#!/bin/bash ################################################# # General deploy script. Depends on # environment-specific script in deploy/ dir ################################################# set -e APP_NAME=RJM_Web GIT_ROOT=localhost:/repo GIT_USER=chris APP_REPO=$GIT_ROOT/$APP_NAME.git # Detect exactly 1 argument if (($# == 1)); then # Include .sh from the deploy folder DEPLOY_ENV=$1 DEPLOY_FILE=deploy/$DEPLOY_ENV.sh if [ -f $DEPLOY_FILE ]; then source $DEPLOY_FILE else echo "Could not find deploy file for $DEPLOY_ENV environment, it should be located in $DEPLOY_FILE" exit 1 fi echo "Deploying $APP_NAME to $DEPLOY_ENV environment." else echo "Usage: deploy.sh <environment-name>" exit 1 fi CURRENT_DIR=$DEPLOY_PATH/$APP_NAME/current RELEASE_NAME=`date +"%Y-%m-%d-%H%M%S"` CURRENT_RELEASE=$DEPLOY_PATH/$APP_NAME/releases/$RELEASE_NAME # From local machine, get hash of the head of the desired branch # Required to checkout the branch - is there a better way to do this? APP_HASH=`git ls-remote $APP_REPO $BRANCH | awk -F "\t" '{print $1}'` for SERVER in ${DEPLOY_SERVER[@]} do echo "Deploying on $SERVER" ssh -t $DEPLOY_USER@$SERVER "cd $DEPLOY_PATH/$APP_NAME/releases && git clone -q $GIT_USER@$APP_REPO $RELEASE_NAME && cd $RELEASE_NAME && git checkout -q -b deploy $APP_HASH && ln -nfs $CURRENT_RELEASE $CURRENT_DIR" done echo "Finished successfully"
[deploy/dev.sh]
################################################# # Environment-specific script # sourced by deploy.sh ################################################# BRANCH=develop DEPLOY_SERVER=(192.168.20.100 192.168.20.101 192.168.20.102) DEPLOY_PATH=/home/deploy DEPLOY_USER=deploy

The first snippet is the main deploy.sh script, which by default reads in a second, environment-specific script, like the one seen in the second snippet, from the deploy directory. So, for example, if you call

> ./deploy.sh dev

then the script will look for a second file named dev.sh in the deploy directory – analogous to the way the Capistrano Multistage extension works. Some of the conventions we use internally here at RJMetrics are implied in these scripts – e.g. we always name our git repository $APP_NAME.git, and we always deploy to a folder named $APP_NAME – these are, of course, customizable.

So there you have it – a simple, effective way to deploy PHP projects, without all of the overhead and Rails-specific functionality of Capistrano. Some features that I plan to add are roll-back functionality, and the ability to define a remote cache for each deployment server to speed up the git clone. Stay tuned.

New Data on Twitter’s Users and Engagement

[To keep up with our latest research and updates, follow us on Twitter @RJMetrics]

Since my guest post on TechCrunch last fall, I’ve received frequent requests to update and expand upon my Twitter data analysis. As the Twitter API continues to improve, our ability to profile the company from the outside-looking-in becomes even stronger. I recently conducted an updated round of analysis and will be posting my findings in a series of posts here at The Metric System in the coming weeks.

Updating this analysis in RJMetrics was just a matter of a few clicks, and we could easily highlight the most interesting tidbits of new information. If you’d like that level of control of your own business’s data, you should try out our demo to learn more.

Today, I’m starting with an update of the basics: users and engagement.

Read More »

190% Improvement In Landing Page Conversions By Removing Content

In an effort to improve the effectiveness of our website, we recently conducted our first A/B test.  This test allowed us to compare two options for the content that users see after clicking the big orange button on our homepage.  Thanks to these tests, our visitor-to-lead conversion rate has almost tripled.

Choosing a Goal

We used Google Website Optimizer (GWO) to run the tests, and our first step was deciding on a goal.  We decided that a good goal needs to be achievable, measurable, and a meaningful step of the funnel that ends in RJMetrics making money.  We also wanted the goal to be as close to the end of the funnel where we make money as possible.

For most businesses, a sale or other revenue-generating event is an obvious goal to use.  In our case, however, prospective customers need to talk to a member of our team before making a purchase.  This means our website doesn’t generate revenue directly, leaving us no revenue-based actions to use as goal completions.  There are several reasons for this set-up, but the important thing is that it is not going to change for this A/B test.

Another goal we considered was the successful education of our visitors about our product.  Educating potential customers about RJMetrics and the problems we solve is certainly an achievable goal that drives new customer acquisition.   However, it is difficult to reliably measure. We could track how many people watch our promotional video to completion or how many pages they visit.  But these specific events are not always meaningful, and frankly I don’t really care about them.  Additionally, they are way over on the wrong side of the funnel.

A third option for our goal was the completion of our “get a free demo” form.  It’s trivially easy to measure and provides prospects with a feel for what our software can do (by analyzing Vandelay Industries’ data).  It also provides us with contact information for these now somewhat-qualified sales leads.  This places it relatively far down the funnel.  While it would be nicer to further qualify the leads before considering one a “goal completion,” that would be much more difficult to reliably monitor and would reduce our already-small sample size.

We decided that the demo form completion was the right goal for us to be optimizing for right now.

Conducting the Test

The old version of our landing page is still available at our How It Works page.   It looks like this:
The page has a Flash movie that gives an overview of our target customers, the problems they face, and how RJMetrics can help.  Below the flash movie, we have some marketing copy that gives additional color for people who would rather read than watch. We did not explicitly talk about a goal when creating the page, but if I had to describe what it does, I would say that this page gives information on RJMetrics and gives prospects a way to try out our free demo.

The winning version of the page is our new landing page.  It looks like this:

We removed the movie and marketing copy and increased the size of the form fields. We also added a description of what will happen after filling out form. The goal was to minimize the commitment required and make the reciprocity explicit. This page is unambiguous about its goal: driving demo form completion.

The Results

We did a total of 3,519 trials.  The original version yielded a conversion rate of 2.1%, and the winning yielded a conversion rate of 6.1%, providing an improvement of over 190%.

We learned a few valuable lessons from this experiment:
1) We need to set an explicit goal for our website, or at the very least for individual pages.
2) Remove anything that does not explicitly drive our goal forward. In this case, more content meant fewer conversions.
3) We need to be testing a lot more.

2009 RJMetrics Year In Review

I decided to start off the new year by sharing some of the highlights of 2009 and my goals for 2010.

2009 Highlights

2009 was about building a fantastic product that could provide our customers with actionable insights and real value.  We accomplished this with new customer implementations, data collection, and user-driven product enhancements.

In Janurary, we integrated the first outside testers of our hosted business intelligence software. This was also the first month we generated revenue.

In March, we announced compatibility with Postgres and Microsoft SQL database platforms (and integrated our first clients on those platforms).  Combined with our MySQL compatibility, this made RJMetrics accessible to the vast majority of database-driven websites.

By May, we had brought on over a half-dozen enterprise clients and moved out of Bob’s attic into the Waterfront Technology Center in Camden, NJ.  (In line with the move to Camden, we also dropped our first rap video, Business Intelligence.)

In July, we announced significant feature enhancements that have since become staples of the RJMetrics experience.  These included composite charts, growth perspectives, and ranking.  Automated cohort analysis would follow in September.  For each of these major milestones, there were hundreds of small improvements and efficiencies that improved the user experience and overall value of our product.

In November, we were delighted to hire Jeff Shumer, Account Executive Chef extraordinaire.  We will also announce a new engineer joining our team soon.  Both employees were hired using existing cash flow, and we are proud to have reached the hiring stage without raising any outside capital.

Overall, in 2009, we have grown our customer base and revenue substantially. In fact, not only is our company growing, but the second derivative of our revenue is positive, too.  After generating our first sales in Q1, sales grew 107%, 108%, and 109% in Q2-Q4, respectively. The chart below should help put this in perspective.

Goals for 2010

Simplify, streamline, and automate the  client onboarding process

We work very hard to make implementation effortless for our clients, but it’s still a lot of work for us.  In 2010, we aim to cut the man-hours required to implement a new client by half while improving the consistency of the results we deliver.

Empower our users to be more autonomous

We focus on delivering prompt and helpful support, and our customers make it clear that it’s appreciated.  However, some of our power users know exactly what they want, and they could probably get it faster if we took human interaction out of the equation.  This jibes with my lifelong goal of replacing myself with a computer. So, we are going to expose more administrative functionality to our clients.

Add data sources

We currently use data from our clients’ backend databases, Google Analytics, and Twitter.  We’re going to add to this list based on where our customers will be able to realize the most benefits.

Optimize the way our users get information that makes them money and saves them time

I’m very purposefully not saying that I want to add features.  There will be features added, but there will also be features removed.  I don’t care which there are more of.  What I do care is that each incremental change makes our software more awesome.  If that criterion is met, feature counts don’t matter.  If that criterion is not met, feature counts still don’t matter.

Write more

I want to be a better writer, and posting to our blog has unquestionably been the highest ROI marketing that we have done. Furthmore, stating goals publicly makes us more likely to achieve them (hence, the second half of this post).  I am going to post once per week.

Systematize our sales and marketing activities

We’re doing several experiments to determine our cost of lead generation and customer acquisition through different channels. We are going to create a process where our investments in new customer acquisition can scale in a capital efficient way.

Continue Revenue and Customer Growth

There will (hopefully) come a time when our size becomes an anchor that slows our growth rate.  I don’t feel like we are there yet.  If we succeed in most or all of the things I mentioned above, the financial metrics will follow.

Top 5 Startup Tips from Jay-Z

Here at RJMetrics, we try to learn everything we can from the works of accomplished business leaders.  While guys like Warren Buffet usually top that list, there is another visionary we thought was worth mentioning: rapper Jay-Z.  And since we know everyone loves business lessons from rap stars, we thought we’d share some of his insights here.

While he’s never done a song about business intelligence or cohort analysis, Jay-Z’s discography is a rich library of business advice that has been topping the charts over a decade.   Don’t believe me?  Here are the top five lyrical excerpts that have helped shape our business philosophy.

5. Adapt to Serve Your Market

“I dumbed down for my audience to double my dollars
They criticized me for it yet they all yell ‘HOLLA!’”

Song: Moment of Clarity
Album: The Black Album
Year: 2003

Here, Jay-Z admits that he has compromised his artistic vision to make his music more commercially accessible.  Mainstream artists are often accused of “selling out” for doing exactly this, but here Jay-Z openly admits to the practice and justifies it with a simple fact: it made him rich.

As a business owner, your vision may not always appeal to the largest possible market.  The key is to keep an open mind about new opportunities and be ready to adjust your plans to seize them.  Like Jay-Z, many entrepreneurs have made their millions by constantly refining their vision and adjusting their strategy to reach the largest possible market.

4. Be a Renegade

“No lie, just know I chose my own fate
I drove by the fork in the road and went straight”

Song: Renegade
Album: The Blueprint
Year: 2001

In 2001, Jay-Z and Eminem were young stars, each several albums away from the iconic statuses they hold today.  Renegade, their rare collaboration from that year, casts the two as ”Renegades” who risk becoming outcasts as they attempt to change the face of hip hop.  Today, we know that these renegades succeeded in their mission.

This track is a lesson in innovation and the rewards that are possible if you take the right risks.  While it’s often safer and easier to use your talents to feed the existing machine, there is far more opportunity in disrupting it.

3. Stay in Food and Beverage

“Shoulda stayed in food and beverage
Too much flossing
Too much Sam Rothstein”

Song: Lost One
Album: Kingdom Come
Year: 2006

Here, Jay draws a powerful business lesson from the Scorsese classic Casino. In the film, Robert De Niro plays Sam “Ace” Rothstein, a handicapper who is chosen by the mob to run a new casino in 1970s Las Vegas. Due to his criminal record, Rothstein is forced to runs things under lowly title of “Food and Beverage Director.” When he begins to pursue a more public image in the interest of personal fame, we see his downfall as it parallels the downfall of mob rule in Vegas.

As Jay’s lyrics suggest, if Ace had stayed heads-down and focused on his original goal of running a profitable enterprise, he might have never fallen. The business lesson is clear: don’t start a company to become famous; start a company to build a company. Keep your eye on the best interests of your business, and don’t let the tempting distraction of personal fame compromise your original goals.

2. Be a Business, Man

“I’m not a businessman
I’m a business, man
Let me handle my business, damn”

Song: Diamonds From Sierra Leone (Remix)
Album: Kanye West’s Late Registration
Year: 2005

With this classic lyric, Jay-Z delivers a valuable lesson for business operators by drawing a distinction between the entrepreneur and the working stiff.  His business’s success has made him something much more than just an average man, and that has enabled him to do far greater things with his life and the lives of those around him.

In the lines that follow, Jay-Z calls out to all of the family members and employees whose livelihoods depend on his continued success and whose lives are better because of what he has become.  Jay-Z reminds us that running your own business will both consume and enrich your life– and that the tradeoff is definitely worth it.

1. Data is King

“Men Lie.
Women Lie.
Numbers Don’t.”

Song: Reminder
Album: The Blueprint 3
Year: 2009

As one the best-selling recording artists of all time, Jay-Z has a pretty good response to anyone who challenges his dominance: check the numbers. This same comeback is also a foolproof way for him to dismiss unaccomplished rivals.

Similarly, in business, there is nothing more important than the numbers behind a company. When the hype dies down, the companies with the strongest fundamentals are the fiercest competitors. And the companies with the strongest understanding of their data are the best-equipped to steer those numbers in the right direction.

If you think there is value in your data that might be going uncaptured, it’s probably time to learn more about RJMetrics.

RJMetrics is Hiring: User Experience and Interface Engineer

RJMetricsC76a-A12aT03a-Z

We are looking for an exceptional User Experience and Interface Engineer.

RJMetrics is a fast-growing, innovative database analytics and business intelligence software company.  We sell our hosted software to startups and growth-stage ecommerce, social media, and software as a service businesses.  We blow our customers away with powerful analytics, ease of use, and exceptional customer service.   RJMetrics was launched in early 2009, reached profitability in just six months, and has been growing revenue at over 100% per quarter.

We are located 15 minutes outside of Center City Philadelphia in the Rutgers Camden Business Incubator (3 blocks from the PATCO and River Line trains).  We also occasionally make rap videos, guest post on TechCrunch, get on the front page of digg, and win awards.

Responsibilities

  • Improve the usability and design of our AJAX-driven BI dashboards
  • Extend the functionality of our Flash-based data visualizations
  • Work closely with the founders (you will be 1st non-founder technical hire)
  • Visual design oversight of all public-facing company collateral (website, advertisements, white papers, etc)
  • Contribute to the development of internal tools, processes, and policies
  • Occasionally pitch in with whatever needs to get done (blog posts, customer integrations, strategic planning, cabinetmaking, etc)

Requirements

  • Significant experience working with Flash (ActionScript 3), Photoshop/Illustrator, HTML, CSS, and JavaScript (JQuery).  Experience with PHP and MySQL a plus
  • Must have built or contributed to something awesome that we can try out
  • Experience with user-centric design
  • Interest in ecommerce, social networks, and software as a service businesses (our clients)

Nice to haves

  • Startup Experience
  • Data visualization experience
  • Experience working with APIs
  • Understanding of business metrics/business intelligence
  • Understanding of statistics and  database theory  (we are total nerds)

What you’ll get

  • Be THE expert on interface and design for our company
  • Contribute to important software that end-users love
  • Make a major impact on an early stage company
  • Competitive salary and stock options

This is a full time position located on site.

Please apply here.

RJMetrics Selected by AlwaysOn as an OnDC 100 Top Winner

ondc100

We’re proud to have been named to the OnDC 100, put together by AlwaysOn Magazine. The list highlights “100 private companies contributing to the renewed and continued prosperity of our country”. See the full list at AlwaysOn’s website.

Tabular Data Views in RJMetrics

Today, we expanded our data display options to include raw tabular data. Simply choose “Table” from the list of charting options and you’ll be able to view the raw data behind any chart in tabular form right in your RJMetrics dashboard:

All Existing Charts Can be Viewed As Tables of Data

All existing charts can be viewed as tables of data

The tabular output provides an easy way to view the raw data powering your charts (and you can still always export to CSV or Excel).

View the raw data behind any chart right in your dashboard

View the raw data behind any chart right in your dashboard

Like all other charts, tabular data sets can be enlarged by clicking the “Enlarge” button beneath the chart. This will provide an expanded view, making large data set exploration easier than ever with RJMetrics.