Friday Thoughts: test properties when you can

tl;dr: You can often get a lot more mileage out of time spent writing tests if you can find properties to test using randomized data instead of (or as well as) cases to test with specific data. I was working on a project recently where I was adding encryption capabilities to something. I wrote a […]

Efficiently Analyzing a 600 Billion Edge Graph in Real-Time

We do a lot of work with massive graphs at LiveRamp. In this post I’ll share the story of how we analyze one such massive graph and discuss the Hadoop-based technology we use to efficiently perform this analysis in real-time. To provide some background, we’re analyzing a graph consisting of the connections between different identifiers […]

Know Your Audience: a tool that helps you discover demographic bias on your website

Technology today has made it really easy to create your own website. Through open-source content management systems like WordPress, you are ready to publish your ingenious blogs or demonstrate your amazing products with just a few clicks. Meanwhile, thanks to Google Analytics, you can easily track the traffic to your website by plotting the trend of […]

LiveRamp for Sociologists: Exploring the correlations between demographic segments

For Hackweek XLIV, our data science team explored how LiveRamp’s demographic data and our identity resolution technologies could be used by sociologists to study human behavior. For example, one could study the correlation between education level and political affiliation. To that end we built a new tool for exploring the correlations in demographic data and […]

Hackweek XLIV

For many LiveRampers, hackweek is one of their favorite parts of working here. It’s a time when you can work on whatever you think will bring the most value to the company, whether it is fixing a process that’s been making you miserable, cleaning up some old code that’s dragging down the system, or exploring […]

Friday thoughts: fail, fast and furiously

tl;dr: When implementing a service or API, if you get a request you don’t quite understand, the kindest thing you can do is to return a noisy error. Let’s consider an API like:   GET /mySum?num=3&num=42 Pretty trivial, eh? I might implement this with something like:   func mySum(args url.Arguments, w http.ResponseWriter) {     w.Write(int(args[“num”][0]) + int(args[“num”][1]))   […]