ErgoDox EZ Users

Paweł J. Wal

Engineering Team Lead @ Codest
Paweł J. Wal

Who are you, and what do you do?

Hi, I’m Paweł! I’m a senior developer at Codest, a software house hailing from Kraków, Poland, where I’m also located. I’m in charge of delivering awesomeness to our lovely customers all over the world, usually with Ruby (on and off Rails) and React. I’m something of a serial learner, though, so you could easily catch me pouring some Elixir or closing a little Clojure.

Software development can be challenging, but for me the real challenge is in the other half of my job — and that’s developing people. I’m in charge of a team of awesome devs whom I’m helping to grow and expand into the best versions of themselves. Likewise, they help me grow into the best possible version of myself. It’s thanks to my team that every day is an adventure, with no dull moment in sight.

I also code for fun in some of my spare time! My latest toy is a little dungeon crawling game, built entirely using web technologies: TypeScript, PixiJS, and Electron, among others.

Life’s not all about coding, though. In my spare time, I’m an avid game fiend: card games, board games, pen-and-paper RPG, video games — you name it, I’ll play it. Some personal favorites include Ticket to Ride, Magic: The Gathering, Castle Ravenloft (and everything Dungeons and Dragons related), and the Final Fantasy series of RPGs. You’ll probably find me enjoying a nice chilled APA to complete my gaming experience.

What hardware do you use?

Tons of it.

The common element in all the setups I might use in a given day is my trusty ErgoDox EZ Glow. I carry it with me at all times. I love it too much to leave it behind, so I don’t really mind the extra heft it puts into my backpack or bag. I’ve entertained the idea of getting two, one for my desk at the office and a second one for my home office, but I tinker with my board just enough to make keeping two of them in sync a hassle.

My work machine — and the one that travels with me wherever I go — is a 2018 13” MacBook Pro with a Touch Bar. I’m not a huge fan of either the Touch Bar or the butterfly keyboard, so I’ll have my ErgoDox EZ attached to it in the “road warrior” configuration.

Road Warrior
Paweł's road warrior setup

I hardly ever plug it into an external screen since my workday has me moving between my desk, a pair programming space, or a conference room pretty much constantly; I just learned to use the 13” efficiently and it’s been working very well for me. I will plug it into my home office screen on slower days, though. Whenever I need a mouse, I either use the mouse keys on my ErgoDox EZ or just reach over to the touchpad (especially useful for the “scrolling docs for 20 minutes” use case). Of course, the MacBook is USB-C only, so I use a cheap USB-A to USB-C adapter on the end of my ErgoDox EZ cable to avoid a full-blown dongle city situation.

Here’s the home office in “full day of coding” mode. I have my ErgoDox EZ halves spaced about shoulder-width apart — it’s done wonders for my general posture while working, as well as some of the muscle pain I’ve developed in the last decade of banging out code. I have a Tesoro Aegis X2 mouse mat in the center, with a Delux M618mini vertical mouse.

Home Office
Paweł's home office

The desk is a motorized Ikea Bekant sit/stand piece. Due to back pain, I’m trying to do as much of the “stand” and as little of the “sit” as possible. It’s also a boon when I’m doing some soldering or hot air rework (another hobby, sorely neglected lately) and need to get up close and personal with the board I’m working on without bending too much.

The center screen is an iiyama ProLite XUB2792QSU-B1 for any color-sensitive work. It’s got a decent gamut, a good response time, and runs at 75 Hz, which is just fine for me. The vertical panel to the side is an old Fujitsu Siemens B22w — it’s just old enough that the manufacturer’s site no longer lists it. It’s pretty burnt out, so that’s where Twitter, Slack, and e-mail typically hang out.

I’m also using a Logitech C920 HD Pro webcam for any video calls I need to make from the home office.

For my hobby coding and gaming alike, I’m using a custom-built PC. Some highlights include an NVIDIA RTX 2060 and an Intel i5-9600K. Paired with 32 GB of decently fast RAM and a pinch of overclocking, it’s a setup that can deliver enough oomph for just about anything I want to do with it, be it web development, game development, or shooting spells at monsters.

