My goal for the next half a year is to contribute to the public domain as much as possible. As I'm starting my first semester of the UIUC MCS program (taking NLP and Text Information Systems while working at Cloudflare), I'm probably going to organize a weekly seminar with other students. I could stream the meetings & upload them to YouTube. I previously did something similar on the topic of Computer Networks with friends, but it didn't go that well — I found that discussing professional experiences that're unique to each company is much harder than discussing papers that everyone can read in advance equally.
I previously did a few open source-y projects that are available on GitHub. I'm quite proud of my implementation & demonstration of the Simulated Annealing algorithm (I also have given a presentation at UIUC on the original paper that first described this approach) — https://github.com/andreev-io/Simulated-Annealing.
But an even more interesting project was my implementation of the Raft distributed consensus algorithm — https://github.com/andreev-io/Raft. What I'm particularly proud of is that I didn't simply impement the algorithm and cover it with tests (no tests in the repo so far actually) but that I made an interactive CLI visualization that people can play and experiment with. The project has 41 stars and 5 forks as of today.
What I want to do now is turn this into a full scale open source Raft implementation in Rust. There are a few Rust Raft implementations on GitHub, but it looks like there's still space to offer something slightly different and new (still have to think through what that means exactly).
I don't have a concrete end goal with this project yet but my first checkpoint is to refactor the visualization code into a reusable crate with strong abstractions and get this project mentioned in the This Week in Rust newsletter. Once I do that, the further steps will become more clear.
I wonder how many hours a week I can realistically work?