The Pages

This website's pages are written primarily in PHP and JavaScript, with knowledge of HTML and CSS required for their design. All of these pages were written in those languages by hand, from the ground up - I used no external libraries or frameworks. While such tools might well have made the process easier, I wanted to showcase my familiarity with the basics; even if your work involves high-level frameworks, a knowledge of the foundation they're built on makes learning and working with them much easier.

While my graphic design skills are far from perfect, I place significant focus on the functionality in these pages. You should be able to navigate this site and operate its projects with ease on any device; if you find any areas where this is not the case, feel free to contact me! I'm more than willing to implement UX changes based on your feedback.

The Server

This page is served from an Ubuntu machine running a traditional LAMP (Linux, Apache, MySQL, PHP) stack. All of my web development experience is with LAMP stacks, due to their availability and simplicity. I connect securely over SSH and SFTP when I need to perform maintenance or update the pages - that said, for some past applications that require more attention but less security I've set up password-protected moderation pages, which can be very useful for performing tasks quickly or from a mobile device.

The Hardware

This website is currently running on a Google Cloud Platform Compute Engine VM - specifically, an e2-micro instance (within Google's free tier), since its compute requirements are very low. Much of my web hosting experience is with Amazon Web Services, so I decided to host this site with GCP to get some experience with them too. While this site isn't demanding enough to need things like a CDN or load-balancing, just having a feel for the system is valuable, and I'm confident that I could deploy a solution to either AWS or GCP, as needed.

Additionally, the domain name for this website is held through Google's domain service, and I set up the zones manually. Luckily, Google hosts the zones on their nameservers - with one previous provider, I was required to set up the site as its own nameserver, including manual handling of zone files. While that was a useful experience that taught me a lot about internet protocols, I'm happy that simpler solutions are readily available nowadays.