Speaking of shooting monsters, I use my ErgoDox EZ in a slightly different way for gaming.

Paweł's gaming setup

Since I often have buttons on the other half that I need to press in the heat of battle, I keep the halves right next to each other. To not scrunch my chest too much, I move the mouse out to the side. I’m also using a Bloody A60 gaming mouse for optimal foe dispatching. While the vertical mouse is much healthier for my wrists and hands, I’ve found a regular one to give me more precision. To keep my RSI in check, I keep my gaming sessions short and carnage-filled.

Last but not least: the only thing that keeps me sane in a noisy office, plane, or train are Bose QC35 II wireless active noise-cancelling headphones.

And what software?

For heavy and complex projects with Ruby and React, my go-to is RubyMine. Anything simpler — side projects, quickie scripts, demos, and prototypes — I do in Visual Studio Code. I use iTerm2 on macOS, always in tandem with zsh, oh-my-zsh, and tmux. I have way too many command aliases loaded into my shell at all times. For a pair programming session, I’ll usually drop into a tmate session and vim, although VSC Live Share has been making an appearance recently.

I use Alfred as a Spotlight replacement. My workflow is heavily Docker-based. I use Firefox for web browsing, Slack and Telegram for messaging, and macOS’ built-in Mail for e-mail. I’m pretty sure that there’s a part of RAM in all my machines that is vaguely Spotify-shaped, since it runs nearly constantly.

Since I’m mostly using macOS for very serious work and Windows is only for tinkering, there isn’t too much interesting software on that side. I’m running the new Windows Terminal preview in PowerShell mode. I’m also using SharpKeys to re-map the Command/Windows key into a Control, so I don’t have to fight muscle memory over Cmd+S/Ctrl+S every day.

What’s your keyboard setup like? Do you use a custom layout or custom keycaps?

It took me a good long while to arrive at my ultimate (or, currently ultimate?) keyboard layout. It’s based on the Workman layout, with some allowances made for the ErgoDox EZ’s key layout and some very common keys, like F12, pulled in to easier-to-access places. The large rectangular buttons mid-keyboard are occupied by my favorite [{ braces }]. I swear by the Space Cadet shifts; they’re one of the best additions to my workday ever.

I was a bit worried that switching to Workman would mess with my ability to use a QWERTY keyboard (and you try re-capping a MacBook keyboard into Workman!), but interestingly enough, that muscle memory seems to be attached to “regular” keyboards, and the Workman muscle memory formed only for ortholinear keyboards. Which is to say, I cannot use an ortholinear QWERTY keyboard for beans.

Layer 0 aside, the fun stuff is on Layer 1. I’ve got all of the symbols under my left hand, and the right-hand side is covered with auto-hyper buttons. All of them are wired either into Magnet window placement or into Hammerspoon macros.

I’m using stock keycaps, but I’ve replaced the Kailh Brown switches with some Cherry MX Green switches so my coworkers can figure out where in the office I currently am by ear alone. Jokes aside, I haven’t had any too-serious noise complaints — yet. I like the slightly higher force and the tactile bump on the Greens even more than I loved the Blues on some boards in the past.

What would be your dream setup?

In terms of what is realistically possible, I think I’m already there, happily plugging away!


But if anyone figures out how to make a laptop with a flip-out ErgoDox EZ keyboard, please let me know. I’m not very fond of the balancing act involved in heading to a meeting with my laptop and keyboard in tow.

I’m entertaining the thought of trying a trackball instead of a mouse in my daily coding setup, but it’d have to be tiny enough to attach it to the ErgoDox EZ itself and ideally run over the same wire. I haven’t found anything that looked like it could be hacked into that use case yet, though.

And the final part would be making better use of my Layer 2 — it’s woefully neglected, only containing the animation buttons (which I never use, since I found my favorite look on the first day and never touched it again) and the mouse controls.