I started doing embedded programming in 1992. In those days, spirits were brave, the stakes were high, men were real men, women were real women, small furry creatures from Alpha Centauri were real small furry creatures from Alpha Centauri, and programmers knew the source of the misquote (). Writing embedded code usually meant coding in assembly language, counting bytes, and working with hardware emulators, oscilloscopes, and maybe even a logic analyzer if you were lucky. It might take a couple of hours to trace a simple problem and another hour to fix the assembly code.
By the turn of the century, we had readily available cross-compilers, from C++ to multiple embedded microprocessors and micro-controllers. We even had debuggers that let us step through the code and check the contents...