In the summer of 2020 I experienced quite severe wrist pain that limited my ability to type for extended periods of time. In order to fix it I decided to relearn typing: I switched to Ergodox EZ keyboard and Colemak layout, and I started typing with all my fingers. Here's how I decided on this approach and how it went.
While we certainly won't find software developers on the list of most dangerous professions, it doesn't mean that as programmers we're free from any health concerns. Prolonged sitting, lack of physical activity, and constant exposure to screens is more than enough to cause some long-term problems.
Having worked as a developer and manager for more than 10 years, I'm not a stranger to some of these issues. The first time I started having problems with my wrists was around 2016. Occasional pain over time grew into a larger issue, where at times I had to take an hour break from typing, because it was too painful.
Around that time I bought my first ergonomic keyboard. I replaced my beloved Apple Magic Keyboard with a split, mechanical Matias Ergo Pro. It was a wonderful keyboard, but unfortunately broke pretty quickly (and the replacement I got broke even faster...). I had it long enough to help my wrists recover though, and after a few months I moved back to Apple keyboard, and I forgot about the pain for some time.
Then in summer 2020 the pain came back, and it was as strong as ever. This time I decided not only to buy a better keyboard, but also completely change my typing habits.
The pressure (on my wrists)
Before I get to how it worked and why I thought it would work, let me explain how classic keyboards put a pressure on our wrists and how ergonomic keyboards (some better than others) ease that pain.
Our arms and wrists are very flexible, but not every position is equally comfortable or easy for them. The most natural position is when the arm is straight and the palm of the hand is turned towards the rest of the body. When we rotate our palm so that it can lie on the desk, the forearm is twisted, and you can feel that the muscle is more tense. Basically every modern keyboard (besides some very niche vertical keyboards) forces us to use the less comfortable position.
That's not all: there are 2 more dimensions in which we put a pressure on our wrists. The first one is left-right rotation. The most comfortable, resting position for our wrist when it's in straight line with the forearm, like a natural extension. Whenever we rotate the wrist, left or right, we put a pressure on it. Again, most modern keyboards require us to rotate our wrists and keep them in this uncomfortable position.
The 3rd, last dimension is up-down. The resting position here is when the hand can be loose and hang comfortably slightly below the wrist level. When we put our wrists on the table, we force our hands to be at least on the same level, if not higher, which pus a pressure on the wrist. The healthiest position when using a keyboard is to float our hands above the keyboard level. Unfortunately very few people do that, instead we put our wrists on the table or palm rest. Thick keyboards or keyboards that have a positive tilt (like the Apple keyboard on photo below) make it worse.
So we have 3 issues here. The only keyboards that offer a full solution to all the problems are vertical keyboards, but again, I've never seen anyone using them. However, it's still possible to minimize the strain on our arms with using ergonomic keyboards:
- arm twist can be eased by a tented keyboard, so that the twist is not 90°, but 70° or so (btw this is also why ergonomic mouses are way better than trackpads)
- wrist left-rigth rotation can be solved by using split keyboard, where 2 halves can be placed a few centimeters away from each other
- wrist up-down position can be improved by keeping forearms up in the air instead of resting them on the table
There are a few split, tilted keyboards available in the market:
- Matias Ergo Pro that I mentioned earlier – it has a great design and I hope the quality has improved over the last few years
- Moonlander by ZSA, producer of Ergodox
- Ultimate Hacking Keyboard
- Dygma Raise
All these keyboards partially address the 3 problems I mentioned above, but there's more to the problem than that.
I move my hands a lot
One of my issues when typing is that I move my hands a lot all over the keyboard. It's a combination of 3 different reasons.
The first one is that when I was learning how to type as a kid, I didn't learn proper practices. Instead of using all 10 fingers, I relied mostly on 5: both middle and index fingers, left thumb, and occasionally ring fingers. That still allowed me to type at 110WPM (words per minute), but it forced me to move my hands a lot.
The second reason is that I have small hands and the standard, staggered keyboard layout makes it hard for me to reach some keys, especially Y and [. Every time I need to press one of these keys I need to extend my finger and move my hand a bit.
Finally the last reason is the QWERTY layout, which is a crime against fast, comfortable typing. No, I mean it, it was specifically designed to slow down typists 150 years ago when physical typing machines could get blocked if letters next to each other were typed one after another. Yet due to that archaic limitation we're still using that keyboard layout till now.
When I decided to fix my typing habits for good, I decided to fix all these 3 problems:
- I would start typing with all my 10 fingers
- I would look for a keyboard that allows me to reach keys easier, and configure the keyboard layout
- I would replace QWERTY with something better (which is essentially any other layout out there)
In order to do that I chose Ergodox EZ as my new keyboard. It features an columnar (sometimes mistakingly called ortholinear) layout and makes it trivial to swap keycaps due to a flat keycap profile.
As you can see on the photo above, Ergodox EZ is a rather unusual keyboard - it is split, tented, has a number of additional keys, and has an ortholinear layout. You can also see that I rearranged the keycaps to that it matches the Colemak layout I decided to use. All of this makes it very unique, and yet every single feature makes this keyboard great.
So back in summer 2020 I decided to change my typing habits. In the beginning it wasn't easy, but 18 months in I can't imagine going back.
18 months of progress
The first couple of weeks were tough. I knew my typing speed would go down, but it was very frustrating. I helped myself by rearranging the keys so that I could look at the keyboard and find the key I need to press, but it still was unbearably slow. Yet, after the first month or two I started feeling comfortable with the new way of typing. I stopped looking at the keyboard, I made fewer mistakes, and most importantly my wrists stopped hurting.
It's been around 1.5 year since I relearned how to type and I consider it a successful experiment. There are still some caveats, notably I still type slower than I used to (~90WPM vs 110WPM), and my setup is so unique that going back to other keyboards takes a moment to get used to. I still can switch to QWERTY on my laptop for short periods of time, but it's not as natural as it used to be.
Here are a few things that I did that helped me to get to where I am now:
- in the beginning I accepted I'd be significantly slower, and I forced myself to keep typing properly – working from home definitely helped since nobody could see me struggle
- I moved all the keycaps so that they now reflect the Colemak layout – it's possible because Ergodox uses flat keycaps instead of sculpted ones like a lot of other keyboards (you can see different versions of caps here: https://ergodox-ez.com/pages/our-keycaps)
- after a few weeks I started typing with closed eyes to force myself to touch type and not to look at the keyboard
- I didn't do any particular exercises, initially I tried some fast typing courses, but I quickly gave up and just continued writing code and emails
- I only switched to QWERTY when I had to write something long quite quickly and I got too frustrated with Colemak; in the first couple of weeks it was maybe once a day, later I stopped switching entirely
- I started customizing my keyboard shortcuts using Ergodox configuration tool (Oryx) to make it as easy as possible to use certain combinations
The last point deserves a bit more space – customizing keyboard shortcuts is not new, any operating system allows it. What's unique to some keyboards is that the configuration can be done on a hardware level, and that it goes beyond what's offered in Windows or MacOS.
The best example from my setup are tap vs hold. The home row keys on my keyboard as act letters when I tap them, but when I press and hold them they act as modifier keys (Cmd, Opt, Ctrl). This allows me to use common shortcuts like Cmd+C (copy) or Cmd+S (save) without having to reach keys in the most bottom row of the keyboard. Instead my shortcuts are N+C (copy) or N+S (save). It required some trial and error, but it's been a real game changer for me. Here's my current setup if you're curious.
Back in 2020 I made a video about injuries and health problems that happen to programmers. In my late 20s I started having problems with my back, wrists and neck. I've realized that if I want to be able to work until retirement age, I have to change my habits. I upgraded my working environment so that I can sit/stand and type comfortably, and I started moving more - I cycle and jog regularly.
Getting a proper, ergonomic keyboard and customizing my setup so that I can keep my wrists in a relatively comfortable positon was an important step. Of coure the best solution to preventing carpal tunnel syndrome and RSI is to type less and I work on that too, but I can enjoy typing long articles without having to worry that pain in my wrists will be dictating the time of my breaks. Ergodox, while not a cheap keyboard, is worth its price. I can't remember when was the last time I felt any pain in my wrists, and that gives me hope that I'll be able to keep coding for the next couple of decades.
Discussions with some great comments from readers:
Special thanks to u/jetpacktuxedo for correcting some mistakes I initially made in the article.