gofri Why two g's? When I was a kid my grandma called me Gofri, and the family picked it up. She said the G hard, almost twice, so I write it twice.
demo stage

Dashboard cold-load performance

for
Veritran
when
2026
Problem
A recommendation dashboard took 10–20 seconds to show anything on a cold load.
My contribution
Owned one performance change in a recommendation app.
Delivered
Lighthouse cold-load FCP under 200 milliseconds. Self-reported; I owned this change only.
Result
Lighthouse cold-load FCP under 200 milliseconds, with the real chart data shown while the AI sections finish.
Status
demo stage · 2026

<200 mscold-load first paint, from 10–20 s (self-reported)

what I foundThe slow part was the AI-generated sections, and the first paint waited for them.

Nothing paints until every section, the generated ones included, is ready.

Spend by category
Trend over time
Top items
Generated summary
Generated recommendations

Nothing paints until every section, the generated ones included, is ready.The real chart and table data paint first; generated sections show a loading state, then fill in.

The same dashboard, before and afterreconstruction, illustrative

render path

Data first, the slow part after

  1. 1Cold loadthe page asks for its data
  2. 2Charts return firstthe callback returns the real chart and table data without waiting for generated text
  3. 3Slow work moves outthe slow LLM calls run on background worker threads
  4. 4Users read the dataslower sections stay in a loading state while people inspect the real data

guards

What keeps the slow work in check

  • Semaphorelimits how many slow generations run at once
  • Retrya failed generation is tried again
  • Request-id guarda late result for an old request is not shown in place of the current one
  • Pollingthe interface checks every two seconds for completed reports
  • Cachesuccessful responses are cached by context and features

limit

First paint is not readiness

This improves first render, not AI generation time. The checked-in code polls for completed results; it does not stream tokens.

ownership

Who did what, and when

  1. cold load waited for everything
  2. charts first, slow work in the background
  3. measured with Lighthouseself-reported
  4. first paint under 200 ms
  • MeThis one performance change: charts first, slow generation in the background
  • The rest of the recommendation appNot mine
  • AI generation timeUnchanged; only the first render improved
  • Lighthouse reportSelf-reported; no report was saved

What shipped

Cold-load first paint went from 10–20 seconds to under 200 milliseconds.

self-reported Lighthouse result; no report was saved
  • Lighthouse cold-load FCP improved from 10–20 seconds to under 200 milliseconds.
Method and caveats

Self-reported Lighthouse result; no report was saved. FCP is not a full usability or inference-completion metric. Deployment to a customer was not confirmed, so this is shown as demo stage.

  • Lighthouse cold-load FCP, 10–20 seconds before and under 200 milliseconds after: self-reported, no saved report
  • FCP is not a full usability or inference-completion metric
  • Ownership: this one change only. Deployment to a customer was not confirmed, so the stage is demo
  • Section names and the before/after page above are a reconstruction