My Writing Environment As a Software Engineer

TL;DR: Get a good text ed­i­tor, and get good at us­ing it. Keep a notepad by your side. Find a quiet place to write.

Writing is one of life’s greater joys. It’s a men­tal work­out that of­ten brings me a level of clar­ity that is hard to find else­where. I have never sat down to write for an ex­tended pe­riod of time with­out com­ing away with a greater un­der­stand­ing of my­self and the uni­verse.

I imag­ine that sounds pretty cheesy.

I just want to im­press upon you the im­por­tance writ­ing has had in my life. As with any­thing this im­por­tant, I have an in­stinc­tual urge to op­ti­mize it. As soft­ware en­gi­neers, is­n’t that part of our modus operandi? To spend an un­nec­es­sary amount of time op­ti­miz­ing things?

Well, that’s ex­actly what I’ve done. Over the years, I’ve spend a un­ruly amount of time tweak­ing and chang­ing the tools I use to write. I’d love to talk about em.

Neovim

In the past few years, Neovim has the talk of the town. Its an­ces­tor, vi was borne from the ob­ser­va­tion that most writ­ing is re-writ­ing, and thus it in­cludes a vast ar­ray of spe­cific tools for edit­ing text, rather than writ­ing it. r/neovim has swelled to more than 110 thou­sand weekly vis­i­tors and thou­sands of plu­g­ins and LSPs to choose from.

Unless you choose a pre-built dis­tro like LazyVim, Neovim does very lit­tle out of the box. It is through re­lent­less cus­tomiza­tion that it be­comes some­thing truly pow­er­ful. Be­side the var­i­ous key­bind­ings in my con­fig, the im­por­tant plu­g­ins and tools that I use are:

Harper

As I’m the chief main­tainer, this one should be of no sur­prise. Don’t worry, I won’t give you the mar­ket­ing spiel. I’ll sim­ply say that Harper is a gram­mar checker that hap­pens to work ex­cep­tion­ally well in Neovim.

Zen Mode

Zen Mode: Activated

Plain Neovim or­ga­nizes each file to cover the max­i­mum amount of space on-screen. Prac­ti­cally, this means most of my text ends up on the left side, which can hurt my neck. Zen mode re­stricts the width of the file and cen­ters it on the screen.

Tatum

A screenshot of Tatum at work

Tatum is a small tool I wrote in a few hours that lets me live-pre­view my Markdown as HTML. I won’t re­peat my­self. If you’re cu­ri­ous about Tatum, check out my pre­vi­ous blog post.

More Details

If you’re thirsty for all the de­tails of my Neovim setup, take a quick look at the con­fig­u­ra­tion code on GitHub.

ReMarkable 2

A few years ago, while I was still in school, I splurged and pur­chased a used Remarkable 2. Even now, there is rarely a day that goes by where I don’t use it. Sure, every­thing it does could be eas­ily ap­prox­i­mated by pa­per. On the other hand, the thin de­vice saves my back when­ever I have to travel and there’s a cer­tain joy that comes from us­ing an e-ink de­vice like this.

A Recent Brainstorming Session on the ReMarkable

I mostly use it to read dig­i­tal books and blog posts, but it’s also come in handy for get­ting around writer’s block. Be­ing forced to slow down and use my hand to write, rather than a key­board, is quite help­ful in some in­ex­plic­a­ble way.

A Quiet Space

More im­por­tant than any text ed­i­tor, at least for me, is a quiet space.

As I said be­fore, writ­ing can take real cog­ni­tive ef­fort. A space with dis­tract­ing noise can make it un­nec­es­sar­ily hard to get words on pa­per. I’ve found lo­cal li­braries or co-work­ing spaces to be great places for quiet au­thor­ship.

Whatever you do, do not lis­ten to mu­sic with words in it. Even if it feels more pro­duc­tive, I retroac­tively find that it makes me less so.

Conclusion

There’s prob­a­bly some more im­por­tant points I’m leav­ing out, but I def­i­nitely be­lieve I’ve hit the big three. For me, the most im­por­tant parts of a good writ­ing en­vi­ron­ment, as a soft­ware en­gi­neer, are my text ed­i­tor, a notepad, and a quiet space.

Published October 5, 2025 at 6:00 AM

Proofread by Harper.

Comments

Gravatar for danielwtompkins@gmail.com
Dan

Cool stuff!