As someone who has battled with eye issue in the past, I thought I’d provide the developer community with some tips on how to protect your eyes as a software developer.
As a software developer, your eyes are extremely important. All of those long debugging sessions scanning for that impossible to find bug, pouring over online documentation to see how to implement a certain feature — all of that intense work requires your eyes to be in good working order. And unfortunately, most people don’t realize the strain that these activities put on the eyes. I know I didn’t.
A few years ago, due to a combination of poor habits and past decisions, I had some pretty severe issues with my eyes. I’m not going to bore you with the details, but I will just say that at one point, it was so bad, that I could only really look at a computer screen for about 5 to 10 minutes at a time. As a developer, that is simply unacceptable.
After a few years of trial and error, online research, and behavioral modifications, I have found a number of tools, environmental changes, and behaviors that have allowed me to improve and maintain my eye health. Here’s what I have found:
Extended amounts of time at the computer can be extremely tough on the eyes, but since most of our work requires the use of screens, it’s a necessary evil. However, as software developers, not all of our time is spent coding. Much of what we do is architectural — planning and designing the systems/interfaces that we are going to build out. During such stages, I’ve found that I don’t really need to use my computer. Instead, I grab my trusty old pen and do my work on a piece of paper. This allows me to take a break from the computer and my eyes always thank me.
f.lux is a program that adjusts the color temperature of your monitor. Blue light can be a large source of eye strain, especially as the day goes on and the sun goes down. Flux helps with this problem by intelligently managing the temperature of your monitor, slowly reducing the amount of emitted blue light as the day goes on. For me, f.lux was a real game changer. The difference in eye comfort was immediately apparent and I was able to slowly increase my amounts of screen time.
Provide f.lux with your location and what time you wake up in the morning — it will try it’s best to match your circadian rhythm, reducing monitor temperatures slowly as the day progresses and your bed time approaches. You can also manually adjust the colors or choose from presets.
Do you find yourself getting fatigued quickly when in front of the computer screen? It’s possible your monitor is too bright. It’s hard to say exactly what level of brightness is appropriate, since brightness of a device(often measured in Nits) will vary depending on the specific product and panel type. A good method I’ve seen used to find an optimal brightness level is to turn it down to the lowest level you can while still being able to read everything on screen. As someone who is very light sensitive, turning down the brightness on all my devices helped increase my comfort level massively.
Note: If you are doing any color sensitive work, flux and your monitor’s brightness level may distort colors. For f.lux, you can temporarily adjust the color temperatures, or choose a preset like “color fidelity.” For brightness, you can delegate different custom profiles(if your monitor supports them) for different tasks.
This one was really important for me. Obviously, most web pages are white. However, this white background, particularly when your eyes are tired or irritated, can become a real bother. At my worst, looking at a site with a blindingly white background was almost impossible. I had always used a dark theme on all of my code editors, so I started to wonder, wouldn’t it be nice if something similar existed for web browsers?
Though it can vary depending on the site, with both of these extensions, you will usually get white text on a dark background.
I can’t say a lot about Dark Reader other than “it works.” Firefox is my daily driver, so I will focus the discussion on Owl.
Owl was truly life changing for me. All of the above techniques helped a lot, but using a dark theme extension is what really allowed me to start working on a computer again. I went from barely being able to browse the web, to actually being able to look at a screen and do work for a couple hours at a time.
Owl is a great extension — you can enable/disable it for certain sites and it even works on pdfs.
In fact, I like Owl so much that I even contributed to the project on github a few months back.
Any direct light is really tough on the eyes. I always make sure that my light source is behind me, illuminating my work space. Another important thing I’ve found is to make sure the light is filtered by either a lamp shade or other object. In my room, I actually use two lamp shades, because one wasn’t enough to properly filter the light.
Another good option is to have accent lighting. In the past I would sometimes place a light directly behind my monitor, for example.
This one is only really applicable to windows users. One problem I’ve had is that win32 apps, like file explorer, don’t have a dark theme like uwp apps.
To solve this I have mapped high contrast mode to a programmable key on my keyboard. Whenever I need to use a win32 app, I enter high contrast mode. When I switch to another app, I exit high contrast mode. It’s sometimes annoying, but it works.
*Update* – Windows actually did just release a dark theme for file explorer in the latest 1809 update. High Contrast Mode is still useful though when dealing with other win32 apps or parts of the os that can’t be skinned dark.
This may overlap with some of the above techniques, but it’s an important thing to mention. Whenever I consider using a new piece of software, I always look to see if it has a dark theme. This goes for my code editors, my operating system, or any piece of software I use. Even in my own personal projects I always make sure to use a darker color scheme. Sometimes I have to employ some weird hacks to apply dark themes, but in the end I’ve always found it to be worth it.
This is something in the past I really overlooked. AC reduces humidity, while heating raises the temperature thus decreasing relative humidity. This dries out your eyes, starving you of much needed moisture. For this reason, I almost never use heat or air conditioning.
Making sure to blink was really important for me. A main culprit for eye irritation while on the computer is decreased blink rate. Blinking is how your eyes get that much needed moisture. My blink rate in the past was really terrible — well below the average of 1 blink every 4 seconds. It’s taken a long time and a lot of conscious blinking and behavioral change, but my blink rate seems to have somewhat returned to normal levels.
I always making sure to give my eyes a rest when I can. In the past, I was a pretty serious about maintaining the 20-20-20 rule, which state “every 20 minutes, look at something 20 feet away, for 20 seconds.” However, normal breaks and occasionally looking away from my computer screen have become habits, so it’s not completely necessary anymore. Though it was certainly very useful in the past.
When you work remotely, you get to have full control of your environment. That makes it easy to control factors like the amount of light in the room, the internal temperate, and what software you install on your computer. If anyone out there is curious about remote work, please check out my article where I talk about The 5 Reasons Why I Love Being a Remote Software Developer. I love remote work and I would not be able to protect my eyes the way I do without it.
Well, that covers most of it I think. If I forgot anything or discover anything new, I’ll be sure to update this article. Also, if you are interested in reading more awesome content like this, please consider subscribing to my mailing list.
Please keep in mind that this is not advice and I am not a doctor. If you have any eye issues, be sure to consult a medical professional.
Let’s all keep our eyes healthy and keep on coding.