Case study / Production software

When Every Score Counts.

Virtius Meet Viewer / Next.js, React, TypeScript, GraphQL, and Playwright

I worked on the part of a live gymnastics meet that nobody wants to notice: loading the scores quickly and displaying every athlete, ranking, and decimal correctly.

RoleSoftware engineering intern
AudienceAthletes and fans following live meets
Product scaleSeasonal audience of 150,000+
StackNext.js, React, TypeScript, GraphQL, Playwright

01 / Context

Built around live-meet pressure

The Meet Viewer serves a seasonal audience of more than 150,000, with traffic concentrated around live meets. Scores, rankings, and athlete status have to stay readable while the underlying data keeps changing.

I joined an established product with an existing request flow and scoring rules. My job was to understand those rules before changing the interface around them.

Contribution boundary

I worked on the meet-viewer branch and its user-facing behavior. I did not build the entire Virtius platform, scoring operation, or underlying competition infrastructure.

02 / Contribution

Load it faster. Keep the score right.

LoadingTrace the data path

I worked through API handling, caching, and client/server boundaries so the live view did less unnecessary work.

ScoringRespect the ugly edge cases

Three- versus four-decimal scores, exhibition athletes, and rankings all affected what the viewer should show.

InterfaceKeep a changing meet readable

I adjusted presentation and interactions so users could follow current results without losing the competition’s context.

Virtius meet viewer showing current gymnastics scoring
Production interfacePublic live-system screenshot

03 / System

From GraphQL response to live result

01Meet data changes

Competition, team, athlete, and score data update while the meet is underway.

02The application resolves state

GraphQL requests, caching, and client/server boundaries determine what reaches the viewer.

03The interface applies scoring rules

Precision, rankings, filters, and exhibition status shape what the user sees.

04 / Verification

Changes had to survive live data

The earlier Virtius experience became my best documentation for the request contract. I traced that flow first, then used Playwright checks, visual comparisons, and known scoring cases to catch changes that looked fine with one meet and failed with another.

Verification evidence

Playwright checks, scoring display cases, and visual comparisons.

05 / Result

The product is live. The private metrics stay private.

My changes covered loading and data-handling paths, scoring display cases, and interface behavior in the production viewer. The system itself is public; internal performance measurements and company engineering data are not, so I’m not turning either into a made-up percentage.