Notes on RSI for Developers
I’m not a medical authority, these are just my notes to self, please get professional help if you need it.
What is RSI? (from Harvard RSI Action)
RSI stands for Repetitive Strain Injury. It includes a whole spectrum of conditions, from tendonitis of the hand or wrist to carpal tunnel syndrome to cubital tunnel syndrome. Basically, if your hands or wrists hurt or go numb or tingle, that may be RSI. If these symptoms are associated with repetitive tasks, such as typing at a computer, it is almost certainly RSI. (Note that such symptoms do sometimes go away within a few minutes, hours, days, or weeks.) Other symptoms include losing strength or coordination in your hands, or perhaps dropping things.
Not everyone experiences all symptoms, and sometimes your symptoms may not occur until several hours or even days after the activity which causes them. (Have you ever hiked a long way and not been really sore until the next day or even two days later?) Some people, especially at UHS, call RSIs Cumulative Trauma Disorders (CTDs); it’s the same thing.
- RSI seems to have many causes. Everyone’s RSI is different. The cause can be equipment, but contributing factors can be broader (overall body health like sleep/head/neck/back posture factors, psychological factors). Sometimes you might have RSI symptoms, but it might actually NOT be RSI!
- Pronating wrists (turning face down) is bad - therefore the default mouse and keyboard alignment is bad! 😱
- Tilting wrists up is bad - the normal up-sloping keyboard is bad. It should be exactly the opposite:
- Arm posture/lumbar/upper back support is important.
- Constant pressure in one position is a cause - vary it up and take frequent breaks
- Long key travel (up/down) is bad.
- Long key travel (sideways) is bad therefore QWERTY is bad.
- Multiple pressure at the same time is bad, therefore Ctrl+C/S/V with one hand is bad.
- Sometimes the cause is psychosomatic - subconscious stress.
- Exercise helps sometimes - pushups, pullups, dips, and situps. Not too much, though. Sleep too. But it doesn’t always fix RSI.
- It is never “cured”, just managed. Know what triggers your RSI.
Use an app like Stretchly or Reclaim to remind you to take breaks.
Don’t use default Apple laptop keyboard. “Don’t use your laptop as an all in one. It can be at the right height for your neck, or your arms, never both. The convenience will destroy you over time!” - Arley McBlain
Split Keyboards?? Mechanical Keyboards? Microsoft Sculpt Keyboard or Natural keyboard
Map Capslock to Ctrl, or turn on Sticky Keys. Ctrl+C/V/S combinations are bad for hands. You can do this via Settings > Keyboard > Modifier keys on a Mac.
Note for me I think my problem is the left shift key. I am experimenting with mapping Capslock to Shift, or trying to use Right shift
Use right hand for modifier keys like ctrl, cmd, alt, opt keys
Have multiple keyboards, switch every 10 minutes (seriously!) or twice a year
Hand Stretches, Nerve flossing, physical therapy stretches and the prayer stretch:
Put your hands in warm water for 15 minutes or icing:
Mitigate inflammation via: Ice and Naproxen… icing is incredible. I’ve found that 5 minutes of ice will buy me 30 minutes of coding… nice perpetual motion machine when it comes to RSI. Naproxen is nice because it’s like slow-release ibuprofen, so battles inflammation while you sleep
Mice: the Evoluent VerticalMouse is $90
Hand Grip Exerciser, Finger stretchers, Gyroscopic exercisers
Tuck thumbs under fingers? Book by concert pianist
Rest mouse arm on a raised surface (eg textbook) so your hand drops down rather than pushed up.
Proper Computer Chair: Feet touches the floor, good lumbar support, arm supports, locked seat back, upper back support.
Take breaks every 10-45mins - apparently you can use Workrave (or AntiRSI for Mac or other software) to enforce breaks.
Cut all recreational computer use!
- Trackball mouse like this or this or this
- Super Ergonomic Keyboard: like the Keyboardio Model 01, or “tented” keyboards like the ErgoDox, or even more extreme, Kinesis or the SafeType vertical keyboard. You can make the Model01 keyboard “hang” (thanks Tre): ! More here https://pbs.twimg.com/media/Ea6ZDK3U4AIwZXd?format=jpg&name=medium
- Articulating Keyboard Tray so you can tilt it back
- Adjustable Height Desk
- Aeron chairs are well regarded here ($300ish)
- Alternative Keyboard mapping: Dvorak or Colemak or QFMLWY or carPalX. Fingers travel 1/3 as much under Dvorak.
- Wearing Wrist braces or Soft braces even when not typing (eg during sleep - so you don’t curl your wrists during sleep)
- Speech Recognition: Dragon NaturallySpeaking, Talon Voice for Voice Coding (more here). 2022 example: https://overcast.fm/+JaI53W0zc
- Stenography: Plover - 240wpm
- Chondroitin / glucosamine / MSM to promote collagen repair and reduce swelling. Take for about 3 months.
- Dr. John Sarno’s Mind/Body approach https://www.amazon.com/Mindbody-Prescription-Healing-Body-Pain/dp/0446675156 (endorsed) and the Divided Mind (endorsed)
- Hand warmers could work! - esports gamers use them. Arm warmers too
- https://www.amazon.com/Trigger-Point-Therapy-Workbook-Self-Treatment/dp/1572243759 (multiple endorsements)
- Heating Hands: https://www.amazon.com/UTK-Infrared-Electric-Therapy-19-Inch/dp/B013S7KGUU/
If really bad, see a physiotherapist.
More Resources and Blogposts
- Harvard RSI Action http://www.rsi.deas.harvard.edu/
- More RSI notes people have tried https://github.com/melling/ErgonomicNotes
- https://jmulholland.com/rsi-as-a-developer/ (HN https://news.ycombinator.com/item?id=20847822)
- (older book): https://www.amazon.com/Repetitive-Strain-Injury-Computer-Users/dp/0471595330/ref=pd_sim_b_3
- more stretches
“I’ve been battling RSI for 20+ years. Can recommend getting standard blood tests. I was extremely low in vitamin D. Once that was fixed, one whole layer of pain fell away.” - Matthew Taylor
I’m starting to feel some Repetitive Strain Injury (RSI) in my left hand. A few weeks ago it was so intense I had to stop typing for a weekend. Fortunately I am right handed, so I could still do most other things well. I gave it some rest and then I made a full recovery. I’m feeling the beginnings of it again today. It’s a matter of time until I get hit by it again and don’t recover.
I decided to collect some information about it to make improvements now rather than later. If I intend to write as much code and words as I do for the rest of my life I better do this right. People have been forced to quit programming over stuff like this.
I’m not an expert here, just collecting notes and sharing it in public. I will update this over time as I learn more, please comment or @me and add more info and I will curate.