Productivity, Perfectionism & Optimization: A Lesson in Irony

Just like any other person, I'm not perfect. Throughout my life, I've made a couple of bad decisions that have caused me regret and cost me tons of effort and money. I've realized that productivity and perfectionism are the sources of many of these decisions. But, like many other things in life, these aspects aren't as easy or binary as black or white, right or wrong. In this series of articles, I'll go over the good & bad of productivity, perfectionism, and optimization while using an example close to my heart: keyboard layouts.

Why read this article?
  • You may learn from my mistakes.
  • You could save yourself a lot of effort, money, and regret.
  • You'll get new thought-inducing perspectives on the topic.

My Journey with Keyboards & Layouts

I enjoy simplicity, but I love optimizing my life. When I first started getting into programming, I set out to learn touch typing. I thought if I couldn't touch type, I would (sooner or later) be seen as a bad programmer. After all, a keyboard is the default tool to craft most software. Just as a carpenter should be most familiar with his/her table saw, so should programmers know their keyboards like the palm of their hands. This seems reasonable. But my search for touch typing would put me on a rabbit hole that would (to this day) have no end in sight.

Note: I don't think that touch typing makes you a better or worse programmer. But I do think some people will judge you based on it.

I was introduced to keyboards in early childhood, long before I determined that making a living with computers would be a good choice for me. I always thought the order of letters in a (QWERTY) keyboard was odd. I couldn't understand why a keyboard wasn't just the alphabet from left to right, from top to bottom and the numbers put somewhere else. And I didn't know why we needed so many keys like Control, Shift, or Alt. But I didn't think much of it at the time.

At first, I typed like most people do when first coming across a keyboard: mostly using just my index and middle fingers while constantly lowering my sight to see what letter I would input. This is slow but will let you accomplish any task in a computer. Most importantly: it's enough.

I started learning touch typing around my 3rd semester at university. But before doing that, I became somewhat obsessed with learning all the reasons (QWERTY) keyboards are how they are. With a bit of investigation, I realized things could be so much better and so much faster when typing. The idea of typing faster and more comfortably seduced me to the point where I couldn't see where I was going.

I came across Dvorak as an alternative keyboard layout. I learned that QWERTY is essentially a vestige from times when computers weren't a thing and typing machines were the norm. Learning Dvorak would also be a preventative measure against carpal tunnel syndrome, a common health problem for people who make a living typing on a keyboard. At the time, I couldn't see how changing to Dvorak could be anything but good for me.

I couldn't believe QWERTY was (in a way) designed so people would have to type slower. This was advantageous for typing machines. Typing too fast could jam keys. But I'll never truly understand why the world didn't change the layout when transitioning to computers (that lacked the jamming problem). Very few people cared, I guess. And people who already knew QWERTY would have greatly resisted such change (the same way any change is often resisted).

