Teachings from years of HomeLab

Teachings from years of HomeLab
Photo by Thomas Jensen / Unsplash

I've been doing HomeLab and HomeLab-adjacent things for over 10 years at this point (based on the ago of Pi-hole and Raspberry Pi 2, this would be closer to 8+ years). My first experience in the space was a Raspberry Pi 2 that I used for a few years to run various services such as Pi-hole, CUPS, and numerous other software. Since then, my lab has had various iterations, both software and hardware wise.

Over the years, there are a few things I've learned about labbing and it's usefulness outside of the lab. I'm going to split these into two sections, Personal and Professional, discuss the aspects of the lab that fit in these sections, and my learnings.

Personal

These are aspects of having a HomeLab that impact personal areas of your life, the parts that don't earn you money.

HomeLab or HomeProduction?

When you are running a lab, it's very easy to go from a lab to production. Once you start providing services to someone else, you should consider this a production service. This could be anything from media streaming, DNS ad-blocking, to home automation. While it's nice to be able to provide these services to friends and family, you should do the following:

  1. Set the expectation that these services are involved to get working and can sometimes break unexpectedly, and that fixing them can take a while.
  2. Split up your production services and lab systems. This could mean running them on separate hardware and/or ensuring that your production services don't rely on any of your lab systems.

In my experience, if something breaks, it's not much fun having someone ask when it's going to be working again, especially if you are in the middle of trying to fix the issue.

Downtime Gets Annoying

Even if you set the expectations mentioned above, if your services are always down (whether it's just yourself, or others using them), you'll stop using them and trusting them. That might not be a problem if you are just testing them out, but if you are hoping to rely on them, you should plan to be able to keep them available when you need them.

This might mean investing in newer hardware that is less likely to fail and give you increased performance so that things are snappy and responsive. Even if you are just testing, waiting for pages to load or software to install gets boring fast and can put you off using your lab. I very quickly upgraded from that Raspberry Pi to a low-end consumer desktop that I built, which was much more reliable and significantly faster.

It could also be finding software solutions to limit downtime in your services. Instead of running everything installed on one OS, look into splitting your software installs across various systems via VMs or solutions like Docker so that there are less conflicts and services are easier to debug. This also goes for things that could share resources, like databases. While it can be nice to have a single database server and multiple databases, it's generally more secure and easier to maintain if each service has their own database server.

Professional

This section is focused more on the money-making side of having a lab, specifically as it applies to learning and job seeking.

Jobs

While I've seen people argue back and forth about putting your homelab on your resume, my recommendation would be that it's not super useful to put on your resume, and don't put your lab experience as work experience. You should work it into your interview if possible though.

My reasoning for this is that putting "HomeLab" on your resume doesn't say much about your skills, and it's not likely to get your resume picked over another person's. However, if you can work it into an interview, it shows a willingness to learn and apply yourself. Something like "I haven't worked on that professionally, but I've done X, Y and Z in my lab..." also helps to show critical thinking skills and being able to apply knowledge from somewhere else into the task at hand.

Test Environment

If you like, you can try to set up your lab to be able to test work-related things, such as new software or services, or even scripts you may be writing. I personally haven't found this too helpful as my work does not give me any lab licenses and our environment is so complicated that it would be impossible to build a fraction of it in my lab. If your job provides licensing and/or it's a more simple environment, go ahead and use it for testing - just don't try to copy any proprietary or confidential information from work to your lab (this isn't legal advice, just a suggestion).

Schooling

This is niche, however, if you are just getting into school (specifically for IT-related programs), it can significantly pay off to have a cheap lab to review course material and study for tests and exams.

In my case, I had a lab for a couple of years before going to college and I was working with various systems like AD, Exchange, Linux, etc before they were taught in class. This gave me an advantage throughout my program and made exams a lot less stressful.

Closing Thoughts

These are some of the things I've learned after having a HomeLab for over a decade. I'm sure not all of these will be relevant to you, but hopefully you've found some of the information useful.

What sorts of not-exactly-technical teachings have you learned from HomeLabbing? Feel free to share them in the comments!