Background At Mixpanel, we heavily utilize Google Cloud Platform(GCP)’s SSD provisioned persistent disk (PD-SSD) to store the event data that underlies our service. We chose it to support our low-latency analytics database, which serves customer queries. We found one major problem with PD-SSD: the cost. PD-SSD is 5x the cost per GB stored than Google …

Live Downsizing Google Cloud Persistent Disks for Fun and ProfitRead More »

or: How We Learned to Stop Worrying and Love the DOM   Clean, attractive user interfaces and effective user experience have always been pillars of Mixpanel’s products. Over the years, as our data visualization UIs have introduced richer interactions and more advanced capabilities, a central concern of ours has been managing ever-increasing front-end complexity, driving …

Making Web Components WorkRead More »

Mixpanel’s web UI is built out of small pieces. Our Unix-inspired development philosophy favors the integration of lightweight, independent apps and components instead of the monolithic mega-app approach still common in web development. Explicit rather than implicit, direct rather than abstract, simple rather than magical: with these in-house programming ideals, it’s little surprise that we …

Straightening our Backbone: A lesson in event-driven UI developmentRead More »

This was originally posted on High Scalability. Building data products is not easy. Many people are uncomfortable with numbers, and even more don’t really understand statistics. It’s very, very easy to overwhelm people with numbers, charts, and tables – and yet numbers are more important than ever. The trend toward running companies in a data-driven …

Building data products that people will actually useRead More »

We’ve been hosting a series of monthly meetups on C++ programming topics. The theme of the series is a chapter-by-chapter reading of Scott Meyers’ new book, “Effective Modern C++”. The meetings so far have been December: Arthur O’Dwyer on “C++11’s New Pointer Types” (EMC++ chapter 4) January: Jon Kalb on “Rvalue References, Move Semantics, and …

Feb 2015 Mixpanel C++ meetup: Fun with Lambdas (Effective Modern C++ chapter 6)Read More »

We recommend setting up work queues and batching messages to our customers as an approach for scaling upward server-side Mixpanel implementations, but we use the same approach under the hood in our Android client library to scale downward to fit the constraints–battery power and CPU–of a mobile phone. The basic technique, where work to be done is discovered …

Queuing and Batching on the Client and the ServerRead More »