Hello everyone,
Recently, I've seen several Meta engineers and managers post on LinkedIn about open oportunities to work on the PyTorch codebase. This is something I'm super interested in (especially the CUDA stuff), but I haven't contributed at all to PyTorch, and don't have much real world experience with CUDA.
What would be the best way to prepare to apply? I was thinking about a long-term strategy whereas I can start contributing to PyTorch at a steady pace, and then after a year or so try to apply to Meta with some relevant experience under my belt.
Is that advisable? Should I instead try a different route?
Thanks!
To be clear, are these full-time roles on the PyTorch team at Meta? Since that is very different from an invitation to contribute to an open-source repository. The requirements and barriers to entry will, of course, be very different.
In either case, though, I like your idea to contribute to open source, and perhaps even on PyTorch directly.
One of the insights I learned from James Pearce in his course "Become An Open Source Master" is that you don't need to contribute to the biggest, fanciest project. There will likely be many other contributors, so it'll be hard for you to earn the trust and scope you want to show off your skills. You want to get a lot of "reps", meaning that you should be able to make many PRs that get accepted and merged in.
You will likely have an easier time doing that by contributing in a smaller, less popular project in the same ecosystem. I'm sure there are many projects connected to PyTorch in some way. I highly recommend How To Evaluate A Project’s Health.
Aside from that, do all the normal ML Engineer interview prep, such as Ilya's course about ML System Design.
To be clear, are these full-time roles on the PyTorch team at Meta?
It seems like these are just posts to contribute to PyTorch in an open-source capacity, not as an FTE. OP mentions working on PyTorch for a while and then applying. However, it also seems like you have to apply to be just a contributor as well...? Maybe if you get into this program, you'll have more hands-on support to contribute to the codebase?
To answer the original question, it looks like there's nothing stopping you from at least cloning the codebase, getting it working, and then playing around with it. I would start with that.
If there really is some sort of application just to contribute, then having existing open-source experience on other repos seems like a big plus. Follow the advice in James Pearce's open-source course which Rahul also linked.
To clarify the question, Meta is looking for people to work as FTE on the PyTorch project. For example:
I already have many open source contributions (but on many projects, I haven't dedicated myself to a single project extensively).
There will likely be many other contributors, so it'll be hard for you to earn the trust and scope you want to show off your skills.
My concern here is that just as there are many PyTorch contributors (which is definitely true), there are also many many more open source contributors, so showing off my skills on that "pool" is going to be even harder, no?
Yeah just stack contributions on a mid-size project in the Pytorch ecosystem. Pytorch itself may be a little too big + hard to merge into within a few weeks. Maybe try a smaller one like Rahul suggested. torchtune
comes to mind