Adventures in code
About a year ago I started having pain in my left pinky. At the time I was a student, and had just helped start bambuu where I develop software. I figured the pain was temporary so I kept on working, thinking it’d go away by itself. This would be a very short blog post if I was right. After while it had spread to my right pinky as well.
At first I was only in pain after working for long days, but each week it came faster and faster. At the end I woke up in pain every day, so I did what desperate people do: I took a vacation. I went to California for two weeks, and I didn’t touch a keyboard.
It was glorious, I was pain-free.
The instant I got home and touched a keyboard, it was back.
I’ve been through a lot trying to fix this, and I am now completely pain-free in my right hand and most days, also in my left. I remember googling a lot in the start, and while there are some really good resources for people with RSI, I don’t feel like I was able to find all the information I needed at that time. So this is my attempt to summarize what I’ve learned, what has worked for me, and also what hasn’t.
When there’s pain in the pinky, there’s a good chance there might be something wrong with the ulnar nerve. The ulnar nerve provides sensation to the pinky, and one side of the ring finger. One way to really screw with this nerve is through what’s called ulnar deviation Ulnar deviation is a movement where you twist your hands toward your pinky, as shown in the picture below.
Does that movement look familiar to you if we put it in context?
If you’re a software developer, or anyone who uses a lot of shortcuts, you probably do this every time you’re reaching
ALT button to perform a shortcut.
Ulnar deviation is pretty destructive for your hands. Quite a few of the things you’ll see worked for me, was because it reduced ulnar deviation.
The first thing I attempted to do to reduce ulnar deviation was to get the
CTRL button closer to my hand.
You can do this by rebinding the
Caps Lock key to
Caps Lock is mostly used if you’re angry or an internet troll,
hopefully you use
Caps Lock far less than
CTRL. This makes it a relatively quick and easy ergonomic improvement you can make to any workstation.
Here are some alternative suggestions to deal with the same problem.
A good deal of articles have been written about proper typing technique, and they’re reasonably easy to find online. I’m going to summarize what worked best for me or gave me the biggest ‘aha’ moments. Changing your typing technique is really hard, especially when you’re focused on the screen.
You might keep forgetting all the things you’re supposed to do. If that happens, try making one adjustment at a time, and when that adjustment feels like second nature, start with one more.
To be in the proper ergonomic position, your wrists should be hanging slightly:
This means no resting your wrists on the table. Resting makes the hanging position impossible, while also putting pressure on the nerves of your hand. You’re going to have to keep your wrists above the keyboard, held up with your arms at all time. I stole the image from ergomatters, which also has an excellent guide about hand positioning
Don’t stretch your hand to reach keys that are far apart. The perfect storm of ulnar deviation and stretching to reach a key is the shortcut for opening a new browser tab.
CTRL+T shortcut, and if you stretch for the keys, you can perform it only with the left hand.
Don’t do it - most shortcuts can be done two-handed. E.g. click
T with your left hand, and
CTRL with your right.
Don’t type too hard. I used to slam the keys down when typing, for some reason I felt more productive that way. It really felt like I was doing something. Don’t be me. Use the minimum amount of pressure necessary to press the buttons.
I’ve experimented with a few ergonomic keyboards. My first was a Microsoft Sculpt. The Sculpt keyboard looks nice, is reasonably affordable and curves properly for good ergonomic posture of the hands. It also comes with an ergonomic mouse.
The Sculpt was a step in the right direction - it helped slow my increasing pain, but it didn’t make me feel better. Time for the nuclear option: The Kinesis Advantage2. This keyboard has all the modifier buttons in the center, to enable you to use them with your strong thumb instead of having to twist your hand for your pinky to reach them. I’ll be honest, I was skeptical before buying it. It’s a pretty expensive keyboard, it’s not very pretty and I really didn’t look forward to having to relearn how to type.
Turns out, it was worth the hefty price tag.
The way the keyboard is built almost forces you into the hanging hand position, and the keyboard gives a little click noise when you’ve pressed hard enough to help you apply just the right amount of pressure without slamming the keys.
The learning curve is relatively steep, and for the first few days, I basically sat hunched over the keyboard to see all the keys. It was a pain in the ass for the first few weeks, and I had to rebind some keys to make it work (fortunately, the Kinesis makes this really easy.)
Looking back, I actually consider it a strength that you’re unable to utilize all your previous motor memory. You’re probably having issues because among other things, your typing technique is incorrect. The Kinesis forces you to relearn everything, and if you’re aware of what proper typing technique looks like when you re-learn it, you have a much better chance of learning to type in a way that doesn’t injure you down the road.
Even though how you work matters a lot - how you not work also matters.
One of the most important things is sleep: Make sure you get enough of it. It’s a bit of a cliché at this point, to read that we don’t sleep enough, but it does matter. It allows your body to heal and leaves you rested. Sleep is particularly important, if you have a hard time taking breaks from the keyboard while awake. It’s essentially a large stretch of time where you’re nor using your hands, and you don’t have to expend any mental energy to “stay away from the keyboard.”
Sleep isn’t just sleep however. I’ve noticed that the position you sleep in matters. If you’re often in more pain in the morning than later on the day, or you wake up with your arm in awkward angles, I’d consider whether your sleep position is worsening the problems. I noticed that sometimes I curled up on my arm, or slept on my stomach, and when I do that I’m usually in more pain the day after. Changing sleep habits is tricky though, so experiment with what works for you - some common advice is to ‘box’ yourself in with pillows so you don’t end up in sleep positions where you don’t want to be. I’ve even been desperate enough to have my feet tied to my bedposts for a while.
Breaks are important to give your hands (and your head) rest during the workday. What I’ve done for breaks is as follows: Take a microbreak, meaning a break of approximately 30 seconds, every 5 to 10 minutes. Take a shorter rest break of approximately 10 minutes, every hour. Use this break to stretch, and get out of your chair. Needless to say, this is much more often than most of us take breaks, and I’m going to be honest with you, it takes some getting used to. I use a program called WorkRave to enforce these breaks, but there are many others.
At first, the breaks were a pain. Being interrupted for 30 seconds every five minutes was insanely annoying, and the longer breaks made it difficult to stay in flow. I was used to working for hours without breaks. However when you’re 23 and your hands are on the way to trash-town, you’re gonna have to suck it up. And after a while, it’s not that bad. You learn to live with it. The microbreaks are so short that you can so easily keep your mind on the task and you can use the longer breaks, to plan ahead, and consider your approach.
If you have the privilege of working from home, the rest breaks are also a good time to do simple chores (dishes, laundry etc).
You’re probably going to need to exercise and stretch if you want to get better. My stretching and exercise regiment used to be reasonably long, but not anymore. I’d look up some exercises online first, and attempt some nerve flossing exercises as well.
Instead of trusting internet strangers, I’d advise you to go talk to your physician about what exercises to do, even though you’ll probably just stubbornly continue to google for answers instead. I know I did.
It’s also worth considering a standing/adjustable desk. It might work for you, but anecdotally it made no difference in my symptoms.
In most jobs, there are plenty of ways to create value without necessarily hammering on the keys. As a software developer, I can do pair programming or Code Reviews, which are activities that don’t strain my hands very much. I’m sure there’s an equivalent for most occupations. If you can, try to sandwich these non-keyboard activities in the middle of your day, so it acts as a natural mid-day break for your hands.
You should also consider what you do in your free time. If your primary hobby is playing computer games you probably need to dial it back. It’s important that you give your hands rest, and while you might that be able to control what you do at work, you can definitely control what you do in your free time. If you can, aim for activities that don’t involve sitting still.
Another way I tried to create value without using my hands to code, was to use my voice.
After being inspired by Tavis Rudd’s excellent talk about him overcoming RSI through voice coding, I tried it out. I bought an expensive microphone, and Dragon NaturallySpeaking, which is supposed to be the best voice recognition software there is.
Not the best idea for someone with fingers that are already damaged, but I gave it a try. However, even with the best voice recognition software money could buy and a language I specifically designed to be terse and efficient for programming it was still slow. Surprisingly enough, outputting code wasn’t the slowest part. Things like precision navigation within files (e.g. moving 35 lines down and into the middle of the line), or navigation within large projects (file-names can have all sorts of weird naming structures that are hard to easily accommodate with voice commands).
Voice does, however, work surprisingly well for dictation and simple web browsing. If you write a lot of regular English, such as articles during your day or spend a lot of time scrolling through websites it’s worth considering as an option.
I’ve noticed that I always have cold hands which could restrict blood flow and thus hindering the tissue from healing fast enough. I’ve experimented with pressure sleeves for both my hands and elbows and I found them to be quite nice and not very expensive. If you’re not willing to go quite that far, long-sleeved clothing might also do the trick. Warmer clothing as a way to treat RSI might seem a little far-fetched, but I’m not the only one who’s made this observation.
Massage helped me a lot, especially in the beginning. I had some really tense and sore spots all the way up my forearms, which I was able to massage away. I just got some tiger balm, and went to work. It’ll take multiple sessions, but it’ll be worth it. Don’t be too rough on yourself, or you’ll do more harm than good. There’s plenty of good guides about self massage out on the internet. I’ve also tried professional massages, and found they weren’t worth the cost for me. It might be for you though, especially if your hands are so bad that you’re unable to massage yourself.
RSI is a tough problem that can come from a variety of factors. It seems to be hard to find a lot of high quality info online and from doctors.
Some of the things I’ve found working best is stretching and exercises, getting a real ergonomic keyboard, getting away from the keyboard and minding your sleep posture. As RSI can have a variety of causes (including getting RSI-like symptoms if you have nerve impingement in your upper back), you’ll probably want to experiment with what works for you.
Hopefully some of my experiences will be useful to people out there who are suffering from RSI, or afraid that they might in the future.