I should also say that Matrix has a lot of other really nice aspects to it that give Discord and friends a run for their money:
- Open source. Self-explanatory.
- Federated. Sure, you can probably redundant-ify your IRC server with Apache Something and Amazon AWS/ Cloudflare whatever if you really wanted to, but I regularly see Matrix rooms with 10+ addresses because the protocol's designed around that redundancy, not the other way around. And of course with Discord none of this even applies...good luck if Intern Greg elbows the Big Red Button, or they pull a yahoo groups/google+/etc.
- The protocol leaves a lot of room for experimentation that Discord isn't nearly open enough for. [1][2][3]
- There's bridges to other discord, irc, and dozens of other platforms, sidestepping the adoption problem (note that there's been even more added since this graphic was made). [4]
They aren't exactly languishing in obscurity either: the government of France is one of their userbases [5]. Yeah, I'd say Discord-style VC would be nice, but the lack if it isn't exactly holding them back.
A closer equivalent would be riot.im's servers, which are free in the same way as Discord/IRC's public rooms are. If you wanted custom integrations or the like you'd have to pay out for it, but the free option's still there. You can find a decent number of communities there--#GnuLinuxLovers comes to mind.
Voice chat is apparently harder to implement, but it's still possible to do right now with Jitsi [1]. And even without it, Matrix supports an 'opt-in' style of voice channel that should work fine with smaller groups.
I've personally had no problems with them (save for one near heart-attack where I lost multiple keys), but I'd suggest looking at their documentation too [1].
It's also worth noting that you don't need to store any keys in their cloud storage, encrypted or otherwise--but you can for convenience.
Probably not the answer you were looking for, but one of the best ways is to simply just _make_ something of your own. At the very least it's good practice, and you just might make something people find useful if you've found an 'unscratched itch'.
Even failing that, your codebase can be an educational tool for others. rosettacode.org is a pretty solid example of this--any addition to the wiki is going to save someone's bacon at some point.
But to be more specific for a moment: I see you have a functional-ish language listed (Ocaml) and you've also mentioned compilers--If you're looking for low level stuff with a hint of FP, diving into Rust might be interest you. I'd suggest looking at Redox OS--it's a monster, but plenty of the big scary parts are modularized away. Might be interesting.
I wish I had worked on other people's codebases earlier. Its a bit daunting when starting out but the art of understanding a codebase is invaluable and you'll learn how others use a language in interesting different ways
Nice to see him finally at terms after that one 1997 game--he seems to have been touchy about it even as recently as 2014:
"I think we'll never know unless Kasparov says himself, but you probably won't get to talk to him because he doesn't like to talk about the subject...Kasparov spent years suggesting that IBM cheated, and he hasn't really talked about the game for many years - until now."