Upgrade to Pro — share decks privately, control downloads, hide ads and more …

First steps in contributing to Open Source

First steps in contributing to Open Source

This is the deck of my intro on how and why to contribute to opensource talk.

Federico Paolinelli

February 19, 2020
Tweet

More Decks by Federico Paolinelli

Other Decks in Programming

Transcript

  1. Telco Network Team @ Red Hat Contributed to: - Athens

    - KubeVirt - SR-IOV Network Operator - OPA Gatekeeper - OVN-Kubernetes - CNI Plugins @fedepaol - MetalLB [email protected] About me
  2. Times have changed Linux is not in the public domain.

    Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.
  3. Times have changed Linux is not in the public domain.

    Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works. Steve Ballmer - 2001
  4. Common Excuses • They won’t like my code • The

    codebase is too hard to read • I feel I am not good enough
  5. Common Excuses • They won’t like my code • The

    codebase is too hard to read • I feel I am not good enough IMPOSTOR SYNDROME
  6. Why you should contribute to Open Source • You need

    a new feature in a project you use
  7. Why you should contribute to Open Source • You need

    a new feature in a project you use • You want to learn
  8. Why you should contribute to Open Source • You need

    a new feature in a project you use • You want to learn • You want to get credibility
  9. Why you should contribute to Open Source • You need

    a new feature in a project you use • You want to learn • You want to get credibility • It feels good (it really does)
  10. GitHub workflow • Clone your repo • Work locally on

    a branch • Push the branch to your fork https://flic.kr/p/9sqxm2
  11. Adding a new feature • You have the project •

    You know what to do • Always ask first!
  12. Finding a project • Start with something you like /

    respect • See if it matches the tech stack you want to work with • Ask around • See if it is contributor friendly
  13. First steps • (Say hi) • Find an issue •

    Ask if you can take it • Start working until submitting a PR...
  14. Once submitting the PR, you’ll get reviews • Reviews are

    really thorough • As a new contributor, maintainers will keep a higher bar • You’ll need to defend your ideas • You’ll have to accept critics and suggestions (or both)
  15. Once submitting the PR, you’ll get reviews • Reviews are

    really thorough • As a new contributor, maintainers will keep a higher bar • You’ll need to defend your ideas • You’ll have to accept critics and suggestions (or both) • And iterate
  16. Learn from the best • If you choose the right

    project, maintainers are likely to be among the best people in industry • See how they work • Learn from them • Get coding advices from them • Free coding lessons
  17. Find your way through a huge codebase • (Or learn

    to ask) • Demonstrate you are able to work on a big project with a lot of people • Learn to read code https://flic.kr/p/M5FbgT
  18. Find your way through a huge codebase • (Or learn

    to ask) • Demonstrate you are able to work on a big project with a lot of people • Learn to read (a lot of) code https://flic.kr/p/M5FbgT
  19. Expand your network • Meet people from different countries •

    Get in touch with smart people • Make friends! https://flic.kr/p/pt18wC
  20. Will make your resume shine • You demonstrate passion •

    You have a public example of your work (and how you interact with other people) • You worked on something recognizable • You can handle a big codebase • You show you can work in a distributed environment
  21. Conflicts • With time, you’ll work on more complex tasks

    • With more complex tasks, there will be different opinions • You’ll need to manage them, and sometimes it’s hard and painful to fight against somebody well trusted
  22. You’ll initially be a second class citizen • Your PRs

    might still be ignored • The maintainers may decide the feature you spent so much time on is not wanted anymore • They may give unrelated comment / ask to redesign the whole thing
  23. “Of course, I'd also suggest that whoever was the genius

    who thought it was a good idea to read things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. Who the f*ck does idiotic things like that? How did they not die as babies, considering that they were likely too stupid to find a tit to suck on?” from https://lkml.org/lkml/2012/7/6/495 People may be rude