I am an SRE who does bit of a coding, but now I want to pivot towards system programming. I know I should try Rust and may be even GoLang, but I very much believe I should also know good C, and by good I mean system-programming-level C.
I will follow this up with learning gcc a bit, valgrind, strace and gdb.
Any tips, recommendations?
While those are necessary, I'm of the opinion that you don't really learn unless you do. For systems programming, there are many good projects out there for you to poke at. I'd suggest getting a hold of the source code for Linux, FreeBSD, and OpenBSD. Learn how to build each of them, and install/run what you built to a VM. Then making a simple device driver for a serial or USB device would be a good introductory project. Even better, get an Arduino or something similar, and make/program both ends. Maybe a little button/light box that blinks if the CPU thermal throttles and can instruct the computer to launch an application when buttons are pressed for example.
At the end of the day, you're just going to have to find something you're interested in actually doing/finishing so you can stay motivated enough to push your self up the learning curve, just like learning anything else really. The fact that you'll be reading/writing/learning C is nearly irrelevant.