← Projects

data analysis · visualization · sports domain

F1 Data App

A published web application that analyses Formula 1 races and qualifying sessions from the public Ergast and FastF1 APIs: the grid, lap times, position evolution and pace distribution.

Role
Author
Period
March - August 2024
Status
shipped
Visibility
public repository

What it is

A web application that takes public Formula 1 data and turns it into something you can look at: the starting grid, the qualifying times, how the order changed lap by lap, and how the pace of each car was distributed.

I built it because I wanted to know things the broadcasts do not tell you, and it ended up being the project with which I learned to fight with real public APIs.

What I learned

Public F1 data looks clean and is not. There are laps that race control voids, cars that retire mid-lap, sessions that arrive in a different format depending on the season, and gaps in the telemetry that are documented nowhere.

None of that appears in a tutorial. It appears when you are two weeks in, the view of a specific Grand Prix breaks, and you do not know why.

I also learned that the visualization that cost me the most is the one that gets used the least: the lap-by-lap position evolution explains a race better than any table, and it is not the one people reach for first.

What I would not do the same way

Versioning cache/ and data/. The repository weighs 732 MB because of data that can be downloaded again, and a public repository that size is a bad signal on a profile, regardless of what it contains.

And leaving it as a notebook. I turned it into an application and did not give it a single test, because “it is just a demo”. It now has two-year-old dependencies and I do not know whether it starts without touching anything, which is exactly what happens when a demo is not cared for.

Terminal mode

german@portfolio: ~/portfolio26 cmds