UserVoice 3.0: Product Manager Tools for Data-Driven Decisions & An Exclusive Tour of the Tech Stack

Feature Review of UserVoice 3.0 Product Manager Platform

TL; DR: With a well-established legacy of enhancing product planning with data science, UserVoice has recently expanded their “Product Management Platform” to streamline and improve decision-making for Product Managers. They’ve engineered a hardware and software stack that’s on the cutting-edge of automation and efficiency, so mid- to enterprise-level users can understand data at scale. With 35 team members total, UserVoice epitomizes the potential of a small tech team with in-house innovations and top-shelf tools.

Mark Martin - UserVoice VP of Tech Ops

Uservoice VP of Technical Operations: Mark Martin

UserVoice first made their splash on the Internet scene with their unique “Feedback Tab,” which made customer support, online knowledgebases, and customer feedback as simple as a few lines of JavaScript. Not only was this a major advancement for the state-of-the-Internet, but UserVoice also helped spearhead today’s “as-a-service” economy.

Today, UserVoice has turned its attention to Product Managers (PMs). Their all-in-one “Product Management Platform” allows PMs to gauge customer interest, prioritize feature sets, and build more efficient and effective project roadmaps.

We sat down with UserVoice VP of Technical Operations Mark Martin. He took us through the product’s infrastructure and shared with us some of the lessons learned in building the technology that’s driving data-centric product decision-making for companies across the globe.

First, we will discuss what new features UserVoice is bringing to market. Then, we’ll dive into the hardware and software infrastructure that powers their products.

UserVoice 3.0: A Data-Centric Approach to Decision-Making

The latest news from UserVoice is the recent release of UserVoice 3.0: a major expansion of the original UserVoice Product Management Platform. With the updated platform, PMs are given tools to gauge customer feedback, and they can gain statistical significance with data-driven decisions, rather than intuitive guesses. This new suite of tools includes two main feature sets:

  1. SmartVote™ Poll for A/B/n testing of internal ideas vs. user suggestions
  2. Advanced Trend Reporting provides insight around user feedback with the context of time

1. Comparison Testing with SmartVote™

A core functionality of the latest platform features Comparison Testing for Product Managers, utilizing their updated SmartVote™ Poll. This feature allows teams to propose internally-generated ideas against user-submitted suggestions with A/B/n testing. On the frontend, users are presented with single-question surveys, which are simple to answer and take almost no time to complete. By asking users to choose between ideas, products are ranked by popularity.

SmartVote Technology Frontend

SmartVote™ asks users to choose between ideas, thus ranking product popularity.

PMs receive an overall “SmartVote™ Score” for each of the ideas, which is based on an algorithm that calculates the popularity of an idea. Within the “User Feedback Report,” PMs will also find information on how many times the idea has undergone SmartVote™ testing, the confidence level, data on who suggested the idea and who has participated in voting, and an overall “Satisfaction Score.” Comparison Testing with SmartVote™ helps to eliminate the internal divide over the direction of the product.

UserVoice 3.0 SmartVote Poll Screenshot

With SmartVote™ Poll, PMs can make data-driven decisions based on customer interest, revenue, ROI, etc.

2. Personalized Views, Notifications, & Advanced Trend Reporting

UserVoice also recognizes the growing burden placed on mid-market to enterprise-level companies to collect and manage data at scale. With their new Personalized Views and Notifications, members of larger product teams can remain focused on their individualized tasks, and the signal-to-noise ratio of the “feature idea” is increased for PMs. With Advanced Trend Reporting, PMs can recognize an increase or drop in demand or desire for a product or product idea, and quickly flag trending topics to the forefront of the product roadmap discussion.

Personalized Views for UserVoice Product Management Platform

PMs can filter and prioritize product updates, tweaks, bug fixes, etc., and bump them to the forefront of the discussion.

The Hardware Behind UserVoice

The UserVoice platform is hosted on SoftLayer. “I’d say we’re 98 percent baremetal servers, so we don’t use any virtualization except for offline processing,” Mark said. Since early on in the UserVoice lifespan, SoftLayer has provided the infrastructure for their hardware platform and helped them scale to where they are today.

UserVoice Hardware

Compute Hardware: Hosted on SoftLayer

All of UserVoice’s applications run on single-processor Xeons. They have about 20 application servers, and each node is equipped with a local Memcached instance. By having access to the CPU processing at the bare-metal level, UserVoice can put as much processing power as it needs towards its analytics and decision-making calculations.

Main Database: Percona XtraDB Cluster

UserVoice’s main database is a Percona XtraDB Cluster (MySQL), which contains three quad-core processor Xeons with SSD Raid 10 and about 256GB of RAM each. Those three machines split the load of about one terabyte of data. It uses synchronous replication, allowing them to read and write to any node. Mark expects their team to double the amount of RAM of each of the cluster boxes within the next year in order to keep quite a bit of data within their InnoDB Pools. With more and more data being held (cached) in RAM, the speed of every read/write is enhanced system-wide.

Redis for Job Processing & Caching

Within the application layer of UserVoice, Redis is used to handle their job processing queue, as well as caching for stats. “We’re moving to a Redis Cluster for a better failover process in the future,” Mark told us, “but for now it’s just a high-availability (HA) pair.”

CloudFlare Out in Front for DDoS Protection

As of about a year ago, they were having trouble with DDoS attacks due to some of their well-known clientele. To combat this vulnerability, they recently put CloudFlare out in front. “CloudFlare has been really helpful with that and we haven’t seemed to have a problem anymore,” Mark said.

CloudFlare can accept CNAMEs for customers whose UserVoice domains have them, so they essentially proxy UserVoice traffic. “It is really nice — it’s basically like having an extra team of engineers,” Mark said.

