Home Consumer Home Lab Deep Dive: A Software Engineer’s Setup

Home Lab Deep Dive: A Software Engineer’s Setup

by Guest Author

I am a software engineer with an interest in computer networking and security. The intention for the homelab is for self-learning on computer networking plus the ability to stand up software development environment and infrastructure needed for work related prototype. I also want isolation between work, entertainment, utilities (network printer, NAS) and IoT devices network so VLANs was my answer and hence I got an entry level Edgerouter X.


I am a software engineer with an interest in computer networking and security. The intention for the homelab is for self-learning on computer networking plus the ability to stand up software development environment and infrastructure needed for work related prototype. I also want isolation between work, entertainment, utilities (network printer, NAS) and IoT devices network so VLANs was my answer and hence I got an entry level Edgerouter X.

So a little more background about myself. I am a software engineer who works remotely from home about 95% of the time. The company provides development VMs hosted on company network that can only be accessible through VPN were just too slow and therefore I start building development VMs at home to do work and prototyping.  That was the original intention of my homelab. It is mainly for work so I can work more efficiently without worrying about the slow connection to company provided development VMs.

Originally I have all my VMs hosted from my Windows desktop using Virtual Box but RAM became an issue when I start to add more VMs to it and that is when I started to think about getting myself a dedicated bare-metal hypervisor. The company that I am working for is more of a software solution company than a software product company. We design and implement solution based on requirements given to us from our clients.  One of my projects requires us to aid implementing a continuous integration environment for their software, and I learned that the client is using VMware vSphere as their VM infrastructure.  Because of that reason I decided to use VMware ESXI as my hypervisor in my homelab so that I can kill two birds with one stone, that is while I am learning to setup my homelab, I am also getting my training to get familiar with the VM infrastructure that my client is using.

I have about 5-6 Windows VMs running on my ESXI that are running with Jenkins in master/slaves mode. One good thing about Windows is you can install as many Windows OS as you want and not activate it but still pretty much functional minus you cannot adjust personalization settings like wallpaper and you get reminders to activate your windows on the desktop all the time.

I also have another 5-6 Linux VMs that I use for development. My habit is creating a base bare-minimum Linux VM, and for each project, I will just create a new VM by cloning from the base Linux VM. Some people like to use a single development VM for all projects but I like to have one development VM per project simply because it’s easier to track software and library dependencies when you start with a base bare-minimum VM. That’s the beauty about virtualization, you can clone VM, you can create new VM and when you don’t need it, you can shut it down or just delete it. If we just rewind to late 90’s, virtualization wasn’t even a thing. Technologies advance so fast and now the latest buzz is containerization. Virtualization plus containerization makes thing even easier.

My Linux OS of choice is CentOS/Red Hat Linux Enterprise. Again, the reason why I picked it was because most of my clients are using RHEL so I decided to use CentOS. I am mostly on RHEL now because RHEL subscription is free for developers.

There’s also my Unraid server. I originally owned a Thecus N4100EVO NAS that I configured with RAID5 using 4x3TB Seagate ST3000DM001. Within the first two years, 2 out of the 4 Seagate drives failed on me and at the same time. Luckily I was able to recover it thanks to Thecus tech support and Clonezilla to clone my bad drive to a new drive. I was dumb enough to purchase another Seagate ST3000DM001 as replacement because I thought keeping the same drive and model is very important for RAID. I think 2 years passed, another Seagate drive failed on me, and I finally replaced it with a 3TB Seagate Ironwolf.  And fast forward, recently a lot of reviews and deals site confirmed that the Best Buy WD Easystore 8TB and 10TB actually have WD Red drives inside so I picked up one 10TB and 2x 8TB WD Easystore from BestBuy, shucked them and took the internal drives to use it to build my Unraid server. After those 3 initial drives were installed then I move all the data from the NAS to Unraid server and at the end move all 4 hard drives from the original NAS and added to the array pool in Unraid. The Unraid server is used to store pictures, movies and songs. I also use it to store some old software, drivers and Windows/Linux distro that are hard to find online.

Noe to me Edge Router X. Its main functionality obviously is for routing but the other important feature that I utilized is VLAN. I separated my network into 4 VLANs.

  • VLAN 10 is mostly for all utility services such as printers, NAS and network monitor.
  • VLAN 20 is my work network. It is the network where majority of my development VMs reside.
  • VLAN 30 is my entertainment network; it is where my game consoles, smart phones, TVs and IoT devices connected to.
  • VLAN 99 is my guest network.

WiFi serving is thru Unifi AP AC Lite because it can support multiple VLANs.

Currently there are 3 smart switches connected to the Edge Router X. They are:

  • Netgear GS108Ev3 (8 ports) located in the basement where my office is
  • Netgear GS108T (8 ports) located in the basement where my office is
  • Cisco SLM2008 (8 ports) located in my living room on the 1st where all my entertainment devices are located

My servers include

  • A custom build Ryzen 1700x with 32GB of RAM as ESXI server
  • Dell PowerEdge R420 Dual Xeon E5-2440 with 96GB of RAM as ESXI server and hosting the vSphere server as a VM.
  • A custom build Intel i7 2600K with 32GB of RAM as Unraid server

The VMs hosted on the ESXI server are mostly my development VMs other than the vSphere Server, Zabbix server (network monitoring) and a VM for hosting common services via docker (pi-hole, yum repo server, forward web-proxy, unifi controller).

Recently I bought purchased a TP-Link TL-SG1016DE 16 ports switch that I plan to retire one of the 8 ports switch. The intention is to try setting up static aggregation on the ESXI and Unraid servers. My homelab will continue to grow and evolve, I’m hopeful that sharing my story will help others in the community with their own journeys.

– David C.

This post is part of an ongoing series of user-submitted content dedicated to exploring the fun and challenges of building, maintaining and sometimes building again a home lab. This series is in partnership with our friends at /r/homelab. If you’re interested in sharing your set up, please send an email to [email protected]