I'm trying to break into AI as a Machine Learning Engineer. I want to demonstrate expertise in AI/ML topics and capture a "Wow" factor by contributing to a well-known open source AI project.
I'm looking for suggestions spanning CV, NLP, tabular data and collaborative filtering -- not excluding but not limited to the latest GenAI stuff.
Some context: I have an MS in CS, did CV research, and completed Jeremy Howard's "Practical Deep Learning with fastai and PyTorch".
The fastai library itself is a popular target for a first contribution. See:
How to Make Open Source Contributions to fastai (Hamel Husain)
fast.ai Discord server (if the link doesn't work, it's also discoverable: search "fast.ai"). #fastai-dev is the contributors' channel.
One concern is identifying something that's non-trivial but tractable for a relative newbie. I realize there's tension between this and achieving that "Wow" factor at least in the beginning. I'm not sure a contribution to, say, PyTorch or scikit-learn is achievable from where I stand, but I could be wrong. Perspective on how to spot/scope opportunities would be appreciated too.
Thanks very much!
Potentially relevant questions on Taro:
I was in your same position exactly a year ago, so this hits really close to home. It was so hard to get interviews that even with spam applying, I only got 2 callbacks in a month. Then I started contributing to open-source, and things started looking up. Here's some pointers:
**For those who are later in their career, I think these principles still apply. The impact of doing this earlier in your career has more of a 0-1 effect than the 1-5 effect someone later in their career would see IMO
So there's a deluge of MSCS graduates who want to work in AI. You need to focus on a single direction. There's several routes you can take:
Before you dive into any route, make sure you do some due diligence so that you know roughly what it takes to be the top 1% in anything. Then decide if you're willing to put in the work.
Then there's size of the open source project. Small libraries/frameworks are too unknown to get you any real attention with recruiters. Large libraries/frameworks will take 1-2 years to get on the PMC.
Small projects are things like util libraries. Large projects are established frameworks like PyTorch or Kubernetes.
The "goldilocks zone" IMO is medium-size projects that are rapidly gaining traction. They have enough things on their roadmap that'll add immediate value and they should be the most welcoming of new contributors.
Start with something small. No sane person would ever let a stranger add changes to their core codebase. Start with something small like a cherry-pick commit or an integration.
Then it's time to align your contributions to the actual product roadmap. Attend contributor meetings. Talk to other contributors on Slack/Discord. Get involved.
As you contribute, you'll see yourself go up the "top contributors" list. You'll see yourself writing better PRs, writing cleaner code, and working on more impactful features.
Getting to the top 10 or top 5 contributors for a medium-size library doesn't take that long. Even in the span of 1-2 months, you can get to Top 5 if you put in full-time effort.
Now you have some awesome résumé bullet points:
Now go! Find a project and contribute. You'll learn a lot + be helping out the community. I think that you can only re-write your resume so many times before you need to make a fundamental change. Making open-source contributions can help you make that fundamental change to your profile.
Wow, this is literally one of the best things I have ever read - Thank you so much Elliot for sharing your wisdom!
Thanks for sharing, Elliot. It's encouraging to hear from someone who's been in your shoes and made it to the other side. I'll put your suggestions to work. I appreciate you.
This is so helpful! Elliot, would you be open to sharing more details on how this helped get more interviews? like how many more interviews did you get, did recruiters notice it/were impressed by it? or did you get reachouts?
and generally any other thoughts related to how open source helped with getting/passing interviews
Related reading for anyone interested: https://huyenchip.com/2024/03/14/ai-oss.html
Chip talks about the current state of open source AI repos, which ones are good, and how to think about it
Here's a list of repos she analyzed and categorized: https://huyenchip.com/llama-police
ok update, after digging through chip's list I found an awsome repo: https://github.com/unslothai/unsloth
It's a YC backed startup: https://www.ycombinator.com/companies/unsloth-ai that's building an open source platform to make fine-tuning LLMs faster.
It's really cool because you can actually run the training yourself on colab because these models are small. You get the experience of training/fine-tuning LLMs which is not something you find in a lot of open source repos
It's a super active repo with a very active maintainer. Lots of opportunity to learn how these models work under the hood
Not too crowded, still time to make good contributions.
Pretty medium sized
Hm, not a bad choice
TensorFlow is open-source and widely used: https://github.com/tensorflow/tensorflow
The problem is that the repo is huge (2.8k pull requests with 185k GitHub stars), so getting something merged in is probably super hard 😥
The "How to start contributing to open source?" discussion is particular helpful for high-level advice. In particular, I recommend working on a repo you use yourself.
We also recently shipped an open-source contribution course with the former Director of Open Source Engineering at Facebook. You can watch it here: [Course] Become An Open Source Master