Jacob’s Tech Tavern

Jacob’s Tech Tavern

Building a Launch Time Optimisation System

Disappoint your users faster

Jacob Bartlett's avatar
Jacob Bartlett
Sep 16, 2025
∙ Paid
2
1
Share

Steve Jobs, during the original 1980’s Macintosh death march, famously sat down with Larry Kenyon, the engineer in charge of boot-up time. It took over a minute. Larry insisted this was as good as it could get on the hardware of the day.

Steve asked, “Would you cut it by 10 seconds if it’d save someone’s life?”

They did some maths on a whiteboard: Let’s assume a cool 5 million Macintosh sales, with each user turning the machine on once every day, for 5 years (Apple hadn’t yet cracked planned obsolescence).

5 million x 5 years x 365 days = 9.1 billion boot-ups.

Life expectancy of the day was 73 years, or 2.4 billion seconds.

Therefore, Larry could save the equivalent 3.9 human lives, for every second cut from boot-up time. In the end, he shaved off a full 28 seconds.

Your product manager probably isn’t Steve Jobs. In fact, I’m almost positive. And unless you’re very lucky, you’ll rarely be given the oxygen to address launch time while shipping product.

This is a crime. Launch time is the most insidious, pervasive, under-addressed performance problem in mobile apps. As we’ve seen, a couple of seconds of launch time is a bona-fide nano-murder. Launch latency cumulatively annoys all your users, and quietly weighs down your retention and your revenues.

I don’t have much theory for you today: this is a practical tutorial with battle-tested techniques I’ve used in production to optimise my app launches. Replete with full Before & After open-source projects to code along with.

  • I’ll explain the real-world scenario that led to the launch time breaking point, that might feel scarily familiar to you.

  • We’ll cover three techniques to slash the launch time by 4x, including:

    • Offloading to background threads

    • Maximising CPU utilisation at launch

    • Smart dependency resolution

  • I’ll show you how you can keep on top of your launch time in production.

  • I’ll demo some advanced approaches for optimising pre-main launch time.

Parallelism grants great power, but also peril: we will run into real-world examples of deadlock and race conditions along our journey, and learn to mitigate and solve these problems. That’s just what happens when you play with fire(storm CPUs).

Subscribe to Jacob’s Tech Tavern for free to get ludicrously in-depth articles on iOS, Swift, tech, & indie projects in your inbox every week.

Paid members get several benefits:

  • Access this article, plus all my advanced Elite Hacks 🌟

  • Read my free articles a month before anyone else 🚀

  • Grow your career with my Swift Concurrency course 🧵

Keep reading with a 7-day free trial

Subscribe to Jacob’s Tech Tavern to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Jacob Bartlett
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture