Search results for: Developer Best Practices

A Better Measure of Customer Service: Response Times and How to Talk About Them

With a platform that handles billions of transactions every hour and hundreds of millions of internet users every day, every solution must be built to scale. – Throughput Measures How Many Customers You Serve. Response Time Measures How Well You Serve Them. We are, rightly, very proud of our ability to handle the high throughputs our business requires. We highlight throughput in our marketing materials, list it front and center in our job postings, and graph it on any number of dashboards in our monitoring system. It is a powerful metric for the growth of MediaMath as a company. […]

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 […]

Whattup With Walt: Whattup with programmer time vs. user time?

Whenever I write software I keep this in mind: Any task the computer doesn’t do will have to be performed over and over and over by every user of the program. For example: Invest an hour in writing a clear, complete error message. It will save a human being from having to manually figure out the error, over and over and over again, and it will affect every user of the program from now until, well, a long time. Don’t leave work for the user to do if you can do it. Your time is not worth more than the […]

Whattup With Walt: Whattup with blindly using the crippled APIs someone else provides you?

Be ever willing and ready to enhance the APIs you are given by wrapping them in your own functions and classes. At some point, you will discover the “standard” function  or class will prove to be incomplete, cluttered, broken, lame, slow, bloated, byzantine, obtuse, and a host of other adjectives best summed up as “annoying.” When I use the functions provided by a general-purpose library, I find they have been weighed, measured, and found wanting. They always have some deficiency that drives me nuts. Give me any function provided by standard Linux or Windows API libraries, and I’ll show you […]

Whattup With Walt: Whattup with debugging?

Every time I’ve had a big debugging problem, it was because something was going on in the code that I wasn’t seeing. I’m sure you’ve had the experience of, after solving a bug, saying, “Oh, of course, that should have been obvious.” Well, it would have been obvious if you had seen what you thought was obvious, earlier. Having that experience, over and over again, taught me to make the inner workings of my program as visible as possible. #1. Write complete, detailed logs I start with writing complete and detailed logging. My log messages contain time, date, thread, log […]

Page 2 of 212