All Posts

If a tree falls in the woods...

At Sharethrough many demand-side platforms (or DSPs) bid into our exchange via RTB. In turn, our adserver logs events as they occur.

The fast-moving nature of this log data inevitably brings us to contemplate two topics that are often intertwined: real-time data and dashboards.

It’s straightforward...

Read more...

Staff Engineer

Getting the most out of ScalaCheck

We’ve been using ScalaCheck property checks at Sharethrough for about a year. For those not familiar, property checks test a condition multiple times, using freshly-generated data on each iteration. While a unit test exercises a very specific scenario, a property check’s ability to generate data broadens...

Read more...

Software Engineer

The Free Monad and its Cost

This is the follow up post in to my explanation of Monads for Scala developers. Read part one here.

Code examples can be found here: https://github.com/robinske/monad-examples

I had heard a lot of things about the Free Monad and never really understood what it was, so did the research that led...

Read more...

Engineering Team Lead, Optimization

Scala Days Recap

I have been writing Scala for a little over three years now and kept coming across this concept called the “Free Monad.” After a while, I decided to do the research to understand what a Free Monad is. This led me down the rabbit hole of functional programming in Scala, which some outspoken people...

Read more...

Engineering Team Lead, Optimization

First Time Speaking at Tech Conference

A couple weeks ago, I spoke at the inaugural DevOpsDays Salt Lake City (SLC) on “What DevOps Is to An AdTech Company.” The talk highlights projects at Sharethrough that have shaped our DevOps culture.

As a first-time speaker, I wasn’t sure what to expect. It turned out to be a great experience.

...

Read more...

Software Engineer

Building a Service with Docker and ECS

At Sharethrough, we built a proxy server (codenamed ASAP) that all mobile SDKs speak to for ad server related information. The purpose of ASAP was to reduce our client side SDKs to minimal logic as well as allowing us to push changes and new features to ASAP without asking publishers to update their SDK.

Because ASAP will receive thousands of ad requests per second, we needed to build a scalable, high performance infrastructure that is easy to maintain.

Read more...

Senior Software Engineer

I Am Secure, Therefore IAM

Sharethrough serves millions of ad requests daily, all on top of Amazon Web Services (AWS). At one time, sharing AWS credentials via a shared password vault worked OK. But as we grew, we needed a better, more secure way to manage AWS logins.

We use Terraform to maintain infrastructure and prevent...

Read more...

Software Engineer

Monads are confusing. Let us help

Scala developers love to discuss Monads, their metaphors, and their many use cases. We joke that Monads are “just Monoids in the category of Endofunctors,” but what does that really mean?

Parts of functional programming (FP) may be built on the mathematical principles from category theory, but you...

Read more...

Engineering Team Lead, Optimization

My 2-days at the R Unconference Hackathon 2016

Two weeks ago, I took part in the R unconference, a 2-day hackathon in San Francisco hosted and organized by rOpenSci. In the unconference, data scientists and developers get together to work on different projects related to R.

It’s impossible to describe everything I learned in those two days,...

Read more...

Data Scientist

Three Best Practices to Grow Your Happiness as a Manager

At first glance, achieving happiness and effective engineering leadership don’t seem to have much in common. Marcy’s talk and my personal experience working with her as an executive coach, have proven that these concepts coincide.

Read more...

CTO & Co-Founder