All Posts

Surviving Your First Ninety Days as an Engineering Manager

This is the third of a twelve-part series covering the sessions from Calibrate, an engineering leadership conference held September, 2015 in San Francisco.

Read more...

Engineering Team Lead, SFP

Leadership. By the Numbers.

This is the second of a twelve-part series covering the sessions from Calibrate, an engineering leadership conference held September, 2015 in San Francisco.

Today we’re featuring Rands’ keynote: “Leadership. By the Numbers.”

Read more...

VP of Engineering

What Does Good Engineering Leadership Look Like?

This is the first of a twelve-part series covering the sessions from Calibrate, an engineering leadership conference held September, 2015 in San Francisco. Content will be posted at a regular cadence throughout the month of November.

Read more...

VP of Engineering

Capturing common config with an SBT parent plugin

After creating a few Scala projects, we noticed that we repeated a good chunk of SBT configuration across projects. This caused issues, the kind that occur any time there’s repeated code. In some cases, developers were resolving version and dependency incompatibilities over and over. In others, improvements...

Read more...

Software Engineer

Ops-ing with Packer and Terraform

Most of Sharethrough’s infrastructure runs on AWS. For a long time we’ve relied on chef and knife ec2 to maintain resources, but as we grew, we searched for tools that would continue to improve operation efficiency. Recently we started using two tools from Hashicorp, Packer and Terraform, that appear...

Read more...

Software Engineer

Migrating from Resque to Sidekiq

Resque at Sharethrough

Updated 9/1/2015: We have updated our SlackErrorService to use Sidekiq’s global error handlers feature.

Back in 2013 when we began our platform rewrite, there were many Ruby-based queuing options available. The following three stood out as the best choices: Delayed Job, Resque

Read more...

Software Engineer

My Path to Becoming a Product Manager

My career at Sharethrough began in the Solutions Architect role. My publisher operations experience from the last company helped me develop empathy with the processes and tools the team at Sharethrough was employing, and learn about the external business stakeholders. I sat in on internal operations...

Read more...

Product Manager

Goodbye MapReduce, Hello Spark

For those of you not familiar with Spark, it is a cluster computing framework developed in AMPLab at UC Berkeley. Unlike MapReduce, which writes its data to disk between steps, Spark attempts to perform all of its computations in memory which can yield significant performance improvements. It is...

Read more...

Staff Engineer

Suppressing SLF4J logs During Tests in SBT

It’s a best practice to bypass logging during unit tests. Since the tests will be run by a computer, the output is wasted I/O, and if you needed log output to understand why a test failed, that should be a sign that a new test needs to be written. Logging tests can even make debugging harder by hiding...

Read more...

Software Engineer

Type classes for the Java Engineer

One of Scala’s strengths is its support for multiple programming paradigms. In practice, however, Scala reminds the developer how each paradigm evolved separately, and carried with it lexicons and perspectives for concepts that turn out to have a lot in common.

Type Classes were a concept I had difficulty...

Read more...

Software Engineer