Not only did I decide to learn an alternative keyboard layout, but a variation of it too. Given my intention was to become a programmer, I thought it best to learn Programmer Dvorak. I devised a plan for transitioning. I investigated what it would take to use Programmer Dvorak in any of the 3 most popular operating systems: Windows, MacOS & Linux. I accomplished my transition by practicing on a touch typing site (https://www.keybr.com/) every day during the summer. I knew the moment I could do my assignments using the alternative layout, learning the new layout would be a matter of time. Within a couple of months, I had accomplished my goal.

I encountered my first problem with my alternative layout in my first IT job (at T-Systems): you may not have your layout or hardware available at any given job. I was given a Windows laptop back then. I was not permitted to install the keyboard layout, since it required running an executable. I don't blame the company for not allowing it. But it still forced me to adapt on the go. I fell back to the regular Dvorak layout, which is available in Windows’ default language packs.

And remember, I'm only changing the keyboard layout through software. I've always relied on knowing the layout by heart. So, for example, pressing the d key would actually input the character e. When you combine this with password fields that don't allow you to see what actual character you've written, you can imagine how typing a strong password full of special characters and numbers becomes cumbersome. Creating my credentials that way was painful.

I also faced an additional issue at the time. I bought a Kinesis Edge split keyboard, which has an English key layout. But my work laptop had a Spanish key layout. This made it difficult for me to nicely embed the key positions in my muscle memory. After all, touch typing is a matter of finger motions. If you move the keys by even half a centimeter, it'll mess with your brain.

I temporarily solved the English-Spanish key layout by purchasing the Logitech G915. I could connect to 2 machines: one with the proprietary wireless technology from Logitech and to another machine through Bluetooth. Coupled with the G502 mouse, this setup allowed me to quickly switch between my work laptop and my school PC while sharing a larger monitor. I hope you can see the costs of the decision to use an alternative layout.

I stuck with the G915 and Programmer Dvorak during my ~2.5 years as a Technical Solutions Engineer @ Google (the formal beginnings of my working life). In this role, I was allowed to use the layout (most probably because I had the fortune of getting a MacBook work laptop). I faced 2 problems: First, some keyboard shortcuts were unusable. Because of the way Programmer Dvorak is set up (with the numbers requiring shift instead of the symbols), shortcuts like applying bullets in Google Docs were simply not an option because they required me to press shift and a number. Second, using a remote machine required setup. Even if I had set up my layout on my laptop, that didn't carry over through the SSH session. Instead, the physical key signal was sent. So if I wanted to use Programmer Dvorak remotely, I had to also configure it in the host VM (every time it was recreated for one or other reason).

My final attempt at a perfect solution was buying a Moonlander Mark I. I like the following about the Moonlander:

  • It is a split keyboard with tenting
  • It is fully programmable through QMK
  • It is a high-quality product

With the Moonlander I could bypass the software layout changes. I could even design my own keyboard layout and send each signal as if the device had been natively built that way. But I still faced a couple of issues with cross-platform compatibility: Creating my layout took a significant amount of time, since I had to learn how to use new tools. The jump was not easy at first, since the Moonlander uses a columnar layout. I had to create a layout for Windows and another for MacOS because of the differences between Control and Command. And since the Moonlander doesn't have wireless capabilities, I had to buy a USB switch to control my personal PC and work laptop.

The next level of efficiency gets pretty crazy. One time I kept wondering if there could be a better layout than Programmer Dvorak. I found an ocean of possibilities and endless forums filled with arguments in favor of one layout or the other. I learned a bit about things like inward and outward rolls. Until I started to think about the problem in terms of measurable speed: Words per Minute (WPM). I investigated what it took to reach the fastest typing speeds. I was surprised to find that some of the fastest typists didn't even bother changing their keyboard layouts. They just acquired practice in the way they positioned their hands in awkward ways. And then I found out about stenography.

Stenography is the next level of speed. It's impossible to beat the speed of a decent stenographer with a regular computer keyboard. Regular typing is to melody what stenography is to harmony. Stenographers don't think in terms of letters, but syllables (sometimes entire words or even sentences!). If you are curious about it, I recommend that you check Art of Chording.

Stenography requires some specialized equipment to be effective. Incidentally, ZSA products like the Moonlander would allow you to leverage stenography because they have the necessary n-key rollover trait. As you can see, making your typing solution better is an almost endless rabbit hole of possibilities. You could get into alternative layouts, staggered vs. ortholinear layouts and either go for a full-sized, Tenkeyless (TKL), 75%, 65%, 60%, or even 40% keyboard. Heck, you could even design your very own keyboard.

Not all is bad about optimizing my comfort and efficiency with keyboard layouts, though. I remember easily winning a typing competition at my university. And I can confirm that the Dvorak letter layout is quite comfortable to use. I also never came near to feeling Carpal Tunnel Syndrome.

I want to make a couple of things clear:

  • I'm NOT saying the Moonlander is a bad product
  • I'm NOT saying that learning a new layout is useless
  • I'm NOT saying you should just accept the cards that life has dealt you

However, I have to completely agree with the comments and observations made in the following video:

The main problem I've faced with my keyboard journey is that I've missed the point entirely. In the pursuit of the perfect arrangement of keys and hardware combination, I've fallen into a pit of inconvenience that has taken away more of my time that if I had just done nothing about the fact that QWERTY is a silly layout to still be using in this day and age.

I don't think that all of my efforts have been for nothing, though. Having gone through all that trouble has certainly changed me as a person. It's like having done a miscellaneous quest that didn't contribute anything substantial to the main quest of my life. But that doesn't mean that I don't get the experience to level up. I can't know for sure if the knowledge I've gained out of this journey will come back to be of critical usefulness later in my life. And I've certainly learned that I'm inherently eccentric and slightly obsessive when it comes to order and efficiency.

Lately, I've gone for a truce in my resistance against QWERTY and decided to re-learn to touch type QWERTY using the same method I used back in the university. I must admit that it's refreshing to have all keyboard shortcuts work as expected. I'm considering going for a TKL or smaller layout. But I don't think I'll go back to alternative layouts. Especially after finding the fastest way to type: Not typing at all, i.e. Voice Typing.

Before going into the next chapter, I'd like to further clarify my standpoints and opinions concerning typing solutions for modern computer systems:

  • It's silly that most people are still using QWERTY. I wish a better layout was the standard.
  • Staggered layouts are silly. Ortholinear and columnar layouts are simply superior.

Next, let's go over the general pitfall that is over-optimizing any aspect of life. It may seem silly at first, but I find it most natural to go from keyboard layouts to practical philosophy advice.