While implementing a byte-to-hex converter in C for an 8-bit ATmega4809 AVR microcontroller, the author discovered that the compiler already used the AVR's SWAP instruction to efficiently isolate nybbles — something the author thought would require manual optimization. The post serves as a reminder to inspect disassembly output and measure speed-critical code paths rather than assuming you need to outsmart the compiler. It also covers various algorithmic options for byte-to-hex and hex-to-byte conversion on constrained hardware, and raises the question of how to reliably trust compiler optimizations across code revisions.