Down the ergonomic rabbit hole: Dev Tool Time with Amir Rajan

Scott Bailey

Wrist pain and fatigue were the start of indie gave developer Amir Rajan's journey in ergonomic hardware setups. As a dev and the co-creator of DragonRuby Game Toolkit, Amir needed to find a way to write code week to week, for years to come. When Amir joined us for Dev Tool Time, he shared his setups over the years, the motivations between different pieces of hardware, and the software he uses to build games.

You can watch the recording of this episode at the bottom of this blog post, but let's take a first step with Amir down the ergonomic rabbit hole.

Developing ergonomics

A few years ago, Amir was hunched over his laptop. When he realized he needed to change his setup for his own health, he made a remarkable shift to get rid of his desk, set up stacked 38" monitors, and moved to the Ergodox keyboard, which is a split, ortholinear keyboard.

Over the next few years, he refined his hardware for comfort, work, and more efficient layouts. He built new keyboards, trying out different mechanical switches (check out the show notes below for some of them), and developed muscle memory with a phonetic mapping for some keys and operators, set up with QMK. He went back to a traditional desk, tried different task chairs, and fine-tuned their height to keep his knees and feet in the right places.

See Amir's setup over the years

Two significant monitor changes led to Amir's most recent iteration. He purchased one, then another, 49" curved, ultrawide monitor, which provided the screen real estate for the right number of correctly sized windows. Then, he replaced one of these with the Apple 32" Pro Display XDR monitor, solving his need to verify color levels and quality as he built games for different platforms and displays.

Amir keeps an updated gist with links to his setups since 2018. Check them all out here: Evolution of Amir's battle stage!

Developing ergonomically

Amir's hardware setup has developed over time to increase his efficiency and improve his workflows, even as it decreases the physical stress on his body. His software development environment has done much the same. Though Amir uses Vim and modal editing, he wanted a configuration language better than Vimscript. Emacs, with evil-mode for modal editing and keybindings, provides a profoundly moldable development environment. To keep it lightweight and responsive, and inheriting from his time with Vim, Amir uses Emacs in the terminal–Alacritty, in his case.

DragonRuby Game Toolkit emerged from a desire for a game engine with a fast feedback loop. Ruby proved to be a powerful language and its dynamic character keeps open the possible futures of any game Amir works on. The foundation of a game–its programming language–needs to be flexible enough to not restrict it.

Hear Amir explain why he started writing games in Ruby

The ergonomic long-game

In designing and adapting for comfort, health, and efficiency, Amir isn't focused just on today, next week, or even next year.

"Philosophically, the whole journey I'm taking is based on the idea that I'm going to be programming the rest of my life. Every iteration, every improvement I make, every dive into the bowels of Emacs comes at that upfront investment to learn and deal with these pains so that over time this environment becomes home to me."

Listen to Amir talk about the long-game of ergonomics

Show notes

Watch the recording

Check out the recording of the episode below, and be sure to sign up for upcoming events!

Get Cody, the AI coding assistant

Cody makes it easy to write, fix, and maintain code.