Now TDD cargo culting of writing tests before working code, or even actual design of data structures just seems nonsense to me.
It only works for CLI demos of simple tools, or data processing pipelines.
Anything else seems convoluted, without a sound architecture design, and just impossible in some scenarios, e.g. GUI code, UI/UX.
Tests should be a mix of unit, module and integration tests, written after the architecture design, overall UI/UX design process, performance analysis if the chosen data structures are the best ones for the case at hand.