Second Preface

by Nick Wilcox

I first met Rudd Crawford and Michael Henle over five years ago, in 2017, for a winter term project at Oberlin College. Rudd was our "client" and Michael, a professor emeritus from the Math department, sponsored the project for academic credit. The task was to create a website for Rudd's collection of non-routine math problems known as Stella's Stunners.

I worked with a group of students in the Mathematics and Computer Science departments to go through Rudd's corpus of data and create a website to host them. Additionally, users of the website would be able to create their own problem sets in the form of downloadable PDFs.

The simplest way for us to achieve this was with a LAMP stack in a virtual machine managed by the Computer Science department. Everything was on one machine, and I had written enough LaTeX by then to know how to create PDFs using our database and the user's form inputs. I don't recall just how far we got, but I continued to make improvements with some of the other computer science students in the spring semester, until I graduated later in May of 2018.

From LAMP to NodeJS

A year or two later, Rudd Crawford reached out to me. Another student had helped further develop the site and migrate it to a different host, up until getting burnt out and unable to troubleshoot whatever issues he was facing. I believe it was a missing environment variable or some configuration that made the document creation work. (Michael was now sponsoring the website financially.)

In any case, I had almost two years of professional web development experience when Rudd called on me. Given what I had learned so far and what the new hosting platform offered, I decided to remake the website from scratch so that it was easier to maintain. The new stack, for those who are familiar, was a VPS that ran NodeJS, so I could use my favorite JavaScript tools at the time (webpack, express, pug, and so on...). The tools for making PDFs with LaTeX were also available on the same machine that ran the web server.

The Cloud and Beyond

Eventually, VPS support for NodeJS was deprecated from our hosting platform. I needed to redevelop the site again out of necessity so that each piece ran in its own node instead of all on the same machine.

This was a long and difficult process, but not because the site itself was too complicated. Rather, I had no experience with Docker or any technologies related to cloud architecture, and I was already busy learning new things at my job (or finding a new job after quitting my last one). I ultimately figured it out, and the site was more or less stable.

As I progressed in my career, I learned new skills and techniques, and I once again proposed a new version of the Stella website to Rudd. This took a long time to make happen for similar reasons as the recent migration from the VPS to the cloud. Ironically, the skills needed to create this new version of the website were the same skills I had to teach myself at my job. I had no one to mentor me through developing and deploying applications with kubernetes. There are junior and mid-level web developers across the world no doubt going through their own DevOps-related nightmares.

I found my light at the end of the tunnel, and it's here. I've formally taken over Stella's Stunners, and Rudd has moved onto other projects. This website is mine, and I intend to take good care of it.