Three school years of on-and-off work rebuilding the macOS interface in Scratch: windows, menus, and a working login screen.
The password system is the piece I remember most. Getting a program to hold a secret and check it against input was the first time software felt like it had rules of its own.
What it taught me
The engineering process — plan, build, test, and go again
That recreating an interface teaches you why its choices were made
Basic program state, and how a login gate has to hold it