That's my job, i'm a software engineer dealing with firmware of microcontrollers Everyday i need to deal with memory addressing, SPI and UART commands handle, automating functions and so on... I use to write my own C software on PC too, to solve some automation problem in a quick way