SlideShare a Scribd company logo
1 of 35
Download to read offline
Michael Strack
Open Source Code Reviews
Building sustainable data analytics tools
w/
@holdenkarau
Convincing
you to do my
job for free!
Melinda
Seckington
Holden:
● My name is Holden Karau
● My pronouns are she/her
● Apache Spark PMC, Contributor to many others
● co-author of Learning Spark & High Performance Spark
● Twitter: @holdenkarau
● Slideshare http://www.slideshare.net/hkarau
● Code review livestreams: https://www.twitch.tv/holdenkarau /
https://www.youtube.com/user/holdenkarau
● Spark Talk Videos http://bit.ly/holdenSparkVideos
● Feedback (if you are so inclined): http://bit.ly/holdenTalkFeedback
What is going to be covered:
● What you can get from participating in open source code reviews
● Why the community needs your help with open source reviews
● How to find a good PR to review
● Some classes comments you can make early on (without lots of project
experience)
● Some communication pointers (the internet can be scary!)
● An optional exercise time: pair up with someone and do a review
Andrew
Who I think you wonderful humans are?
● Nice* people
● Want to grow your career
● Want to make open data analytics more sustainable
● Waiting for one of the other tracks to start/the coffee to kick in
Open Source Code reviews are a like
Mermaid School
1. You can do both in many places in the world
2. They help you grow your skills
3. Build on your existings skills (e.g. swimming or Python)
4. You get better with time but need to start somewhere
5. People don't always understand how they help you grow
your skills and don't want to pay for it*
6. Coffee makes it better
Benefits to you get from OSS reviews
● Grow skills
● See the world*
● Faster recognition
● Deeper integration in community
● The ability to contribute with fixed amounts of time
*Of open source & maybe the real world
See more of the world
● Starter issues are often designed to only touch a few
things
● Even moving beyond starter issues, there’s only so
many hours in the day and you can’t write everything
● Helps you can a better understanding of the project as a
whole
● Let's you take skills between projects faster
○ Know what good Python looks like? Great, many projects need help
with that
Vania Rivalta
Possible Faster Recognition
● General more contributors than reviewers
● Reviewers stand out
● Reviews can be the difference between a contributor
and someone trusted to make their own changes to the
project
● Allows you to work with more people
Sham Hardy
Easier to control your time
● Getting code into large OSS projects can take lots of
time
● Want to contribute a new PR? You will often need to
shepard a PR for an extended period of time
● “One more bug”
● With reviews: do what you can, but you don’t have to be
continuously responding to provide value
Rob Hill
Why the community needs you?
● Many projects suffer from maintainer burn out
○ Some of this comes from the pressure to review too much code
● Many projects are limited by reviewers not coding
○ Spark has > 500 open PRs
● More diverse reviewers: more diverse solutions
● Experienced reviewers become blind to “the way it’s
always been done”
● Represent the user(s)
Jerry Lai
2018 top 25 projects with most opened PRs
by unique authors
Rate of PRs / Reviews
Yes especially "successful" projects
Barbara Doduk
Yes especially "successful" projects
Live OSS Code Review Demo
● Additional: Live reviews on my YouTube if you want
https://www.youtube.com/user/holdenkarau
What makes an OSS review different?
● Higher chance you don’t know and haven’t met the folks
● Often more diversity level of language comfortability
● Less shared assumptions
● Really hard to walk over and apologize/buy coffee
● Sometimes strangers + the internet == assholes
○ Try not to be an asshole, but also look for how the project deals with
assholes
● Sometimes more competing goals/visions
New reviewers: a special value
● You can “see the onion” or the weird things everyone is
used to
● You can call out parts of the code which, while they may
make sense to the person who wrote it don’t in general
● You have different notions of how the software is used
● You can be less intimidating (if you want)
● You don’t assume how something works, so you’ll go
check and maybe find out it’s different
Getting started:
● Pick a project
● Get familiar with the projects tools
● Get familiar with the people & how they communicate
● Finding a good first PR to review
Roland Turner
Picking a project:
● It works better if it’s something you use in a language
you understand
● Ideally one which needs review help (are there lots of
inbound PRs or PRs that no one has the time for)?
● Is the project friendly: go check the mailing list or slack
or w/e and see how folks are
Chris Parker
Getting Familiar with the project tools:
● CI/CD (travis, jenkins, circleci, etc.)
● Find the integration tests (if any)
● Version control: figure out how to see who’s worked on
a file in the past (git blame & git log -p are two of my
friends)
● Find the projects issue tracking system
● Find the mailing lists
● Figure out how to build from a PR or a branch
easegill
Get familiar with how the project communicates
● Look at other PRs reviewed, accepted and rejected
● Look at the mailing list for tone and style
● Look to see how they respond to newcomers -- you
might want to pick another project based on this
○ For example I might not choose the Linux Kernel as a place to try this
Finding a good first PR to review
● Smaller PRs can be better
● Something you care about
● Often easier to be one of the early reviewers so if it’s
late stage stay away from
Doing that first review:
● Feel free to leave comments like
○ “I’m new to the project reading this I think it’s intention is X is that
correct? Maybe we could add a comment here”
○ Look for when changes are getting out of sync with docs “Can we
update the docs or create a follow up issue to do that?”
○ Style: Is there a style guide? Does this follow it? Does this follow
general “good” style?
○ Building: Does this build on your platform?
○ Look around for duplicated logic elsewhere in the codebase
○ Find the original author and ping them to take a look
● Get your IDE set up and jump to definition a lot
● Be prepared to look at the libraries documentation
Communicate carefully please
● The internet is scary enough
● “This sucks” can be heartbreaking
● You don’t know how much time someone put in
● Make it clear you are new to the project (gives you
some more leeway) & sets expectations
● Understand folks can get defensive about designs:
sometimes it’s not worth the argument
● People are allowed to be wrong on the internet
● It’s ok to be scared
Ivan
Phrasing matters a lot
● This is slow
● This is hard to
understand
● This library sucks
● No one would ever use
this
● You're using this wrong
● Could we do this faster?
● I'm confused, is it doing X
& could we add a
comment?
● Have you looked at X?
● What's the usage
pattern?
● X has problem Y, how
about Z?
Some articles on good code reviews (internal focus):
● https://smartbear.com/learn/code-review/best-practices-fo
r-peer-code-review/
● https://medium.com/palantir/code-review-best-practices-19
e02780015f
● https://dev.to/codemouse92/10-principles-of-a-good-code-r
eview-2eg
● https://blog.digitalocean.com/how-to-conduct-effective-co
de-reviews/
● https://hackernoon.com/how-to-give-and-get-better-code-re
views-e011c3cda55e
● https://mtlynch.io/human-code-reviews-1/
At a break you can do this!
● Don't want to go alone? You can do this as a group
● Raise your hand if you want to go do this after
● Try and pair with someone with different experience
High Performance Spark!
Available today, not in anyway related to this topic.
Cat’s love it!
Amazon sells it: http://bit.ly/hkHighPerfSpark :D
Random:
https://haute.codes
Generate clothing items from code
Including dresses with pockets
Sign up for the mailing list @
http://www.distributedcomputing4kids.com
Cat photo by Jean-Simon Asselin
Thank you!

