We Use That / GoPollGo

What startups use to get stuff done

Real-Time Polls with Analytics
Posted on 07 Aug 2012 in

Who are you, and what do you do?

My name is Ben Schaechter, I am a founder and developer at GoPollGo. GoPollGo is a great way to run polls and get responses back from people in real-time. We give users the ability to segment votes by age, gender, location, and a bunch of other dimensions. Our users include TechCrunch, Netflix, ESPN, and Yahoo. GoPollGo’s main product is a web app, but we also have a sweet mobile web version. An iOS app is on the way.

What is your technology stack?

The majority of our application logic is written in Ruby on Rails and all of our data is persisted to disk in MongoDB. We use Node.js and Socket.io for all real-time communications with the browser. Redis is used for pub/sub, messaging between various services, and as a hot-cache for certain data.

We deal with unpredictable, sudden bursts of traffic and found Varnish to be incredibly helpful as an HTTP reverse-proxy server which sits in front of all of our application servers. We process various background jobs with Resque.

Our front end is organized with BackBone.js. Our real-time animating charts and maps are built on top of Raphaƫl.js. We are big fans of jQuery, as well.

We have done a lot of customization with Capistrano deployment hooks to run our suite of unit and functional tests, compress, minify and push all assets (JavaScript, CSS, image sprites, etc.) to the CDN and restart background workers and various servers if necessary. We use Phusion Passenger as an application server and NGINX as a web server.

What software do you use to run your business?

All of our servers run on The RackSpace Cloud and all assets live on RackSpace Cloud Files.

Our team lives on Github and HipChat. We hooked them up together so all commits, pull requests, comments and issues are thrown directly in our chat logs for us to discuss or reference. We use Github Issues for all issue tracking and feature requests. Pull Requests are code reviews. We occassionally use Trello for longer todo type tasks or projects. We use Airbrake for error reporting and New Relic for application monitoring to make sure all pages are loading quickly.

We use Pingdom to monitor all of our production servers. Monit is set up to monitor all services and restart them if memory bloat or extreme CPU usage spikes occur. We keep an eye on various systems with Munin to make sure everything is running smoothly. Every developer also has a set of rake/cap tasks at his/her disposal to remotely restart services if necessary.

We have found Google Hangouts to be pretty cool for hopping on a quick conference call when people are working remotely.

What business software do you most wish existed?

Our payroll service is probably the worst interface I have ever experienced. To do anything is a big hassle. Improving the UI alone could monumentally improve the product. There is also a lot of room for improvement for error reporting and tracking. Finally, we love HipChat, but their iOS app is fairly sluggish and could use a bit of performance improvement.