Projects

This Site

HTML/CSS
Node.js
Markdown
Python

A static website.

The front page, which you may have already seen.

My old website was outdated when I built it. In 2017, I just needed a fresher web presence of any kind, and merely getting something up on AWS was good enough. Now, in 2023, I needed something that looked mid-career professional. However, I don’t want to pay for the luxury of a dynamic website, especially in these the days of inflated compute costs thanks to everyone making a ChatGPT-killer and running it on the same company’s servers.

In the past, I’d played around with Django, and wanted something similarly Python-based. I started with Hugo, which was promising but quickly soured after encountering version mismatches with nearly every template I downloaded. I wanted to bootstrap relatively quickly, and debugging templates was not helping.

I read up on other major static site generators and choose Astro. It’s lightweight and simple, runs on Node.js and TypeScript, both of which I’ve written a little of in previous roles, and the templates are modern and professional enough. Sure, it lacks some of the simple deploy tools of something like Hugo, but it’s well-documented and gets as complicated as you want it to. The basic layouts are also clean and responsive, a far cry from the last time I built a site and hoped for the best when it came to bootstrap reacting well to whatever aspect ratio I threw at it.

The were many cosmetic adjustments made, but one of the major changes I made was to the order of the project page. I added a specialized field called display_order, hidden to end users. This was to allow me to customize my sort rather than sorting by date, so I can tailor my posts - and in particular, my front page display - to focus on specific content.

Many of my out-of-work projects are directly related to my roles - learning PCB design and fabrication or machine learning is interesting to employers, but not necessarily when focused toward making music. I didn’t want to not represent that experience, so using a customizable ordering and filtering mechanism allowed me to keep that info without it overtaking what a professional profile would surface first.