Engineering Blog

Engineering Blog

Aerospike at Tapad - How We Scale

At Tapad, we deal with high throughput, low latency systems. Our bidder processes billions of requests per day. The simplified request/response cycle is: receive http request from a supplier, parse content, look up related device information, match the enriched request to any number of collections of targeting criteria (a “tactic”) and receive an internal bid [...]

Self-Organization at Tapad

“A large organization is a collection of local communities. Individual and institutional growth are maximized when those communities are self-governing to the maximum extent possible.”(Mary Parker Follett 1924) It’s a series of struggles that many startups face as they experience growth spurts and begin to mature: how do you maintain a culture of innovation, keep [...]

Data Inference: Drinking With the Dude

Data Science is the art of combining computer science, statistics, mathematics, and any number of other fields and applying it to a pile of data to extract some kind of added meaning. At least, this is what it means to me. I use the word art here on purpose; we take complicated formulas and algorithms [...]

Scala Bug Bash - Unfiltered Edition

Two weeks ago, we kicked off a new meetup called the Scala Bug Bash. The purpose is to focus the energy of Scala developers in the NYC area to help out open source projects. In our first meetup, we did the following in just a few hours: Issues closed / patches accepted: Parquet [...]

Data Pipeline at Tapad

At Tapad, we deal with a lot of data. Our data pipeline is an essential component of our tech stack that allows us to extract value from the multiple terabytes of data that we push through it every day. Recently, Dag Liodden shared a few details about the data pipelinewith Pete Soderling of Hakka [...]

Pattern Matching Gotcha

Pattern matching construct in Scala is powerful. It allows you to easily assign values to local variables, match against literal values, and deconstruct a more complex type into component parts. Most of the time this ends up being very intuitive. Here are a few trivial examples: [...]

Scala for Rubyists

Scala is a language that strikes the sweet spot between succinct, flexible languages like Ruby and verbose, statically-typed languages like Java. Ruby developers who also have experience in a statically typed language like C++ or Java will have no trouble picking up Scala. You will lose some flexibility (private method? pshh… obj.send(:not_so_private_any_more)), but the cost [...]

Why Scala

tl;dr Scala has powerful language features that integrate nicely with the Java ecosystem. At Tapad, we process a huge volume of requests per second with very low latency to serve well-targeted ads. As a young company, we have a small (but growing) engineering team that is responsible for keeping the ship running smoothly while [...]