professional software development: "write normal code that people can understand"
hobby firmware development: empty while loop at the start of main waiting for a global boolean that's initialized to false and never written to, and then I have a script on the host side that greps the list of symbols in the firmware binary for that variable and uses a debugger to write a 1 directly into RAM at its address
so now my thing pauses on boot until I'm ready for it to continue