Funnily enough, the Moonlander was not this for me. It's programmable, but the round-trip time for programming meant that I didn't modify it often, and only modified it in significant ways, which meant I'd then forget key combinations immediately. This was particularly prevalent for anything where you have to tune responsiveness/movement/timing.
I switched from a Moonlander to a UHK, and the programming time is ~instant. You click flash and in 1-2 seconds it's done. For the Moonlander you have to download the firmware, find the file, drag and drop onto the flashing tool, and wait 10+ seconds. It's amazing how much of a difference that made for me.
So yes, get a keyboard with programmable keys, but not all are created equal, find one that lets you have a very tight feedback loop and you'll be so much happier.