1. Navigating the Highs and
Lows of Open Source
Peter Elbaum, Software Engineer at Smashing Boxes
@pjelbaum
2. Why This Talk?
● How to get the most out of contributing to open source while providing the most benefit to projects
● Inspire potential first-time contributors; a fresh perspective for veterans
● Strategies for dealing with the joy and occasional pain of OSS
● A case study @pjelbaum
3. Why Contribute?
● OSS runs on communities and contributions
● You learn a bunch
● Relationships the world over
@pjelbaum
4. 1. Get Started
● Conferences (like this one!) are great resources
● Pick something and learn as you go
● The importance of just starting
@pjelbaum
5. 2. Think Big
● Some of the more well-known codebases are vast, which can speed up your learning
● Well-maintained projects give you a picture of how things should be done
● Prestige factor (if that matters to you)
@pjelbaum
8. 3. Assume the Best of Others
● Text is a terrible medium for the nuances of speech in general
● Syntax.fm: many people are ESL speakers; some messages can read with bluntness
● Sometimes, people are just trolls
● Focus on giving back and learning, and get out if it’s really bad @pjelbaum
10. 4. Use Pre-Existing Skills
● Non-programming skills are valuable in OSS. Think: writing, editing, social media, community
building, foreign language skills, design
● Using your existing skills can be an entree to using your programming skills
● A vibrant OSS community benefits from multiple perspectives
@pjelbaum
11. 5. Align Your Values with Your Contributions
● Github: Great for New Contributors
● Help nonprofits via freeCodeCamp (and fCC itself)
● Good for longevity, community, continued learning
@pjelbaum
12. 6. Ease In
● Simpler commits can build confidence
● Any contributions help build relationships within the project’s community
● A way to get a sense of the best way you can contribute
@pjelbaum
14. 7. Make Mistakes
● Making mistakes is a great way to improve; part of deliberate practice
● Well-maintained projects have a defined contribution process, i.e. you’ll have plenty of checks and
balances
● Don’t worry about publicly screwing up, and if you run into trolls see #3
@pjelbaum
15. 8. Learn
● There will be topics you haven’t encountered, and that’s good
● Claiming an issue can be a great way to learn something you’re interested in
● Use wisdom here, and ask for help if you’ve taken on too much
@pjelbaum
16. 9. Encourage Others
● Open Source is non-intuitive
● Kent C. Dodds: Learn, Build, Teach; everyone is a step ahead of someone
● Makes contributing more accessible
@pjelbaum
Address projects list later
More on learning later
9 lessons, our vehicle is a story
Address projects list later
If you want to run your own project one day, it can be good to see how some of the bigger projects do it
Maybe don’t mention learning so early?
Familiarize yourself with the process for contributing
20min
Needs work
Anyone that’s programmed knows the console will let you know when you’re wrong
#2: don’t worry about any bugs of yours getting through
Need more--quote article: not supposed to be good immediately, learn the most when face biggest challenges
Claiming an issue can be a great excuse for brushing up on something you’ve wanted to know
Need more here
Things are supposed to be accessible, right?
Encouraging others makes this intimidating thing more friendly
Sometimes all we need is encouragement