Please note that when I talk about database programming, I’m trying to refer to writing database source code. I’m not referring to using databases or to security. Sorry if that isn’t clear from the title- I figured I’d clarify that first.
I really loved my databases class in my Master’s program (we learned about concurrency control, recoverability, and a bit about database tuning). While I’m not even remotely close to an expert, I thought that I’d at least be reasonably well prepared to take a look at source code and maybe do some programming. It was a rude awakening to look at some of the code for PostgreSQL and not have any clue what was happening.
I’m hoping to hear from anyone who contributes to databases, either for work or hobby. Some questions I have:
What is working on a database like? Is it substantially different from any other large programming task? What percentage of the work is knowing the theory vs. being able to write the code?
How do I get a job on a database team? Some companies I’m aware of that sound like they’re doing really cool stuff are Cockroach and Timescale (and obviously Google, Amazon, etc.). I’m a new grad with an internship and a year of experience as a data analyst, but no systems programming experience. I know the best answer is probably “contribute to open source databases”, but if I were good enough to do that already, I probably wouldn’t be asking the question!
Do you have any advice about how to get started contributing to open-source databases? Please do feel free to point me to your favorite resources, I’d really appreciate it!
Thanks in advance!