I'll try to make the context quick. I have been employed as a compiler engineer at a large company in SV (not FAANG) for about a year now. Previously, I've held jobs at a couple companies at the junior level (~4 years total). About 5 years ago, I completed a bachelor's degree in Mathematics at a state university.
I am now feeling that this education was insufficient: the subject matter was not really related to my eventual career path, and the experience was overall incredibly mediocre. To put it quantitatively, my school is not even in the top 100 engineering schools in the country. And, as the title implies, I never received a masters degree.
My coworkers all have masters degrees and this has led to a pervasive feeling of imposter syndrome. I'm also worried about my future employment prospects: while I am not searching at the moment, I am worried that when I decide to do so, most of my competition will also have masters degrees. My company has recently struggled to hire compiler engineers, and I can't help but feel like I was able to get in with a lesser degree and experience as a compromise against a tough hiring market. I don't know if I'll be afforded that same chance in the future.
I am now in a much better position to pursue a master's, and since I live in SV, I also have the possibility of pursuing a master's at a high-quality school without needing to relocate. I am trying to determine if this would be worth it. Some pros: increased networking opportunities, a more prestigious resume, possibilities for research/skill growth. Some cons: likely expensive, could be difficult to get into a good school, skill growth might not be as much as I'd like.
Some part of me thinks it's a better idea to continue working on side-projects to improve my skills on my own. I have several "impressive" projects (e.g. compiler, OS kernel, GB emulator) that were instrumental in me getting my foot in the door, here and at previous companies, that I still actively work on. But I can't shake the feeling that an MS from a top school (assuming I could get in) would open doors to places I haven't yet been able to crack (mostly FAANG). I also think it could improve my chances for promotion within my current org.
Anyways, if you've made it to the end, thanks a lot for reading. Any response is appreciated.
It's worth it if there's something specific you want to work on.
A Masters' Degree (and PhD) is almost the only opportunity to work on certain things like distributed systems, P2P systems, federated networks (like this), consensus under Byzantine conditions, cryptography, operating systems and programming languages development, etc.
So I'd only do it if you have something in mind that you'd like to work and somewhere that you'd like to do it.
This is a good thing to be reminded of. I often forget that masters are much more targetted in scope.
Formal programming languages instruction could be useful -- while I have learned enough in practice to implement most of a compiler, I have often found my foundation in theory to be lacking (e.g. type theory/operational semantics). Then again, I'm fairly sure I could learn the same on my own without having to spend thousands of dollars. The only hard part is convincing a future employer that I know my stuff.
From what I heard universities with good compiler courses are rare nowadays, so a masters is really not the best indicator that you actually know anything. If you are going to continue your education do a PhD (which you aren't supposed to pay for).
Disclaimer: This is second hand information.