Tired of ads? Enjoy an ad-free experience by signing up.
  • Insights
    This article was written by a TIA community member. Insights pieces undergo the same rigorous editorial process that newsroom-produced articles have.
Eric Tucker · · 5 min read

5 things we did to make our servers and engineers more efficient

pocketmath-engineering

Vishnu Sreekumar, dev-ops, systems engineer at Pocketmath

In our previous article, we introduced the idea of uncommon efficiency, which is about unlocking potential by seeking out surprisingly low but often overlooked scale and productivity barriers.

In this article, we’ll take a closer look at how the concept helped us find just the right mix of productivity for both our servers and engineers.

A commercially viable mobile DSP like our company must take in a large swath of ad impressions. With naive approaches, server budgets can stretch into seven or eight figures a month.

To achieve both computational and human efficiency, we went back to the basics—independent decisions that tie back to computer science theory and a deep understanding of problems.

When speed matters

In Walter Isaacson’s biography of Steve Jobs, he relates how the Apple CEO motivated engineer Larry Kenyon to make the Mac boot faster:

“Jobs went to a whiteboard and showed that if there were 5 million people using the Mac, and it took 10 seconds extra to turn it on every day, that added up to 300 million or so hours per year […] equivalent [to] at least 100 lifetimes saved per year.”

Actually, Jobs’ numbers were an order of magnitude too high. But the lesson rings true, and we took it to heart.

Performance optimizations get down to the nitty gritty, usually focusing on things that happen very, very often. To go fast, we looked at the plainest details. For instance:

  • Are the things that run most frequently receiving the most attention to make them faster?
  • Are we managing concurrent access to resources efficiently?
  • Is one process preventing another from running in parallel?
  • Are the way things are organized in memory appropriate for the size of the data?
Human programmers still have jobs for good reasons.

While modern programming tools (compilers) do some of the work, they cannot overcome a fundamentally inefficient algorithm. Human programmers still have jobs for good reasons.

Shaving a few microseconds off an operation may not seem like much, but a 100 percent speed improvement in some tiny component might cut the overall server bill by 20 percent. Those huge savings are surprisingly achievable by looking at everyday programming problems.

Being selective with technology frameworks and standards

Data locality

Living well in the cloud

At the speed of the wire

Stay ahead in Asia’s tech landscape

You've reached your 2 free content limit for the month. Sign up for free to read the full story.

🏄 For casual readers / 👶 Free

Basic

US$0

Free forever

Get instant access to this article and more every month

0 premium content

Unlimited news briefs

5

5 articles

Ad-free reading experience

Just US$0 per day

⌛Sign up in 20s. No payment details needed.

📖 For learners / 👍 Starter

Lite

US$4.92/month

Billed annually at US$59/year

Get instant access to this article and more every month

4

4 premium content

Unlimited news briefs & articles

Ad-free reading experience

Just US$0.17 per day

Cancel anytime

Our subscriber community includes professionals from these companies:

Stay updated on the go with our mobile app.

Get latest insights with smoother, more personalized experience through TIA mobile app.

Community Writer

Eric Tucker