Zachary Hoagland

My Portfolio / Personal Website

The place I showcase my projects and my thoughts to the world.

Overview

Date: 2019 - Now | Role: Owner / Sole Dev

The original purpose of my personal website when I was in college was to be a digital version of my resume. As I got older, I realized the importance of projects, documentation, and conveying complex ideas in a digestible manor. I also became a seasoned developer who had the skills to not just use a simple no code solution to host and make my website. So, the next version of my website was in sight.

The Goals

  • Keep the website minimal
  • Self host
  • Stay safe
  • Keep costs to a minimum
  • How I achieved each goal

    Keep the website minimal

    At my core I am not a web developer. I love the hardware too much to make the leap to front end. I wanted my website to express that visually. This means not to go over the top with CSS and JavaScript. Sure CSS is inevitable to get something worth looking at but, I wanted it to feel like a simple and clean website. No fancy animations or carousels. I must admit, a LLM was leveraged for questions regarding my CSS issues. A useful tool for someone with little experience doing website design.

    Self host

    I have a homelab that I run out of my house. It is a collection of servers and networking equipment that I use to learn and experiment with. I wanted to leverage this existing infrastructure to host my website. This meant setting up a web server, configuring DNS, and ensuring that my website was accessible from the internet. One other benefit of self hosting is that I have a runner for my github actions, /CD pipeline, so when I push changes to my website repo, it automatically builds and deploys the changes to my web server. Making updates to my website a breeze and not even requiring me to be home to do so or pay for the compute time on a cloud provider.

    Stay safe

    Security is a big concern when hosting a website. I wanted to ensure that my website was secure and that my personal information was not compromised. This meant setting up SSL, configuring firewalls, and ensuring that my web server was up to date with the latest security patches. I also wanted to ensure that my website was not vulnerable to common attacks such as SQL injection which is why I chose to server my website as static files. This means that there is no database or server side code that can be exploited. I also use Cloudflare to help protect my website from DDoS attacks and other threats.

    Keep costs to a minimum

    Hosting a website can be expensive. I started on AWS but quickly went through the free tier limits. That meant down time and or increased costs. I have the equipment to self host and I could then leverage free services such as Cloudflare for DNS and SSL. The only cost associated with my website is the cost of my internet connection which I would have regardless of whether or not I was hosting a website as well as the cost of my domain name which is around $60/year. Having my own server also means I can host other things as well such as a blog, a portfolio of my projects, and other things that I want to share with the world. Which I plan to do in the future.

    Outcome & Learnings

    I learned a lot about how the internet serves content in general. I also explored a lot of technologies related to web hosting, Docker, and CI/CD pipelines. Things I've wanted to explore in more detail but never had the vehicle to do so. I learned the basics of HTML and CSS which I had never done before. The difference between static and dynamic websites, HTTP vs HTTPS, and how DNS works. Now I even run a custom DNS server at home to easily map the IP addresses of devices on my home network to memorable names.

    Key Technologies explored, learned, or improved proficiency in

  • HTML
  • CSS
  • Docker
  • CI/CD
  • DNS
  • Port Traffic Management
  • Web Server Static File Hosting
  • Summary

    My website isn't supposed to be flashy or fancy. It is supposed to be a simple and clean representation of who I am and what I do. It is a place where I can showcase my projects and my thoughts to the world. I hope you can appreciate the simplicity and the effort that went into making it. If you have any questions or comments, please feel free to reach out to me via the contact page. I'd love to hear from you! It ain't much, but it's honest work. meme

    Back to All Projects

    Back to Homepage