Postman opens in 14 seconds. What went wrong?
Tags: performance, tooling, codequality, webdev
Published: 2021-11-20 20:49:47

Do you have a morning routine? I do. I start my day by drinking a cup of coffee and opening programs on the computer I will use during the day: code editor, git client, messaging app, and *Postman*. Then my favorite part of the day starts - I watch celestial bodies, spinning planets. Don't understand what I am talking about? Then you probably never used *Postman*?

*Postman* is a relatively small program primarily used for sending HTTP requests and reviewing their response. The problem is that this application takes a ton of time to load. My somewhat new *MacBook Pro 2019* opens it in roughly 14 seconds!

During those 14 seconds program displays three loading animations: splash screen with spinning planets, loading indicator inside the empty white screen, and [skeleton loader](https://blog.prototypr.io/skeleton-loader-an-overview-purpose-usage-and-design-173b5340d0e1) before displaying a list of HTTP requests. I have no idea where *Postman* spends all that time, but I would say it's three animations too much for such application.

![Postman load time](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zezfeq5j8wqjzftyu4gh.gif)

Ok, maybe I have few ideas why this application is so slow.

###No one cares about performance
Have you ever seen the "Modern software development" meme?

![Modern software development](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vumrj4dr0q96snewexed.gif)

This meme is so relatable! Every programmer sometimes takes shortcuts. But when the developers care about code and product enough, they go back and clean their mess. 

Reality is different. Developers have managers, and managers have other priorities. Instead, they would spend that time adding a new feature, which only 1 percent of users will use, and probably further decrease application's performance. A few seconds is a very short measure of time in human life. It is difficult for us to understand how impactful those seconds actually are. But we quickly realize it when we start using slow software.

Multiple studies show that website load speed has a significant impact on website bounce rate. For example, [a Google study](https://www.thinkwithgoogle.com/marketing-strategies/app-and-mobile/mobile-page-speed-new-industry-benchmarks/) found, as a page load time goes from:
- 1s to 3s, the probability of bounce rate increases 32%
- 1s to 5s, the probability of bounce rate increases 90%
- 1s to 6s, the probability of bounce rate increases 106%
- 1s to 10s, the probability of bounce rate increases 123%

Ironically, unlike browsing the web, people can't stop using not performant and unstable programs because they depend on them to do their job.

### No one cares about computer resources
The prevailing view is that computer resources are cheap, but the work of a programmer is expensive, and it is not worth spending a costly programmer's work to optimize code. On the one hand, the statement is correct. On the other hand, software engineers did a poor job if software turned to be slow and bloated.
Users are forced to download large applications, but is it really necessary? For example, *Postman* takes up 399 MB on my computer. It's an average size program nowadays.

### No one knows how to write performant software anymore
Even if the product owner would agree to spend more time on performance improvements, could software engineers do that? Every day hundreds of video tutorials, blogs, and courses are uploaded to the internet. But how many of those are relevant after two years when another shiny framework becomes popular? An absolute minority. Who wants to learn complex fundamental topics when you can spend that time playing with a new progressive framework?

Software became so bloated and complex, now we spend our time dealing with issues in an nth layer of abstraction, and we barely make it work. At this point, no one understands anything. Our heads are full of knowledge on how to solve weird edge cases caused by development environments, frameworks, tools, cloud providers. And we just keep adding our code on top, hoping it to work. There is no time to care about performance, resource usage, and simplicity when everything is on fire.

### What Postman could change
*Postman* is one of the largest developer tool makers. In 2021 company raised 225$ million in a Series D financing round and now is valued at 5.6$ billion. I am trying to say that *Postman* has enough resources to fix their most popular product.
I wish they would release a native application for each operating system. I am sure it wouldn't take 14 seconds to load, and it wouldn't use 399 MB of RAM.

### It's not only Postman
*Postman* is not the only slow program I use. Half of the software is sluggish and bloated. But I am forced to use it. For example, a company I work for uses Slack. Also, some software has no reasonable and feature-rich alternatives.

### What can we change?
Software performance, resource usage, bugs are just as critical as features for application's usability. It sounds simple, but we tend to focus only on functionality.

As for the *Postman*, let's look at the alternatives:
- *Insomnia* is an application with a much simpler and cleaner user interface for manual APIs testing. However, *Insomnia* uses *Electron*, so load speed is not that much better - 8 seconds, RAM usage is similar to *Postman*. In other words, *Insomnia* is faster because it has fewer features.
- *Paw (macOS)* and *Nightingale (Windows)* are native applications. Performance and resource usage are better. The downside, user experience across operating systems is different.
- [Awesome HTTP Clients](https://github.com/mrmykey/awesome-http-clients) is a GitHub repository with all *Postman* alternatives I could find. You may discover something useful there.

###Closing thoughts
I understand that not everyone is bothered by the poor performance of an application, especially those who work with it less frequently. Nevertheless, I think I and many others would be happier using a better program than *Postman* is today.

This is the reason I started working on *Carger*. [*Carger*](https://www.carger.dev) is a cross-platform, minimal, and fast API Client for manual APIs testing.

I will document *Carger's* development journey on *Twitter*. If this sounds interesting, [**follow me there**](https://twitter.com/mrmykey_).