![[images/The Ridiculous Engineering of Loading Screens.webp]]
**Creator:** Enrico Tartarotti · **Published:** 2026-03-20 · **Length:** 15:04 · [Watch on YouTube](https://www.youtube.com/watch?v=XqhduyTnEM8)
> *Loading screens seem simple, right? Well, they actually hide a ridiculous amount of engineering.* (from the video description)
An entry in Enrico's "Ridiculous Engineering" series about how waiting is designed, and why how you wait matters more than the wait itself. Sponsored by **Vanta**. Written by Enrico Tartarotti; produced by Enrico Tartarotti and Bartek Malinowski; edited by Seequence.
*Summary written from the auto-generated captions and sampled frames; the video has no chapter markers, so section times below come from the captions. The captions garble several names ("Kevin System" for Kevin Systrom, "gold gradient" for goal gradient, "Advent" and "venta" for Vanta, "Lask" for Flask); the correct names are used below.*
## 1) Detailed outline
### [0:00] How you wait matters more than the wait
- Loading screens look simple but are some of the most intricate pieces of our tech.
- **Demo:** a Submit button shows a spinning wheel while waiting for confirmation. On a fast connection the spinner flashes so briefly it looks like an error, and you don't trust that an important form actually went through.
- Enrico adds a **one-second minimum display time** for the spinner. The wait is technically longer, but the result is far more reassuring.
- He says there's an enormous amount of design, engineering and psychology behind loading screens, and it works so well that almost nobody notices. He frames the video as **three layers**.
### [0:50] Layer 1: Getting rid of loading (optimistic UI)
- Why does a form make you wait for confirmation when typing in **Notion**, designing in **Figma** or writing in **Google Docs** feels instantaneous, with no loading screen and everything saved correctly? In many cases you can remove loading altogether.
- **Flask's version:** early users of Enrico's video-collaboration app complained they had to wait for each comment or recording to save before making the next one.
- He adopted the same technique as those tools: **assume everything succeeds**. Any change displays immediately and goes into a **queue**; the app works through the queue saving changes one by one in the background. A **second queue** handles the audio and video of comments.
- Only when saving fails is the user notified, and the change stays in the queue so they can retry later. All that complexity just to remove a few loading screens.
### [2:05] Why instant can feel wrong
- Back to the important form: the instant version is technically better, yet people trust the slower one with a spinner more, even though both saved the data.
- Loading screens aren't just placeholders; they play with our psychology. During design work with dozens of tiny changes a minute, constant loading frustrates us. For things we consider important, like a **payment confirmation** or sending files, the bytes may be tiny, but we need a loading state to reassure us the important goods arrived.
- **The Instagram crush example:** scrolling an old profile, you're on edge about accidentally liking a five-year-old photo because liking was designed as an instant action with no loading or confirmation. For that one profile, a like carries much more weight. Enrico promises more of this psychology in layer 2.
### [3:18] Why progress bars are always wrong
- Layer one is the design *and* engineering of how you wait. Example: a file copy stuck at 99%, with estimates jumping from 5 minutes to 35 to 12. (Frames show the classic Windows XP "Moving..." dialog.)
- **Building one step by step:**
- Count files and update as each finishes: breaks when there's one giant file among many small ones.
- Count total megabytes instead: copying many small files takes longer than one big file of the same size because of how file systems work.
- Divide megabytes transferred by elapsed time: wrong when speed changes partway, for example when you start another transfer.
- **Best practice:** take a window of recent time, say the last 10 seconds, average the transfer speed over it, and use that for the prediction.
### [4:29] Making the wait *feel* faster
- **Backwards ribbing:** researcher **Chris Harrison** at **Carnegie Mellon** found that adding stripes to a progress bar and moving them backwards, against the direction of progress, makes it feel about **11% faster**. That's why the shimmer animation on progress bars is everywhere; it isn't just decoration.
- **Animated vs. static indicators:** two loaders of the same duration; the animated one feels faster because it signals that something is happening.
- **Flask's spinner:** Enrico's asset-loading spinner felt slow, so he **doubled the rotation speed**. Load time was identical, but it felt much faster, as if more was going on.
### [5:34] Pre-loading: Gmail and Instagram
- In an interview clip, **Kevin Systrom** recalls the **Gmail** team's trick: once you've typed your username, you're very likely to sign in, so the account starts loading in the background before you enter your password.
- He later co-founded **Instagram** and applied the same idea: the photo started uploading while you were still on the caption/edit screen, assuming you'd post it and deleting it if you didn't. When people pressed Done, the little progress bar just zipped across.
### [6:38] Teaser for layer 3, then sponsor (Vanta)
- Two chatbots, same AI model, same answer, yet most people say the second one gives the better, more accurate answer. That's layer 3: loading screens, AI and the perception of intelligence.
- **Sponsor (about 7:00 to 8:05):** many viewers are founders, CTOs, designers and engineers. Once a product gets traction, enterprise customers ask whether you're **SOC 2** or **ISO 27001** compliant; Enrico says this happened to him with Flask. **Vanta** automates security processes and compliance across more than 35 security and privacy frameworks, including SOC 2, ISO 27001 and **HIPAA**. Offer: $1,000 off at vanta.com/enrico.
### [8:05] Layer 2: The psychology of waiting
- **Google Flights:** behind the search, the builders have to query flight infrastructure dating back to the 1980s, which takes time, so they added little status messages. **Skyscanner** does the same ("Checked 26 of 44 providers" in the frames).
- **Harvard Business School study:** users were willing to wait longer, and rated the product more favorably, when these messages appeared, because they believed the system was searching thoroughly.
- On Skyscanner the messages name real airlines and providers for the route, but you can fake them with the same effect: Enrico says Google Flights shows the same pre-programmed messages, taking the same time, on every search.
- You can even write absurd ones, like **The Sims'** famous loading text ("Reticulating splines," "Adjusting emotional weights"), or show other things to keep people occupied.
### [9:10] Occupied time feels shorter
- A core principle from the 1985 paper **"The Psychology of Waiting Lines"**: occupied time feels shorter than unoccupied time.
- **Uber** shows the car moving toward you in real time when it could just say "three minutes"; watching it keeps you occupied.
- **Domino's Pizza** shows every step of your pizza's preparation, because it's easier to shrink perceived wait time than to deliver the pizza faster.
### [9:53] The goal-gradient progress bar
- Two loading bars with the same total time: the one that speeds up near the end feels faster. This is the **goal-gradient effect**: we speed up when the finish line is in sight, like Enrico finishing school projects in the last hours before a deadline.
- So a loading bar can artificially go slower at the start and accelerate near the end, layered on top of the speed calculations from earlier. It can even take longer overall and still feel faster if the final 10% moves quickly.
### [10:32] Video games and patented minigames
- Games load slowly and get more creative than "your tax software." In **1994 Namco** released **Ridge Racer** on PlayStation; while it loaded you could play a full round of **Galaxian**, and completing it unlocked eight extra cars.
- Namco **patented** the idea, so for 20 years no one else could put a minigame in a loading screen. (Frames also show a Portal 2 loading screen and the Windows XP boot bar.)
### [11:00] Why it matters now: AI made us wait again
- Laptops wake instantly and processors and connections are fast, so we barely see loading screens. But since late November 2022 (Enrico says November 28; ChatGPT launched November 30), we spend much more time waiting, for **AI chatbots**.
- Compared with the rest of our tech, chatbots are incredibly slow, and waiting is now tied to how intelligent we perceive these models to be. Frames show agent-style status text like "Searching Slack, Google Docs, and HubSpot."
### [11:48] Layer 3: Waiting and the perception of intelligence
- Back to the two chatbots: most people pick the one that takes longer and writes word by word, because it feels smarter and more thoughtful, as if it's thinking.
- **Flask's AI comments:** instead of typing long feedback, you hit record and ramble, show your screen and draw on an asset; Flask analyzes it and writes the comment for you. Enrico designed a loading state with status text, a shimmer effect and a pixel grid while waiting for **Gemini** to return the full answer.
- His first version showed the answer all at once, which felt weird to users and to him. So even though the full message had already arrived, he made **each word appear sequentially with a delay**. Same answer, same model, more time, but it felt magical, as if someone were writing for you, and users trusted it more. This is the "purposely made users wait longer" he promised earlier.
- **ChatGPT** and **Claude** genuinely stream responses, since the models predict the next word and send output as it's generated.
- We could run the original **GPT-3.5** ChatGPT model from November 2022 almost instantly, but nobody would use it: with AI we don't want the fastest answer, we want the one that makes us trust it.
### [13:34] The effort heuristic and Google's AI Overviews
- The **effort heuristic**: if something took longer, it must be better. It applies to how we judge machines as well as people.
- **Google** has always been proud of speed, even showing how many milliseconds a search took. To keep **AI Overviews** fast, Enrico says Google has to use less intelligent models, so every mistake breaks trust. The speed that made Search powerful now makes its AI feel unreliable.
- His counterintuitive prediction: as AI improves, we won't stop waiting. We'll keep wanting models that make us wait, within reason (not three hours), because the wait signals intelligence.
### [14:27] Outro: tech running at two speeds
- Why do we have AI that replaces jobs and billions spent on AR and VR goggles, yet **AirDrop** still fails and **printers** are still awful? Enrico says it's because of one of the weirdest laws deciding how tech gets built, and points to his next video.
## 2) Things mentioned
### Design and psychology ideas
- **Optimistic UI**: show a change as successful immediately and save it in the background, alerting the user only on failure.
- **Background save queues**: Flask's two queues, one for comment changes and one for audio and video uploads, with retry on failure.
- **Minimum spinner duration**: holding a loading state for about a second so fast confirmations feel trustworthy.
- **Progress-bar estimation**: why file counts, total bytes and simple averages fail, and why a rolling 10-second speed window works best.
- **Backwards-moving ribbing / shimmer**: stripes moving against progress make a bar feel about 11% faster.
- **Pre-loading / speculative work**: Gmail loading your account after the username, Instagram uploading during captioning.
- **Labor illusion**: status messages showing the system "working" make people more patient and more satisfied.
- **Occupied vs. unoccupied time**: from "The Psychology of Waiting Lines" (1985).
- **Goal-gradient effect**: accelerating a bar near the end so the whole wait feels faster.
- **Effort heuristic**: things that take longer seem better, including AI answers.
- **Word-by-word streaming**: real in ChatGPT and Claude, simulated in Flask to build trust.
### Apps, services and products
| Item | Role in the video |
|---|---|
| **Flask** (flask.do) | Enrico's video-collaboration app; source of the optimistic queue, faster spinner and simulated streaming examples. |
| **Notion, Figma, Google Docs** | Tools where edits feel instant because they skip loading. |
| **Instagram** | The nerve-racking instant like, and Systrom's pre-upload trick. |
| **Gmail** | Pre-loading the account once you enter a username. |
| **Google Flights** | Status messages over 1980s-era flight infrastructure; Enrico says they're pre-programmed. |
| **Skyscanner** | Status messages naming real airlines and providers. |
| **Uber** | Live car-on-the-map view to fill the wait. |
| **Domino's Pizza Tracker** | Step-by-step pizza progress that shortens the perceived wait. |
| **ChatGPT (GPT-3.5), Claude, Gemini** | AI chatbots whose slowness and streaming shape perceived intelligence; Gemini powers Flask's comment writing. |
| **Google Search and AI Overviews** | Speed-first search whose fast AI answers lose trust when wrong. |
| **Windows XP file-copy dialog and boot screen** | Visuals for unreliable progress bars and classic loaders. |
| **AirDrop, printers** | Everyday tech that still doesn't work well. |
| **AR and VR headsets** | Big spending that Enrico contrasts with unfixed basics. |
### Games
| Item | Role in the video |
|---|---|
| **Ridge Racer** (Namco, PlayStation, 1994) | Playable **Galaxian** during loading; beating it unlocked eight extra cars. |
| **Namco's loading-minigame patent** | Kept others from putting minigames in loading screens for about 20 years. |
| **The Sims** | Joke loading messages like "Reticulating splines" and "Adjusting emotional weights." |
| **Portal 2** | Its loading screen appears in the frames. |
### Research and sponsor
| Item | Role in the video |
|---|---|
| **Chris Harrison's progress-bar research** (Carnegie Mellon) | Backwards ribbing feels about 11% faster. |
| **Harvard Business School study** | People wait longer and rate products higher when they see the system working. |
| **"The Psychology of Waiting Lines"** (1985) | Source of "occupied time feels shorter." |
| **Vanta** (vanta.com/enrico) | Sponsor; compliance automation for SOC 2, ISO 27001, HIPAA and more than 35 frameworks. |
### Companies
- **Google**, **Instagram/Meta**, **Notion**, **Figma**, **Skyscanner**, **Uber**, **Domino's**, **Namco**, **Sony** (PlayStation), **Microsoft** (Windows XP), **Apple** (AirDrop), **OpenAI**, **Anthropic**, **Vanta**.
## 3) Biographies
### Enrico Tartarotti (host, writer, producer)
Italian-born tech creator and designer behind the YouTube channel **Enrico Tartarotti**, where he goes behind the scenes of the design, psychology and stories of everyday tech. He's building **Flask** (flask.do), a video-collaboration tool where recorded, rambling feedback is turned into written comments by AI, and several of this video's examples come from building it. He offers one-hour calls through enricotartarotti.com, handles sponsorships through **Rakugo Media**, and is on X as @EnriTarta and on Instagram as @enritarta.
### Crew
- **Bartek Malinowski**: co-producer of this video.
- **Seequence**: the editing studio credited for the video.
### People referenced
- **Chris Harrison**: human-computer interaction researcher at Carnegie Mellon University's Human-Computer Interaction Institute, where he leads the Future Interfaces Group. His progress-bar studies, including the CHI 2010 paper "Faster Progress Bars" with Zhiquan Yeo and Scott Hudson, found that visual tweaks like backwards-moving ribbing change how long a wait feels. He appears on stage in a clip.
- **Kevin Systrom**: American entrepreneur who worked at Google, including on Gmail, before co-founding Instagram with Mike Krieger in 2010 and serving as its CEO through and after Facebook's roughly $1 billion acquisition in 2012. He later co-founded the AI news app Artifact. He tells the Gmail and Instagram pre-loading stories in an interview clip.
- **David Maister**: author of the 1985 paper "The Psychology of Waiting Lines," written while he was at Harvard Business School, and later known for books on professional service firms. The video cites his paper but doesn't name him.
- **Ryan Buell and Michael Norton**: Harvard Business School researchers whose 2011 work on the "labor illusion" showed people prefer, and will wait longer for, services that show the work being done. This is very likely the HBS study the video refers to, though it isn't named.
### Organizations referenced
- **Carnegie Mellon University**: Pittsburgh research university where Harrison's progress-bar work was done.
- **Harvard Business School**: home of the waiting and labor-illusion research the video cites.
- **Namco**: Japanese game company behind Ridge Racer and Galaxian, and holder of the loading-minigame patent.
- **Google**: maker of Gmail, Google Flights, Google Docs, Gemini and AI Overviews.
- **Instagram**: photo app co-founded by Systrom, now owned by Meta.
- **Vanta**: compliance-automation company sponsoring this episode.