The people who use our boards.

347 interviews since 2018

James Eapen

PhD candidate

Who are you, and what do you do? What do you like to do outside of work?

My name is James Eapen, and I’m a PhD candidate in a lab studying ovarian cancer. My work focuses on the taxonomy of Fallopian tube cells and involves analyzing or writing software for genomic data analysis. Outside of work I like to play video games, go on walks, and keep my pocket and kitchen knives sharp.

What hardware do you use?

My lab bought me a Lenovo ThinkPad P16 Gen2 with 64GB of RAM, which comes in handy since I work with large genomic datasets. They also provided me with two Dell 4K monitors. I keep my one monitor horizontal as my primary display and the other vertical for email, Slack, and my SSH session on our HPC. I also have a MacBook Pro from 2020 that I use when I don’t want to carry the rather heavy ThinkPad around.

James Eapen's setup
James's left monitor is dedicated to communication, and the one on the right handles everything else

On my laptop screen you can see my wallpaper, which is updated with the latest image from NOAA every 30 minutes.

And what software?

I run Ubuntu with the i3 window manager, which lets me use keybindings for almost everything and reduces my need for a mouse. I have a script modelled after the macOS Spotlight app that launches the fzf selector in a terminal emulator window. This lets me browse my filesystem, copy paths as well as select, and then drag and drop files into GUI applications with xdragon. Using similar scripts, I can query the Firefox and Zotero SQLite databases to find and launch web bookmarks and look for journal articles in my Zotero library and search their PDFs for text.

James Eapen's PDF search script
With his scripts, James can search the journals in his Zotero library

Together, ripgrep-all and fzf allow me to use regex to find specific patterns in PDFs (in the picture I’m searching for articles that mention a gene count between 5000 and 8000, with or without a comma in the number)—a functionality I haven’t yet seen in any reference manager.

For package management, I’ve switched from the APT system to the Nix package manager. Being able to declare both software and their configurations in a file has made managing my system more convenient, although with a steep learning curve. I find Nix shell environments particularly useful for quickly setting up data analysis environments across multiple devices.

Most of my time is spent writing either code, documentation, or papers. I primarily code in R, C++, and Python and write in Markdown or Latex. All my writing is done in Neovim. The editor and the language servers for the programming languages I use are installed together using Nix. For prose, I use the Goyo plugin for a clean writing interface and set up spell check with a mapping to autocorrect the last misspelled word. Once I started using Vim bindings I had to have them everywhere, so I try to find plugins or alternative software that let me carry the Vim muscle memory across my system.

For communications, I run neomutt with isync and msmtp (set up with mutt-wizard) for email, which lets me write email in Neovim and navigate between my mail folders and organize emails using fzf. My lab uses Slack for communication, and I use WeeChat with the wee-slack plugin as a TUI alternative to the app.

For web browsing, I use Firefox with Vimium for Vim keybindings and firenvim, a Neovim plugin that transforms any web text input into a Neovim buffer with all plugins and settings loaded.

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

I use the ErgoDox EZ Glow with blank sculpted keycaps, which raises a lot of questions every time someone sees the split and the blank keycaps for the first time. I like a somewhat aggressive tent level, and my chair armrests extend forward, allowing me to float my hands over the keyboard at an angle that feels like a natural resting position.

Right side of James Eapen's keyboard, heavily tented
James uses the box his monitor cables came in to get a more aggressive tent that feels natural for his arms

I started with the Cherry MX Brown switches and eventually switched to the Glorious Pandas for stronger tactile feedback.

During the pandemic in 2020, I switched from QWERTY to Colemak. Unlearning the muscle memory took around three months and sometimes gave me a headache.

Since I spend most of my time in the terminal, I got used to the Emacs bindings in the shell prompt. My keyboard settings have a couple of Emacs layers that allow me to bring those bindings everywhere—the ability to create such layouts is one of the reasons I got the ErgoDox. Given a line of text, in a browser URL bar for example, I can hold a thumb cluster key which acts as the Emacs control/Meta and access Emacs-like functionality: delete the full line (U), delete the whole previous word (W), delete from cursor to the end of the line (K), or go to the beginning or end of the line (A, E). The I and M keys provide Tab and Return characters. The right side acts as a number or symbol pad when holding T or S down.

I like having a mouse layer, since that lets me quickly make small cursor movements without having to move my hand to the mouse. I have macros for typing R assign arrows (<-) and pipes (|>) and Vim search-and-replace (:%s/) command. When I don’t have access to my keyboard, I use kmonad to get a very similar layout on my laptop keyboard.

What would be your dream setup?

My many scripts make my work a lot smoother, but they have certain inconvenient edge cases I’d like to fix. I’m looking to switch to NixOS so the entire operating system can be described in text files. With my keyboard, I want to find a way to mount my ErgoDox to my desk and free up some desk space. Alternatively, I’d like to get a chair where the armrests are long enough to mount my keyboard to the armrests. This would let me rotate or move the chair without losing the alignment between my arms and the keyboard. I’m also interested in padding the keyboard to see if dampening would produce nicer typing sounds.

© 2025 ZSA Technology Labs, Inc.