I was given a fun mug along with others on my team as thanks for finishing a huge milestone at BombBomb. Illustrated by Microsoft Bing's Image Creator, it depicts the PostgreSQL elephant applying a karate kick to "Big Red" (better known as Oracle). It's my new favorite.
BombBomb recently finished migrating its entire website from using Oracle databases to PostgreSQL, completely replaced in all apps and tasks. This involved 20+ team members, thousands of database query conversions, and several terabytes of data over the course of 15-ish months.
Oracle was expensive. Despite many data optimization efforts leading up to this shift, we had reached a threshold where enterprise billing became a requirement (thousands to million+ dollars per year 😬). PostgreSQL turned out to be a great replacement, greatly reducing costs while maintaining performance.
Does that make Oracle bad? Well, I can't answer that. From my perspective, I had a harder time finding good documentation for the more complex topics, relying on information sources such as Tom's Blog and Oracle World (weee!) rather than official documentation. Official documentation wasn't bad for the simpler things.
Not all our time could be spent making a database change. BombBomb dedicates the majority of its time serving its customers to enable them to send personable communications to their customers. Much effort was applied at all levels to push this significant endeavor through in a distributed way. It took the entire village.
My part in this project was relatively small. In fact, I focused primarily on making things smaller, offloading terabytes of infrequently accessed CLOBs to S3 for reads/writes (much before migration began for general cost savings). I also spent time working through a legacy product to get that working well in Postgres, along with converting other queries in different areas. Super thanks goes to the ops and dev gurus who helped me work through the tough spots!
Being able to jump around our codebase to revise queries here and there was super cool. As a developer, I tend to get hyper-focused on one area of our product at a time. This process felt like a grand tour of a large time capsule. Less accessed and older code had more dispersed patterns while newer code was much more united and composable. Some of the older surviving code from startup beginnings was a bit harder to test (before unit tests became a more prominent thing in the industry) while newer efforts were a breeze most of the time. It was a testament to how much this team has evolved and grown, together.
The new mug is filled and ready while I work on the next cool thing: a pass at further modernizing video navigation and composing emails.
🤖 Fun:
While I photographed the mug, the background (including mug handle!) was generated by DALL-E 2. I wrote the post. It was proofread/copyedited by ChatGPT-4. (How did it/we do?)
Posted: 2023-05-19