← Back to all posts
I Cut App Load Time by 30% – And It Wasn't About the Code
#Performance#Data-Driven#Backend#Optimization#Mindset

I Cut App Load Time by 30% – And It Wasn't About the Code

July 1, 2026

The Pressure Cooker

A few years ago, I was handed a classic engineering panic button. The AnterAja logistics platform—which connects thousands of drivers with customers daily—was growing fast, and users were starting to complain. The app felt "heavy." Screens took ages to load. My manager looked at me and said, "Fix the speed."

My first instinct? Dive straight into the codebase. Maybe I could rewrite the SQL queries. Perhaps switch to a faster JSON parser. Or implement a new, fancy caching layer. That's what any self-respecting backend engineer would do, right?

But I hesitated. A tiny, nagging voice—left over from my mathematics days at Yogyakarta State University—whispered a different question: "What does the data actually say?"

The Guessing Game vs. The Statistical Game

Here's the dirty secret of performance optimization: most of it is just educated guessing. We feel like the database is slow, so we index it. We think the network is the problem, so we compress payloads. But feelings are terrible metrics.

I decided to treat this not as a coding challenge, but as a statistical modeling problem. I closed my IDE, opened our monitoring dashboards, and started collecting data. I wasn't looking for "what felt slow." I was looking for distributions, outliers, and patterns.

  • I measured the DNS resolution time for every third-party service.

  • I tracked the payload size of every single API response across different user roles.

  • I plotted the 95th percentile latency for each microservice.

  • I analyzed the waterfall chart of the mobile app's asset loading sequence.

It was tedious. But it was also illuminating.

The Plot Twist

The data told a story completely different from what I expected. Our backend APIs were actually blazing fast (p95 under 200ms). The database was holding up beautifully. The real culprit? It wasn't the server at all—it was the client.

The mobile app was making 15 to 20 sequential network calls just to fetch static configuration files and small assets before it could even render the home screen. Each call was tiny, but because they happened one after another, the total load time was the sum of all those network round-trips. On a shaky 4G connection, that sum was devastating.

"As a statistician would say: the mean wasn't the problem. The distribution and the sequence were the problem. We had a serial dependency issue, not a computational one."

The Fix (No New Algorithms Required)

Once the data pointed the finger, the solution was almost embarrassingly simple. We didn't rewrite any core business logic. We didn't invent a new algorithm. We just reorganized the flow:

First, we bundled all those critical configuration assets into a single manifest file—turning 15 calls into 1. Second, we implemented parallel prefetching for non-critical images, so they loaded in the background while the user was still looking at the splash screen. Finally, we added conditional loading based on user role (drivers only downloaded route data; customers only downloaded order data).

None of this required graph theory or calculus. It just required the discipline to stop guessing and start measuring.

The 30% Payoff

The result? We slashed the average cold-start load time by a clean 30%. But even better, the p95 tail—the worst-case experience for users on slow networks—improved by nearly 40%. We didn't just make the average user happy; we made the outliers bearable.

"To me, that's the essence of a mathematical mindset in engineering. It's not about being able to derive integrals. It's about respecting data, understanding distributions, and systematically eliminating variables until the truth reveals itself."

One Piece of Advice

If you take nothing else from this story, take this: before you optimize, measure. Before you refactor, observe. Your intuition as a developer is incredibly valuable, but it is frequently wrong when it comes to performance. The numbers, however, are never wrong.

So, the next time you're handed a "slow" system, don't reach for your keyboard first. Reach for your monitoring tools. Channel your inner statistician. You might just find that the biggest win isn't in the code at all—it's in the data that tells you exactly where to look.