3

Projects vs. Open Source - which is better for my career?

Profile picture
Machine Learning Engineer at Taro Communitya year ago

TL;DR Contribute to Open Source ML or do side projects for ML. Which do you suggest is the better option?

I just started a new job, but due to circumstances (visa, tough market), I had to take the first job I could take and I ended up in a devops/production support role where I cant really write much code or write any production code (literally dont have access to dev code). I dont plan to stay here long (>6 months).

I read the infamous "Help needed: New grad job going at a slow pace with nothing to do - Next steps?" post and wanted to do side projects so that I am not rusty

Context on me: 80% of my background is in Applied ML/Data Science and 20% is software engineering. I am interested in pursuing as an ML Engineer/Data Scientist

Open Source

Pros

  • Tons of open source ML stuff supported by big tech companies
    • Meta has a ton of OS projects
  • Huggingface is open source
    • Lot of companies use ML models from huggingface (for e.g. BERT for NLP). Would contributing to this on huggingface be seen as impressive?
  • Exposure to working on large codebases, good software engineering practice as well

Cons

  • Minimal Impact
  • Hard to showcase my achievements, especially on LinkedIn

Projects

Pros

  • Ability to make and measure impact
  • easy to showcase
  • learn a lot

Cons

  • For ML, projects with impact is hard to do. Most ML applications is based on improving current products using existing data
  • Experience from building ML projects might not translate to what I would do on the job as a lot of it involves working with Engineering around data
  • It takes time and a lot of effort to have a ton of downloads
  • Can end up taking a lot of non-ML work work (web design/frontend) which is not relevant to MLE

Final question: If I were to do open source, what is the best way to showcase on LinkedIn?

  • Do you suggest adding the company you did OS for under the experience section and saying "Open Source Contributor"? My concern with this is that it may sound scammy/shady
178
2

Discussion

(2 comments)
  • 2
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    a year ago

    Open source contributions to established, big company repos are very daunting. I'd pick this path only if:

    • You've previously taken a stairstep approach to contributions. Find a smaller project where the maintainer is actually interested in contributions (e.g. DAGWorks) and you've understood the workflow there. This will be much faster and you'll build solid skills.
    • You have a connection to the repository maintainers. Think about this from the perspective of a large project maintainer: hundreds of people are trying to contribute or file issues, and the vast majority of them are low quality. My default tendency will be to ignore most people unless I know them. I probably won't invest time in coaching someone.

    For the projects, one thought I had is to find a friend who has more knowledge than you in a specific domain and you help each other. In fact, I'd recommend choosing a project to do based on the availability of a coding buddy!

  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    I know this is sort of a cop-out answer, but... it depends.

    Personally, I like side projects way more:

    • You control the entire process
    • You own the entire thing so you reap all of the impact and subsequent happiness when things do well
    • 0 blockers - You merge in and review your own code!

    However, I know a lot of engineers who hate side projects because they need some sort of structure. In that case, contributing to a big open-source repo is far better as it will have a team of core reviewers, an instructional README, repo best-practices, and far more. It's also directly attached to a major company usually, and if you have a large enough track record, you could get an interview (I know a lot of engineers who got jobs at top companies this way).

    What I will say for both of these though is that they're both long-term investments. It will take 3 months of consistent work minimum for either of these to pay major dividends. These aren't short-term magic tricks that you can pull out for 1-2 weeks and get flooded with interviews. Those tricks are entirely extinct in this economy as much as engineers refuse to believe that.

    I have built 30+ apps with 4 million+ users combined, and to this day, I still get interview opportunities from Google, Uber and other top-tier companies through my Google Play developer email. I am living proof that side projects are immensely powerful and can even be enough to overcome a terrible economy. But again, I planted those seeds very early and fostered them for a long time. It's like buying a stock that doesn't hyper-grow (i.e doesn't double in 1 month) but does grow 500% over 5 years and 1000% over 10 years.

    So yeah, pick what you prefer (or just try both and see what happens) and run with it. The important part is the consistency.

    If you pick side projects, go through this: [Taro Top 10] Building Impressive Side Projects

    Do you suggest adding the company you did OS for under the experience section and saying "Open Source Contributor"? My concern with this is that it may sound scammy/shady

    It is indeed pretty scammy/shady. I would personally reject any candidate automatically who did this unless they wrote half the repo.