Search results for: tips & tricks

When You’re Done, You’re Only Halfway Done

You’ve just checked in your code, given it a version number and are about to send it to QA, but wait, are you sure you are done? Sometimes when I use a new whizbang program, only to find it lacks some things which every useful program should have.  It is easy, especially when building a complex program with unique functionality, to focus entirely on the unique offering of the program. While an enormous amount of time should be put into differentiating a program, there are certain features that users now expect in order to get the highest performance out of […]

Easing into Functional Error Handling in Scala

This post was originally published on longcao.org in June of 2015 and is republished below. One of the biggest selling points of Scala is being able to transition from Java to the world of functional programming. What this means, practically speaking, is that you and/or your team can start off writing very Java-like Scala that already works, treating it as a “better Java” with more goodies and less verbose syntax. But why stop at that? We can do better by adopting more typesafe functional concepts, and the best part is we can ease ourselves into at least one practical application […]

How to write better multi-threaded code using Akka, Futures, and For-Comprehension

Here at MediaMath, we use Scala to help our API engine handle thousands of concurrent requests per second. We chose Scala because it is designed for use in concurrent, asynchronous, and distributed environments. After all, according to Amdahl’s Law, which states that the more parallel code you have, the more you can benefit from using a modern multi-core processor. But building a high performance system in Scala is always an interesting task. Parallel and concurrent code is historically difficult to write and prone to errors. In this post, I want to share some techniques I’ve learned that will hopefully help […]

VPN, security groups, & more on NATs: Part 2 of our Hybrid Cloud Tips & Tricks Series

// 11.19.2014 // Data

Today’s post picks up where we left off last week. As a refresher, here at MediaMath, we run a hybrid data center-cloud environment. In this two-part blog series, I will be highlighting a couple of the trickier aspects of this integration with a focus on maintaining data integrity between your in-house data centers and the cloud – specifically, an Amazon Web Services cloud. Go to part 1: VPCs, Jump Boxes, and NATs Using a NAT on a Public Subnet Some of our services need endpoints accessible from our in-house data centers. These services must go in a public subnet with […]

VPCs, jump boxes, & NATs: Part 1 of our Hybrid Cloud Tips & Tricks Series

// 11.12.2014 // Data

Here at MediaMath, we are building out new services for our hundreds of terabytes of data at a lightning fast pace. This isn’t your grandma’s software development shop. Using cloud services like Amazon’s EC2 service allows us to scale up our infrastructure to match this pace. However, MediaMath doesn’t run a purely cloud-hosted environment. Instead, we run a mixed data center environment, with a number of high performance components running in a variety of data centers throughout the world. That means that the new AWS-hosted pipelines and data stores we are building must integrate with our in-house data centers, which […]