Programmer’s Best Friend: The Mechanical Keyboard

CS student at Charles University in Prague, backend developer, mechanical keyboard fanatic, amateur piano and guitar player.

Other professionals use professional tools, yet we spend our whole day in front of a $5 rubber dome keyboard. Investing in a nice mouse for gaming or productivity is nothing new, so why are keyboards neglected? It is the single most touched item of developers (especially Linux nerds with tiling window managers), might as well touch something nice.


Most keyboards are made from a sheet of rubber domes that make contact with a membrane. This is the cheapest way to produce a keyboard, so it is not surprising it replaced the mechanical switches of yore.

Mechanical keyboards generally use discrete switches that are composed of a slider on a spring that connects a set of metal contacts when depressed.

However, the definition of “mechanical” actually isn’t agreed upon. Some membranes (buckling spring such as IBM Model M) and rubber domes (electro-capacitive such as Topre) are considered mechanical, so the term is often used as a synonym for “whatever feels good”.

However, this isn’t ergonomic unless you have two right hands.

Why though?

So, what are the benefits of using such an outdated, expensive mechanism?

  • Speed & accuracy: With the right choice of switches and keyboard layout (how physical keys are distributed on the keyboard), you can become much faster and more accurate. It’s easier to detect when the switch was actuated, and the longer travel helps avoid accidental key presses.
  • Health: While not limited to mechanical keyboards, it’s easier to purchase/build a mechanical with an ergonomic layout. When paired with the right choice of switches, this can make typing a lot more comfortable over longer periods and even help prevent injuries such as Repetitive Strain Injury (RSI).
  • For example, simply removing the numpad or moving it to the left helps alleviate shoulder pain since you’re not forced to use an off-center typing position and stretch your arms so wide while using a mouse.
  • The “standard” layout uses staggered rows because our typewriters would otherwise jam, and we kept this tradition until today. However, this isn’t ergonomic unless you have two right hands. This is why a lot of people type ‘c’ with their index finder, it’s simply more comfortable since the keys are staggered against the natural curve of your left hand.
  • Durability: Discrete mechanical switches are rated upwards of 50 million keypresses, this means your new board will last for generations. While you can just keep rebuying the same $5 rubber dome every few years, over time the cost will equalise. Some vintage boards are actually highly desired, you can spend hundreds of dollars on an IBM beamspring or switches harvested from a single Nixdorf board.
  • Aesthetics: Your keyboard is the centerpiece of your desk, there’s no reason it shouldn’t look good. Most switches use the Cherry MX standard, which is compatible with lots of third-party keycaps that are easy to replace your stock keycaps with. It’s also possible to improve the acoustics, there’s also no better sound than that deep, satisfying *thock* (or *click*, if you’re into that).
Customisability: Going the DIY route allows you to build the keyboard that precisely suits your hands and needs. Credit: foostan

Make it your own

The biggest draw, in my opinion, is the customisability. Invent your own “frankenswitches” and make them extremely tactile, clicky, light, heavy, silent or smooth (yes, there are lubricants for switches). Replace your case with one made of wood, polycarbonate, aluminium or brass. Or just pour yourself a concrete case.

Any amount of RGB lighting is feasible. You can go with no lighting, single static colours, rainbow effects, or all the way to playing Snake using the LEDs as a grid.

Once you’re not constrained to pre-built keyboards, you can arrange the keys in any way imaginable and use as many or as few as you want. There are layouts that are very usable with 46 keys arranged in a grid and split into two halves or layouts with dozens of dedicated macro keys above a standard size keyboard.

The keyboard also serves as a vessel for other peripherals. With enough effort, your keyboard can sport a volume/scrolling knob, TrackPoint, trackball, joystick, display, speaker or even a mouse sensor in the bottom.

If your dream board doesn’t exist, just make it! There are plenty of useful guides on creating your own PCB from scratch or just hand-wiring the switches manually to a 3D printed case. Some of these projects grow into community group-buys, where the price is reduced by buying and manufacturing components in bulk.

No matter whether you just dream of making a giant enter key, there’s no one to stop you. The possibilities are endless!

Keyboards are like onions

“How do you even type numbers? Or press function keys?” is what I get asked every time someone stops by my desk for the first time.

Similarly to how pressing “Shift” moves you to a different layer by changing all letters to capitals and numbers to special characters, smaller keyboards use custom layers to define the keys that lack their corresponding physical buttons. We don’t use separate keys for lower- and upper-case letters, maybe we don’t need to separate between numbers and function keys. This is just one of the examples of programming your keyboard, which is the greatest way to customise it and optimise the way you use it.

The most common firmware used in custom PCB’s is QMK, which allows you to program anything from changing the base keys, adding multiple layers or macros, all the way to making your keyboard work as a MIDI piano with a built-in piezo speaker. The firmware is open-source and written in C, so you can always help extend it with more functionality or add support for your one of a kind hand-wired board.

Layers: You can make any key on the keyboard any other key on the keyboard!

Membrane bad, mechanical good

Despite all of what I just wrote and what some tech reviewers might try to tell you, mechanical keyboards are not necessarily better for everyone. Some will simply find their laptop keyboard more comfortable and accurate and see no benefit from extremely ergonomic keyboards that are tedious to learn how to use. And that’s alright. In the end, your laptop keyboard sends the same exact characters as a thousand-dollar custom build.

But it’s absolutely worth a try. Best thing you can do is try out a lot of different variations of layouts, switches and keycaps and see what suits you. Find your nearest keyboard nerd/enthusiast (they’ll happily talk your ear off), or better yet, visit a local meetup.


A huge reason why enthusiasts don’t just buy a single keyboard and keep it forever is the community. It is honestly the nicest online community I’ve ever joined. As an example, the subreddit reached over 600k members and even though you always find some bad apples in a community this big (usually elitists), most members are just incredibly supportive and willing to help you find and build your “endgame”. There are also plenty of giveaways, charity projects and meetups. Speaking of which, the first public Prague meetup is taking place at the end of August, hope to see you there! 👀

Mechanicon: The biggest EU keyboard meetup had over 300 participants. Credit: u/chiptug
CS student at Charles University in Prague, backend developer, mechanical keyboard fanatic, amateur piano and guitar player.

More About &