The Software Behind UserVoice

The UserVoice software infrastructure has consisted of an application layer written in Ruby (now transitioning to version 2, written in Go) as well as their own in-house visualizations for the frontend. Analytics are handled with a JavaScript SDK and custom offline processing.

The Application Layer: A Legacy Rails App & A Move to Golang

The original UserVoice API was a Rails application, but Mark and his team are currently in the process of cranking out the second version, which will be written entirely in Go. After managing their legacy Rails app for over five years Mark explained that his team was relieved by the switch to Go.

“There were a lot of frustrations with monkeypatching issues, performance issues, et cetera, so Go is a really easy way of getting all of your developers to pretty much approach a problem in the same way.” Often times with Rails, it can be hard to determine the origin of methods. Some say Go alleviates the pain of obscured classes, plus there’s the added benefit of built-in concurrency. “It really simplifies the code quite a bit, and it surfaces your intentions a lot more,” Mark said.

The new Go API is also intended for UserVoice 3.0, which the team is gradually transitioning existing customers to now. As far as getting the team on board with this transition to Go, Mark said, “it was actually really easy — everybody was eager to learn.”

Mark & the UserVoice Team’s Favorite Golang Perk:

Compiler Checking & Types

The Front-End Visualization: Charting and Visualization Based on D3

Nowadays, everyone loves to talk “Big Data;” however, the amount of data being processed is worthless if you can’t do anything actionable with it. UserVoice has their own visualization library that they use to build charts and punchcard graphs to relay data back to their users.

Mark also told us that their “visualizations were all done in house and they’re built on top of D3.” D3 is a JavaScript library that allows you to take mass amounts of data, manipulate documents, and create powerful visualizations with HTML, SVG, and CSS.

The Analytics: A Javascript SDK and Offline Processing

UserVoice uses two processing systems for returning analytics data to users. One works similarly to what you would expect to see from Google Analytics, while the other focuses specifically on user feedback, product votes, support requests, and subscription data.

  1. Views & Visitor Data → When UserVoice’s JavaScript SDK (software development kit) is embedded into your site, an Erlang frontend measures data stored in a Riak Cluster. One event is fired on load, which eventually funnels in more specific information about visitors’ behavior across various channels on which the widget appears. Events are queued and probabilistic data structures are used to pull analytics similar to what you might expect from Google Analytics (e.g., unique page views for Widget/iOS/Android/etc.).
    UserVoice Site Screenshot - Product Feedback with SmartVote

    Product Managers can recalculate feedback stats by user and/or account traits.

    This separate analytics processing system is unique and necessary, due to the extremely high level of traffic that UserVoice has to be able to serve up immediately for larger customers.

  2. Feedback, Votes, Support Request, & Subscriber Data → This processing system runs offline, talks to the MySQL database, and remains as custom OLAP (online analytical processing) code written entirely in Ruby. They hope to switch to a Spark Cluster by next year.

Developer Bonus: Open-Source Go Projects

Mark also told us about their open-source products under the gocraft GitHub organization (gocraft/web, gocraft/work, gocraft/dbr). “These are the libraries that we’re using to build our version 2 of the API,” he said. “We’ve experienced a good amount of traction with these projects, which has been encouraging.”

Mark, The Team, The Lessons

Mark’s been with UserVoice for about five years now. He works with a small team of extremely talented developers and engineers who have made made major contributions in software for product planning and development. Needless to say, they’ve learned a lot along the way as well.

The Engineering Team Break-Down

The UserVoice engineering team is made up of 11 development, design, and programming experts. As they handle between five and seven million hits to JavaScript each hour, that’s one impressive (and small) team scaling out services for over 100,000 organizations.

Tech Operations: App Engineering: Widget Traffic:
Mark VP Jonathan Novak 500M unique visits/month
2 Engineers 5 Backend Engineers 5-7M hits to JavaScript/hour
2 Frontend Engineers

Mark’s Background: From Chef, to Software, to UserVoice

Before being personally sought out by UserVoice CEO Richard White, Mark had worked for several client agencies and spent three years building software for a large food service company. “It was definitely not glamorous work,” Mark admitted, “but it was fun — it allowed me to be creative in a not-so-creative environment.” Before doing any of that, however, Tech Ops Mark was Chef Mark, owner of several restaurants, which he eventually sold to pursue his dream of a software career.

Lessons Learned: Use Software Off the Shelf vs. Custom Products

Mark shared with us his #1 take-away from working on major scaling needs projects with a small engineering team: “Use software off the shelf instead of building custom solutions.” Their team, albeit small, has learned a lot and certainly improved upon their various projects since 2008.

“It takes extra time,” Mark said. “By the time you’ve vetted what the outcome of what you built is, it’s possible that you’re going to have to throw it all away anyway, so if you do your best to use a generic solution, then you can get that product out there.”

Final Thoughts on UserVoice

UserVoice is committed to innovative research and open-source solutions for product managementUpon first launch in 2008, UserVoice quickly built a name for itself empowering businesses to harness customer feedback and leverage it for business success. Hosted on SoftLayer, with Cloudflare out in front, they’ve made an incredible impact, and done so at scale.

Today, with the release of UserVoice 3.0 and a redirected focus towards product management, UserVoice is securing its legacy as a premier product planning resource for businesses of varying sizes, with varying needs.

Our conversation with Mark clearly showed that UserVoice has assembled a team of talented programmers and engineers geared towards open-source discovery and leading the way in technological advancement. Mark and his team are small in number, but have proven that the possibilities are endless, and we can’t wait to see what UserVoice does in years to come.

Alexandra Leslie

Questions or Comments? Ask Alexandra!

Ask a question and Alexandra will respond to you. We strive to provide the best advice on the net and we are here to help you in any way we can.