More Related Content

Recently uploaded

Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of indiaimessage0108
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 

Recently uploaded (20)

Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of india
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 

Featured

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Featured (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Open Source Code Reviews - Building a Sustainable Community

  • 2. Open Source Code Reviews Building sustainable data analytics tools w/ @holdenkarau Convincing you to do my job for free! Melinda Seckington
  • 3. Holden: ● My name is Holden Karau ● My pronouns are she/her ● Apache Spark PMC, Contributor to many others ● co-author of Learning Spark & High Performance Spark ● Twitter: @holdenkarau ● Slideshare http://www.slideshare.net/hkarau ● Code review livestreams: https://www.twitch.tv/holdenkarau / https://www.youtube.com/user/holdenkarau ● Spark Talk Videos http://bit.ly/holdenSparkVideos ● Feedback (if you are so inclined): http://bit.ly/holdenTalkFeedback
  • 4.
  • 5. What is going to be covered: ● What you can get from participating in open source code reviews ● Why the community needs your help with open source reviews ● How to find a good PR to review ● Some classes comments you can make early on (without lots of project experience) ● Some communication pointers (the internet can be scary!) ● An optional exercise time: pair up with someone and do a review Andrew
  • 6. Who I think you wonderful humans are? ● Nice* people ● Want to grow your career ● Want to make open data analytics more sustainable ● Waiting for one of the other tracks to start/the coffee to kick in
  • 7.
  • 8. Open Source Code reviews are a like Mermaid School 1. You can do both in many places in the world 2. They help you grow your skills 3. Build on your existings skills (e.g. swimming or Python) 4. You get better with time but need to start somewhere 5. People don't always understand how they help you grow your skills and don't want to pay for it* 6. Coffee makes it better
  • 9. Benefits to you get from OSS reviews ● Grow skills ● See the world* ● Faster recognition ● Deeper integration in community ● The ability to contribute with fixed amounts of time *Of open source & maybe the real world
  • 10. See more of the world ● Starter issues are often designed to only touch a few things ● Even moving beyond starter issues, there’s only so many hours in the day and you can’t write everything ● Helps you can a better understanding of the project as a whole ● Let's you take skills between projects faster ○ Know what good Python looks like? Great, many projects need help with that Vania Rivalta
  • 11. Possible Faster Recognition ● General more contributors than reviewers ● Reviewers stand out ● Reviews can be the difference between a contributor and someone trusted to make their own changes to the project ● Allows you to work with more people Sham Hardy
  • 12. Easier to control your time ● Getting code into large OSS projects can take lots of time ● Want to contribute a new PR? You will often need to shepard a PR for an extended period of time ● “One more bug” ● With reviews: do what you can, but you don’t have to be continuously responding to provide value Rob Hill
  • 13. Why the community needs you? ● Many projects suffer from maintainer burn out ○ Some of this comes from the pressure to review too much code ● Many projects are limited by reviewers not coding ○ Spark has > 500 open PRs ● More diverse reviewers: more diverse solutions ● Experienced reviewers become blind to “the way it’s always been done” ● Represent the user(s) Jerry Lai
  • 14. 2018 top 25 projects with most opened PRs by unique authors
  • 15. Rate of PRs / Reviews
  • 16. Yes especially "successful" projects Barbara Doduk
  • 18. Live OSS Code Review Demo ● Additional: Live reviews on my YouTube if you want https://www.youtube.com/user/holdenkarau
  • 19. What makes an OSS review different? ● Higher chance you don’t know and haven’t met the folks ● Often more diversity level of language comfortability ● Less shared assumptions ● Really hard to walk over and apologize/buy coffee ● Sometimes strangers + the internet == assholes ○ Try not to be an asshole, but also look for how the project deals with assholes ● Sometimes more competing goals/visions
  • 20. New reviewers: a special value ● You can “see the onion” or the weird things everyone is used to ● You can call out parts of the code which, while they may make sense to the person who wrote it don’t in general ● You have different notions of how the software is used ● You can be less intimidating (if you want) ● You don’t assume how something works, so you’ll go check and maybe find out it’s different
  • 21. Getting started: ● Pick a project ● Get familiar with the projects tools ● Get familiar with the people & how they communicate ● Finding a good first PR to review Roland Turner
  • 22. Picking a project: ● It works better if it’s something you use in a language you understand ● Ideally one which needs review help (are there lots of inbound PRs or PRs that no one has the time for)? ● Is the project friendly: go check the mailing list or slack or w/e and see how folks are Chris Parker
  • 23.
  • 24. Getting Familiar with the project tools: ● CI/CD (travis, jenkins, circleci, etc.) ● Find the integration tests (if any) ● Version control: figure out how to see who’s worked on a file in the past (git blame & git log -p are two of my friends) ● Find the projects issue tracking system ● Find the mailing lists ● Figure out how to build from a PR or a branch easegill
  • 25. Get familiar with how the project communicates ● Look at other PRs reviewed, accepted and rejected ● Look at the mailing list for tone and style ● Look to see how they respond to newcomers -- you might want to pick another project based on this ○ For example I might not choose the Linux Kernel as a place to try this
  • 26. Finding a good first PR to review ● Smaller PRs can be better ● Something you care about ● Often easier to be one of the early reviewers so if it’s late stage stay away from
  • 27. Doing that first review: ● Feel free to leave comments like ○ “I’m new to the project reading this I think it’s intention is X is that correct? Maybe we could add a comment here” ○ Look for when changes are getting out of sync with docs “Can we update the docs or create a follow up issue to do that?” ○ Style: Is there a style guide? Does this follow it? Does this follow general “good” style? ○ Building: Does this build on your platform? ○ Look around for duplicated logic elsewhere in the codebase ○ Find the original author and ping them to take a look ● Get your IDE set up and jump to definition a lot ● Be prepared to look at the libraries documentation
  • 28. Communicate carefully please ● The internet is scary enough ● “This sucks” can be heartbreaking ● You don’t know how much time someone put in ● Make it clear you are new to the project (gives you some more leeway) & sets expectations ● Understand folks can get defensive about designs: sometimes it’s not worth the argument ● People are allowed to be wrong on the internet ● It’s ok to be scared Ivan
  • 29. Phrasing matters a lot ● This is slow ● This is hard to understand ● This library sucks ● No one would ever use this ● You're using this wrong ● Could we do this faster? ● I'm confused, is it doing X & could we add a comment? ● Have you looked at X? ● What's the usage pattern? ● X has problem Y, how about Z?
  • 30. Some articles on good code reviews (internal focus): ● https://smartbear.com/learn/code-review/best-practices-fo r-peer-code-review/ ● https://medium.com/palantir/code-review-best-practices-19 e02780015f ● https://dev.to/codemouse92/10-principles-of-a-good-code-r eview-2eg ● https://blog.digitalocean.com/how-to-conduct-effective-co de-reviews/ ● https://hackernoon.com/how-to-give-and-get-better-code-re views-e011c3cda55e ● https://mtlynch.io/human-code-reviews-1/
  • 31. At a break you can do this! ● Don't want to go alone? You can do this as a group ● Raise your hand if you want to go do this after ● Try and pair with someone with different experience
  • 32. High Performance Spark! Available today, not in anyway related to this topic. Cat’s love it! Amazon sells it: http://bit.ly/hkHighPerfSpark :D
  • 33. Random: https://haute.codes Generate clothing items from code Including dresses with pockets
  • 34. Sign up for the mailing list @ http://www.distributedcomputing4kids.com
  • 35. Cat photo by Jean-Simon Asselin Thank you!