All Posts

The Impossible Job

Being a great leader is a difficult job. While not impossible, it certainly feels that way at times. Many leaders have received little to no formal management training and getting started can seem overwhelming. Michael Lopp, VP of Engineering at Slack, lays out a set of sixteen hacks you can use to make the job a little bit easier.

Read more...

Senior Software Engineer

Welcome to Calibrate 2016

We are so pleased to share with everyone the talks from the 2016 Calibrate conference for engineering managers. Those who attended Calibrate this year had the benefit of asking questions, talking with each other, and chatting with speakers throughout the day. What we’re bringing to you now is the content from that day; something we’d like to share with all new engineering managers, everywhere.

Read more...

Calibrate 2016 Program Director

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