If you work with enough programmers, eventually you’ll work with a fan of mechanical keyboards.
My first mechanical was the Poker II. At the time, I used Vim bindings for programming, in both IDEA and Emacs, and the Poker II is a great keyboard for Vim fans. It features a 60% layout, the backtick key is mapped to escape, and it’s programmable. You can reprogram many of the keys and key combinations as well as program simple macros into the keyboard. It’s a great keyboard, but if you can read and write C code, I wouldn’t recommend because it’s not programmable enough.
If you’ve used MacOS, you’ve probably noticed that all the keybindings that would use the Control key instead use the Command key. I use MacOS at work and a combination of Windows and Linux at home. This switching throws off your muscle memory if you don’t think before hitting a key combination. Luckily there’s a simple solution: move the Control key on Windows and Linux to where the Command key is on MacOS.
This can be done on Linux with setxkbmap -option altwin:ctrl_alt_win and on Windows with SharpKeys. In addition to moving the Control key, the Windows key should be used for Alt since Alt is now Control and Control can now be used for Windows. You can now use your thumbs for both Control and Alt not worry about squeezing your pinky onto Control since you never use the Windows key. All the usual keyboard shortcuts use the same hand movements with the only notable exception being Alt-Tab.
What does any of that have to do with programmable keyboards? Well, now that Control is super easy and comfortable to press, the standard Emacs bindings seem much more appealing. I switched to Emacs bindings full-time, but the Poker II does not let your remap the Fn and Pn keys. Since Fn takes up the right Windows key, I don’t have something to use for right Alt. So I switched to a tenkeyless keyboard, but was really missing the 60% layout.
Enter the KBParadise V60 Type R. The V60 Type R is a fully programmable keyboard. Fully programmable means that you have full access to the firmware, in this case QMK, and can fork the firmware with whatever changes you can code up. This means I get my 60% layout as well as a right Alt key. I can program the exact keyboard layout I want into the firmware as well as arbitrarily complex macros, like the null-cancelling movement script I like to use in Team Fortress 2.