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.
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:
- SmartVote™ Poll for A/B/n testing of internal ideas vs. user suggestions
- 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.
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.
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.
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.
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 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.”
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.
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.
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.
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
|Tech Operations:||App Engineering:||Widget Traffic:|
|Mark||VP Jonathan Novak||500M unique visits/month|
|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
Upon 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.