I stumbled across this Carnegie Mellon University database course a year or two ago and this guy gets really deep into the technologies behind a database. Here's the list of YouTube videos of lectures that the professor has posted online:
Goodness, this takes me back to a my junior year of my Computer Science undergrad degree. One of my classes was one long project of writing a compiler to handle the professor's made up programming language.
Hah, I had exactly the same experience. I followed a compilers course and the task was similar, but we had to use some whack compiler framework without any documentation. Apparently the professor was the only user of the framework, but nobody dared to ask any questions about it because the professor would ridicule you if you asked any question that was not an open research problem.
I took compilers twice— I had to drop it the first time because I chose to use a different language and tools than the rest of the class, and the parser generator I chose didn't accommodate the kinds of error messages we needed to produce. The issue only became clear to me a few months into the class.
The second time I took it, things were relaxed a bit— the curriculum was designed around working in a high-level language (Java) and we got to write an interpreter for a nice intermediate form based on a simple VM instead of compiling all the way down to machine code.
So there were definitely some differences and they did make things easier! But I still remember this as one of my favorite classes, and I'd love to take it again and go 'all the way'.
It seems like a lot of CS majors find compilers to be the hardest course of the degree, indeed, it was the capstone for my degree. I found it to be quite fun and not particularly intensive once you wrapped your head around each new concept. I found CS Theory and Operating Systems to be much more difficult material, although both of those courses had less actual work.
What was most shocking to me was that it took a week to migrate 40GB.
I once migrated 1TB from RDS Oracle to RDS Aurora MySQL in 6 hours. I'm not familiar with Supabase, maybe there's a lot more to the data migration process?
Supabase developer here. It shouldn't (and doesn't) take a week to migrate 40GB, I'm sure most of that time was strategizing, analyzing, and testing things. Supabase is pure Postgres running on AWS, so migrations are pretty straightforward. Things mostly depend on where you're migrating to/from, and the network latency between the source and destination. 40GB should take minutes in most cases.
There were a couple of factors why it took a week:
1. We wanted to avoid downtime, so the pg dump was slowed down because it was happening alongside production use of the db
2. We abuse postgres in a couple of ways (too many large json columns) which makes it harder to export and import
3. We were moving between cloud regions and cloud providers.
4. I'm a bit of a database ops noob (part of why supabase was appealing in the first place) so I had to learn how to do all these things. Like burggraf said, a lot of that week was planning, trial and error, test runs, mistakes that would cost full days, etc.
While studying Computer Science as an undergrad, I took a SNOBOL course (or maybe it one of the languages taught in a general coding course) ...either way, it was glorious. I love languages that are 'task-oriented'.
My all-time favorite was GPSS (General Purpose Simulation System) which would simulate transactions in a model...think of cars arriving from four directions at a traffic light. You could tweak the car arrival times and the length of red/green lights and get different outputs for 'wait time'.
I loved it so much, I asked my professor if there were good opportunities for a career using GPSS. He answered 'no' (LOL) and so I never pursued it.
https://youtu.be/a9FfjuVJ9d8