BYO Recreation
January, 2021
I’ve been working for BYO Recreation for nearly two years now. One of my first major accomplishment was that I spearheaded migrating them fully into the cloud, so we could retire the aging local server. Though it would turn out to be incredibly useful several months later when the pandemic forced us to transition to working remotely.
Migrating BYO
I would like to think that one thing I particularly excel at, is being able to adapt to just about anything I work on. One example, as I mentioned above, I migrated BYO to the cloud; that was my first time using Amazon Web Services (AWS), and the first time I was orchestrating more than a single production server.
It should also be noted that BYO was partially in the cloud when I started, and despite only being partially in the cloud, their costs were through the roof. I reduced their AWS costs by 75%. I also set up robust automatic backups of all servers (nightly, weekly, and monthly). Migrating to the cloud involved updating all their PHP applications to support the current version, which was PHP 7.2 at the time; and migrating from MySQL to MariaDB which provided a surprising number of challenges due to some ill-designed queries.
Vigilant Form
One issue, that we had been contending with, had been spam form submissions. There had been a simple system for trying to identify bad form submissions, so that our sales team didn’t have to deal with them constantly. I ended up building out a new system, which could take form submissions from all of our websites, and evaluate them both on the submitted content, but also on the metadata about the submission.
After a form submission is received and stored, it is sent to a queue, where additional information is looked up such as geo-locating the IP address, validating any zip codes given, then it will be scored, categorized, and finally acted upon depending on how it was categorized. The initial version of the system was fairly simple, reviewing each form submission independently, scoring predominantly by the content submitted. The current version will flag things like excessive submissions from a single IP address, and compare the locations based on IP address, zip code, and phone number.