Do you have any resources / books for writing modern C like this or is it all experiential from the trenches?
No, sorry.
>is it all experiential from the trenches?
It's mostly about applying general principles of software construction like separation of concerns, encapsulation, robust interfaces, etc.