At the end of an average eight-hour workday, the fingers have walked 16 miles over the keys and have expended energy equal to the lifting of 1 1/4 tons. - DataHand

Diagram And that’s just for a piddly eight hour workday! What about developers who go home and write more code for fun?

Around three years ago I wrote a post titled The Real Pain of Software Development Part 1 in which I talked about my experience with Repetitive Stress Injury (RSI). Because of the pain of typing at that time, I never really got around to writing part 2 until now.

So why am I bringing up this subject after all these years? Yesterday, I was reminded again about just how important developers need to take ergonomics in their daily work life.

As I wrote in that post, years ago, I suffered from a lot of pain when writing code. I started going to Physical and Occupational therapy which helped immensely.

During that time I went out and bought the best chair I could find, despite the high cost. (Note that the best chair for me might not be the best chair for you due to differences in body types. Jeff Atwood mentions theSteel Case Leapas his favorite in a post that highlights the importance of a good chair to a developer’s productivity.)

Along with the chair, I bought a good keyboard, a keyboard tray with an articulating arm, and a trackball and made sure it was configured in a way that was comfortable for me and ergonomically sound.

And over time, I got better. In fact, I got much better.

At that point I vowed to never to skimp on the tools I needed as a developer. As Jeff points out in his Programmer’s Bill of Rights,

It’s unbelievable to me that a company would pay a developer $60-$100k in salary, yet cripple him or her with terrible working conditions and crusty hand-me-down hardware. This makes no business sense whatsoever. And yet I see it all the time. It’s shocking how many companies still don’t provide software developers with the essential things they need to succeed.

I realized that not every company will follow through on this reasonable advice, so I took it upon myself to make sure I have what I need personally.

In the past several years, I’ve worked alot more from home due to my open source contributions. In the past two years, I worked full time from home. I made sure that I had the best quality setup for me possible. Better than any other employer ever provided. To the items I mentioned before, I added two very bright and sharp LCD monitors which reduce eye strain. This setup is finely tuned for me and the way I work.

Which brings me back to yesterday. It was my first day of work at my new company and naturally, the workstation has not had the opportunity to be configured by me, through no fault of my employer. My requests for a new keyboard, trackball, and keyboard tray were all approved. I plan to bring in my own chair because I have two Neutral Posture chairs at home. I don’t screw around with my equipment any more.

Unfortunately, after just one day I am having trouble sleeping due to pain in my hand and back.Shoot, I need to get up in three hours!

Yeah, I know what you are thinking. What a freaking wuss!

But no amount of macho posturing changes the fact that some people, for better or worse, are more prone to these type of injuries than others.

I wish I could remember his name, but there’s a very famous software developer world renowned who cannot type for himself. He has others type for him. I’m sure someone will remind me.

What my Occupational therapist taught me is that my recovery is based on a delicate balance. Upsetting that balance can bring back a lot of pain. In my case, I will never fully be free from pain while working. But through therapy, I learned techniques to reduce the pain as well as deal with it better.

As fortune would have it, this was around the time I received a private office, so it was less of a spectacle when I would get on the floor with a foam roller and do my stretches every couple of hours.

The pain had gotten so bad, there were days I could barely type a line of code, instead finding ways to be productive without coding. I started to wonder about my future, or lack thereof, as a software developer.

My recovery allowed me to not only work through a normal day productively, but actually start putting in extra coding effort in the evenings as I started to contribute to RSS Bandit and eventually start the Subtext Project.

I became even more productive than before, working day and night at the computer. A stark contrast to when I could barely type a single method of code. I could never have started Subtext if it weren’t for the therapy. For that, I am eternally grateful to the occupational/physical therapists at UCLA medical center.

So if you experience a lot of pain while developing, don’t be a hero. Be smart about it and seek information and help. The pain could be the thing holding you back from your potential.