Work-From-Home Setup and Where To Evolve Next

Iuliu Pop
7 min readMar 6, 2023

I’ve been incrementally improving my home workstation as money and inspiration allows since I started learning web development.

Here’s the state as of my latest upgrade, mounting my Moonlander keyboard under the table vertically (~March 2023):

standing desk with under-the-table mounted split-vertical keyboard and laptop and second screen raised to eye level

Latest iteration (June 20 2023):

How I Mounted Vertically The Moonlander

The ZSA doesn’t sell an accessory to mount the Moonlander vertically (at least as of writting), but they have four screw threads in the back:

So to mount it vertically, I created a 3D model of a mount attach I can screw on the back of the keyboard, then use it to mount the keyboard to a camera arm:

You can download the .obj model file here: https://drive.google.com/drive/folders/1wD2qoIQIHiSbb2bYhX08Apgca7mDL2Bt?usp=drive_link

I used TinkerCAD (free) to create the model: https://www.tinkercad.com/

I got them printed and delivered from a local 3D print. After doing some research, I called to ask questions about material and thickness etc, then ordered online. (Web 3D Printing in Montreal: https://web3dprinting.com/). I did FDM printing with ABS PRO with full fill (as opposed to 80%) (I was paranoid about having to redo the plate). I also got one in PLA in case the ABS was too hard to melt to insert the knurled insert threads, but finally I did not try that method at all (I explain below).

Note that I messed up the measurements and the square the holes for the screws form is one or two millimeters too small. The whole square on all sides was proportionally too small but centered, so instead of redoing the model and reprinting, I got my dad to drill the holes a little wider in a diagonal sort of way to not make the opening so wide the screwheads slip through but still let them fit into the threads on the keyboard.

Another thing I messed up was the hexagonal extension I added to the mount attach, in order to put in the insert thread for screwing the camera arm in, was too large:

I had planned to heat the brass insert threads and insert them in a tighter hole such the plastic melts and it grips it (hence I got knurled threads):

However, since I made the hole too large, I had to change plans and fix them in the hole using epoxy. I used some plumbers tape (thread seal tape) to seal the inside of the thread so the epoxy wouldn’t fill it. I forgot how it was done exactly (my dad thought of that trick and did it).

The whole plate seems roughly twice as thick as necessary using , but that’s fine.

With those two tricks, I got the 3D print right on the first iteration! Maybe someone can fix the 3D model and I can update it so others don’t need to that.

I’m very happy with the outcome, the vertical mount is extremely comfy!!!

Clamp to attach the mount to the table: https://www.amazon.ca/gp/product/B075WP3H58

Two articulating camera arms to mount the keyboard: https://www.amazon.ca/gp/product/B07N3ZNG6G

Kurled insert nuts for attaching the camera arm to the 3D printed mount attach: https://www.amazon.ca/gp/product/B07LBRCRP6

Machine threaded 2.6MM X 8MM screws (in fact I got a few different lengths, I forgot which one I used, either 8MM or 12MM): https://www.be-electronics.com/product_p/54-411-100.htm (this is the only seller in Canada I found).

List of Stuff

The table top is from an old desk I’ve used since I was a kid when my family picked it off the street when we immigrated to Canada.

I ripped the top off the old desk and mounted it on this sit/stand desk frame that goes up/down with motors: https://www.amazon.ca/gp/product/B0794XZC8X

Laptop Stand: https://www.amazon.ca/gp/product/B00FPUREPO

Monitor Mount: https://www.amazon.ca/gp/product/B01B3GUMM0

Second Monitor: https://www.amazon.ca/gp/product/B008DWITHI

Webcam: https://www.amazon.ca/gp/product/B07TZT4Q89

Mic: https://www.amazon.ca/gp/product/B07ZPBFVKK

Boom Arm: https://www.amazon.ca/gp/product/B001D7UYBO

Mic Foam Ball: https://www.amazon.ca/gp/product/B0002GXF8Q

Mouse: https://www.amazon.ca/gp/product/B07FNJB8TT

Drawing Tablet: https://www.amazon.ca/gp/product/B079HL9YSF

Headphones: https://www.amazon.ca/gp/product/B01N7S0IPR

10K Lumen Light Therapy Box: https://healthlighting.com/products/aurora-full-spectrum-light-therapy-box

Standing Desk Mat: https://www.amazon.ca/gp/product/B00V3TO9EK

Stool: https://www.amazon.ca/gp/product/B097R41S5N

Ethernet Adapter (better than Wifi!): https://www.amazon.ca/gp/product/B085DJLDBC

Ethernet Cable: https://www.amazon.ca/gp/product/B085ZZS251

Arthritic Gloves (they do a great job at relieving discomfort, but don’t need them much anymore): https://www.amazon.ca/gp/product/B0006U7YEY

Whiteboard: https://www.amazon.ca/gp/product/B084P1KM37

Further and Onward

I have so many ideas for where to continue evolving the setup!

Two main branches of exploration I imagine right now. I’ll call them “innate domain” and “neuromancer-type stuff”.

Innate Domains and Magic Circles

Recently, I’m fascinated by applying the idea of “Innate Domains” and “Barrier Techniques” from the manga Jujutsu Kaizen to workspace design. Jujustsu sorcerers manifest their innate domain through an advanced technique called domain expansion. A “domain” is a sort of metaphysical place that represents/is the mind/heart of the sorcerer. A domain is manifested by erecting a physical barrier and the enclosed space forms a sort of an alternate reality with its own rules. The rules form some sort of tradeoff advantageous to the sorcerer. See where I’m going with this? I want my workstation to have a distinct physical barrier, perhaps a veil, and when I enter, it’s as though I enter a magic circle into a sacred space. I have to conform to the rules of this alternate space, but in exchange, I’m granted exceptional abilities.

I suppose ultimately is about having a broader imagination about what kind of world I enter when I sit down to work. Then using some sort of physical barrier and environment to trigger the transition to that world. When I think of what sort of world I want to do my work from, I think of Netero from HunterXHunter (another manga) vowing out of gratitude to throw ten thousand punches a day.

“Frustrated by the upper limits of his physical and martial arts skills… he pondered and reflected.. and came to the realization he was grateful” - HxH chapter 265

If I had an innate domain, I hope it would look like the sober mountains Netero trained in. I hope would I overflow with gratitude for the opportunity to practice my craft of software engineering, to mature along my path of mastery. I hope my every mental movement would come from a worshipful prayer for a peaceful future for humanity, for a technological civilization that helps humans flourish. After all my work as a software developer is not values neutral. So, I’m exploring how I can create a “magic circle” that when I enter, triggers this sort of relationship towards my work. Here’s a first sketch:

Sketch of where I imagine evolving the domain over time

Neuromancer-type Stuff

I’ve never read Neuromancer, but the sound of that gives a good impression of the space I picture exploring.

I’m running out of time before bedtime to write this, so let me throw out a quick draft.

I want my workspace to help me explore and modulate the neuro-cognition of programming and learning.

Some ideas in this space:

  • Neurofeedback training guided by Peak Brain Institute
  • HRV biofeedback ala HeartMath
  • Other tools for measuring attention/focus and nudging it/adding control loops to move it in desired direction.
  • Most interesting one by far: implementing some kind of Idea Flow tool on MacOS or VS Code. Essentially measuring the cognition of programming (the flow of ideas from the code to your mind, and from your mind to the code) to learn objectively sources of “technical debt” (sources which hamper the flow of ideas by causing a “WTF moment” where the behaviour doesn’t match your mental model so you have to investigate X time to reconcile your mental model with the code) and optimize the flow of ideas. This could be supplemented by a system recording your eye movements (using an eye tracking device) and screen recording. Your pupil dilation correlates strongly with cognitive load. If cognitive load is too high, then it likely means you’re stuck with a problem that doesn’t fit into your working memory and need to shift to a different level to reframe/break down the problem so that you work with a smaller piece more efficiently. Recordings of eye movements correlated with the code you’re reading can be used to learn what patterns indicate someone familiar with the codebase or general expertise, and perhaps extract some insights for coaching/teaching people.

--

--

Iuliu Pop

What do you want to be different at the end of your life as a result of your actions?