Developer Musings

moon
sun

Personal Infrastructure

📅 June 16, 2020 - 5 min read

After seeing the amazing posts by both Stephan Wolfram and Jess Frazelle, I wanted to chime in on my “personal infrastructure”. I’ve always found stories about how people work, their little scripts and hacks they use and the machines they operate on, to be incredibly compelling - usesthis is a great site dedicated to that very subject.

Principles

I have two principles that I keep close to mind when looking to change or add to my setup.

  1. Productivity - although I dislike the word (it sort of leaves a plastic taste in my mouth), productivity or rather getting the right things done is something that I’m always cognisant of. Because time is always a constraint, I look for ways to reduce the time I actually have to be doing something.
  2. Automation - this sort of links with the above but automation is a guiding principle in my life because the enjoyment I get from having a computer do something I did previously is overwhelming. I am fascinated by small scripts, cron jobs, and simple bots. I utilize all sorts of services to automate tasks. If there is a recurring activity I perform, in all likelihood, I will automate it.

The Daily Grind

Currently, I work as a Senior Software Engineer for Cappfinity. My role is heading up development on a product called Koru which was purchased as a startup. The job, rather generously, purchased a 2019 Macbook Pro with 32GB Ram for development usage. It works great asides from the occasional sluggishness. I’m fortunate as for personal work, I use a Macbook Pro as well so the context switching between the two devices was minimal.

I keep this Macbook primarily “clamshelled” on my desk in a black metal stand I got on Amazon. It is connected via a DisplayLink dock to two 24 Inch Monitors.

I use a Logitech K380 for typing. As much as I would love a mechanical keyboard, my catastrophically frail wrists cannot bear the strain of the key travel. The build quality of the keyboard is not great and is more plastic than an American news presenters face, but it has a great 3 device bluetooth switcher which allows me to toggle between my personal and work laptop’s as well as my gaming PC.

I put an MX Master 3 on the right hand side of my keyboard - again it has the same great 3 device bluetooth switcher. And a Magic Trackpad on the left. I occasionally swap the two but generally it stays in this configuration. It sounds odd, but it’s nice to have the options and reduce the repetitive movements I do.

During lockdown, my wife was able to spend some time redoing both her art studio and my office. She painted it a subtle green and chose an “urban jungle” theme. I’ve always loved bringing nature indoors and having lots of plants around really helps me focus and not feel like I’m in an office. Makes it look a more bright and vibrant environment, rather than a dull dreary office.

Health

My wife, kindly, bought me a Herman Miller Aeron for my desk after “relentlessly moaning” (according to her - what does she know) about my previous chair - which was as comfortable as a church pew. The Aeron is like being cradled by 4 angels and has helped my posture and fatigue massively. Yes that’s right, fatigue. Sitting down all day can be tiring in a weird way, due to the lack of lower body movement. I’ve tried to alleviate this by taking regular breaks and working in different environments. It was the best present she’s got me to this day and will make a huge difference to my daily life.

Furthermore, I’ve found the amount of water I drink to be a big factor in my mood. I know attempt to drink around 4L of Pure water per day as well as a coffee or two. I try to avoid caffeine after midday as I find it affects my sleep quantifiable.

Personal Work

Asides from my day job, I am working on a SaaS business, TurboAPI, and a charity, Alex’s Wonderland Puzzles (that is still undergoing heavy development).

In the case of the former, I develop the application using Typescript and host on AWS and DigitalOcean with Docker - because ECS is more hassle than it’s worth. The frontend is hosted on Netlify and is built using React. I am looking to dabble a lot more in Golang and Rust, so I can work closer to the metal. Golang in particular introduces some new paradigms that are interested to me, and I believe would benefit me. However, my current spare time is dedicated to TurboAPI and Alex’s Puzzles so I have that learning on hold for the time being.

For the puzzle company, my role is a little different. I’m in charge of sorting manufacturing, marketing, website development/maintenance and design. For this, I take details notes in Notion as it allows me to create tables, lists, charts and anything else I want. The website was built very simply using React and will soon have a store hosted with Shopify. I do designs in whatever notebook I have to had - usually a moleskin.

On both my work and personal setup, I take notes in a private repo in GitHub. It allows me to jot my thoughts quickly and frictionlessly. I also write post mortems in there from any projects I’m working on. I’ve never been in an organisation that does public post mortems, but I find them good practise to really nail down the issue that was at the heart of the problem.

Conclusion

I’ve got tonnes more to talk about here, but I want to keep this post short so I’ll bid you all adieu and goodbye. In the next post I’ll discuss my personal slack hub and automations I’ve been working on. Stay Tuned!


I'm Josh Ghent. I make robust apps for the web. I wrangle code at Cappfinity. I act as lead maintainer of ESFiddle and organize LeicesterJS