@clairegiordano
Claire Giordano
@clairegiordano • @citusdata • @AzureDBPostgres
HOW TO CONTRIBUTE TO
AN OPEN SOURCE PROJECT
LIKE POSTGRES?
Slide 2
Slide 2 text
@clairegiordano
You use
Postgres
Who is this Postgres talk for?
Slide 3
Slide 3 text
@clairegiordano
You use
Postgres
Who is this Postgres talk for?
New job in a
Postgres
company!
Slide 4
Slide 4 text
@clairegiordano
You use
Postgres
Who is this Postgres talk for?
New job in a
Postgres
company!
Job search,
looking for a
“side gig”
Slide 5
Slide 5 text
@clairegiordano
You use
Postgres
Who is this Postgres talk for?
New job in a
Postgres
company!
Job search,
looking for a
“side gig”
You have a PG
problem to
solve, some kind
of “itch”
Slide 6
Slide 6 text
@clairegiordano
You use
Postgres
Who is this Postgres talk for?
New job in a
Postgres
company!
Job search,
looking for a
“side gig”
You have a PG
problem to
solve, some kind
of “itch”
You find
databases
interesting,
want to hack on
Postgres to
learn
Slide 7
Slide 7 text
@clairegiordano
Once Upon A Time...
5 years ago, I was in
the “new job in a
Postgres company”
group
Slide 8
Slide 8 text
@clairegiordano
@clairegiordano
A bit about me
Slide 9
Slide 9 text
@clairegiordano
Before diving in, things about Postgres culture
Code of conduct !!
postgresql.org/about
/policies/coc/
Mailing list culture
postgresql.org/list/
pgsql-hackers
pgsql-general
pgsql-docs
pgsql-performance
pgsql-bugs
pgsql-novice
Slide 10
Slide 10 text
@clairegiordano
Also: “Mailing List etiquette” is a thing
Mailing list etiquette is a thing
Be respectful, avoid personal attacks
Remove confidentiality notices (all emails are public*)
Reply-all
No HTML-enriched email
Bottom post and inline-reply
Take extra time to communicate clearly
Source: wiki.postgresql.org/wiki/Mailing_Lists
Slide 11
Slide 11 text
@clairegiordano
Ways to Contribute to Postgres—in today’s talk
11. Translations
12. Update docs
13. Contribute code
Code
6. Doc feedback
7. Report bugs
8. User Test new releases
9. Performance testing
10. Patch review
Feedback is Gold
1. User stories
2. Video Demos
3. Promote
4. Meetups
5. Answer questions &
share your experience
Sharing is Caring
@clairegiordano
Slide 12
Slide 12 text
@clairegiordano
Just like racing
sailboats
All these different ways of
contributing to Postgres add value
Source: Livestream of Rolex Big Boats Racing Series, Sep 2021
(my son was on the crew!)
Slide 13
Slide 13 text
@clairegiordano
Josh Berkus gave a similar talk in ~2013
Source: Josh Berkus on GitHub: https://jberkus.github.io/pdf_presos/50_ways.pdf
Slide 14
Slide 14 text
@clairegiordano
This is how Josh drew ”Contribution Pie” in 2013
Slide 15
Slide 15 text
@clairegiordano
Ways to Contribute to Postgres—in today’s talk
11. Translations
12. Update docs
13. Contribute code
Code
6. Doc feedback
7. Report bugs
8. User Test new releases
9. Performance testing
10. Patch review
Feedback is Gold
1. User stories
2. Video Demos
3. Promote
4. Meetups
5. Answer questions &
share your experience
Sharing is Caring
@clairegiordano
Slide 16
Slide 16 text
@clairegiordano
Tell your user stories
• Blog posts
• Talks
• Podcast interviews
• Twitter threads
• Official “case studies"
1
Slide 17
Slide 17 text
@clairegiordano
TIPS for telling user stories
• Blog posts
• Talks
• Podcast interviews
• Twitter threads
• Official “case studies”
1. Headlines
2. Scannability
3. Diagrams
4. Tables
5. Bullets
6. Code blocks
7. Planet Postgres
REMEMBER:
1
Slide 18
Slide 18 text
@clairegiordano
Interview your users & tell their stories
Example: Pouria
Hadjibagheri of UKHSA
co-authored this on
implementation of UK
COVID-19 dashboard
~80.2 K views
Source: aka.ms/blog-ukcovid19-dashboard-citus
1
Slide 19
Slide 19 text
@clairegiordano
2
Use Video to demo how
you use Postgres
Some people learn better via
video
Source: aka.ms/how-citus-distributes-postgres
Slide 20
Slide 20 text
@clairegiordano
2
Good video metadata
will help your video get
discovered
• titles should be compelling
• frontload w/ most important
words (YouTube truncates titles
@ 70 chars)
Thumbnail
Description
3 hashtags
Bookmarks
Links
Chapters
Title
Slide 21
Slide 21 text
@clairegiordano
3
Promoting reaches more ppl, grows ecosystem
Slide 22
Slide 22 text
@clairegiordano
So many PG things to
signal boost
your learnings,
user stories,
meetups,
talks attended,
TIL, QOTD, OH,
how-to,
new releases
3
Slide 23
Slide 23 text
@clairegiordano
Where to promote &
share?
Twitter
Slack
LinkedIn
Reddit
Discord
IRC
3
Slide 24
Slide 24 text
@clairegiordano
24
Source: @PostgreSQLNL, @OptimaDataBV
z
Run, host, & support local meetups
4
Slide 25
Slide 25 text
@clairegiordano
5
Answer questions &
share your experience
PostgreSQL Slack
IRC
Stack Overflow #postgresql
Mailing Lists: share your real-world
user experience: “yeah that works”
Slide 26
Slide 26 text
@clairegiordano
Ways to Contribute to Postgres—in today’s talk
11. Translations
12. Update docs
13. Contribute code
Code
6. Doc feedback
7. Report bugs
8. User Test new releases
9. Performance testing
10. Patch review
Feedback is Gold
1. User stories
2. Video Demos
3. Promote
4. Meetups
5. Answer questions &
share your experience
Sharing is Caring
@clairegiordano
Slide 27
Slide 27 text
@clairegiordano
Docs feedback is
a gift too!
Clarify
Fix ambiguities
Help new people understand
6
@clairegiordano
Source: postgresql.org
Slide 28
Slide 28 text
@clairegiordano
“Submit correction” link
@ bottom of each docs
page takes you here
6
Source: postgresql.org
Slide 29
Slide 29 text
@clairegiordano
7
Report bugs with
Postgres
When you find a bug with Postgres
we want to hear about it.”
“
“ Your bug reports play an important
part in making PostgreSQL more
reliable.”
Source: postgresql.org
Slide 30
Slide 30 text
@clairegiordano
7
Source: postgresql.org
WHERE to report bugs
1. Mailing list, or
2. Bug report web-form here:
postgresql.org/account/submitbug/
3. Unless it’s a security
issue!
Slide 31
Slide 31 text
@clairegiordano
7
Security issues are
special
Slide 32
Slide 32 text
@clairegiordano
User testing
your own applications
new PG Beta, RC releases
new features
–––also, tell the PG community
when things work
8
Imaginary email....
To: pgsql-hackers
Lists: pgsql-hackers
Just tested our
application FOOBAR with
the beta 4 release
candidate for PG 15 and
wanted to let y’all that it
worked!
Slide 33
Slide 33 text
@clairegiordano
Performance
Regression
Measuring
performance on
new releases of
Postgres is super
appreciated
9
Slide 34
Slide 34 text
@clairegiordano
Patch Review
as part of a “Commitfest”
Commitfest =
“A periodic break in PostgreSQL
development that focuses on review
and committing rather than on new
development.”
10
Source: commitfest.postgresql.org
Slide 35
Slide 35 text
@clairegiordano
Different types of
Patch Review
Usability
Feature
Performance
Code Review
Architecture (Design) Review
10
Source: commitfest.postgresql.org
Slide 36
Slide 36 text
@clairegiordano
Ways to Help with Patch Review
from one of Melanie Plageman’s PUG talks
10
Slide 37
Slide 37 text
@clairegiordano
Ways to Contribute to Postgres—in today’s talk
11. Translations
12. Update docs
13. Contribute code
Code
6. Doc feedback
7. Report bugs
8. User Test new releases
9. Performance testing
10. Patch review
Feedback is Gold
1. User stories
2. Video Demos
3. Promote
4. Meetups
5. Answer questions &
share your experience
Sharing is Caring
@clairegiordano
Slide 38
Slide 38 text
@clairegiordano
Help with message
translations
Mailing list: pgsql-translators
More info: babel.postgresql.org
Instructions in Postgres docs:
“Native Language support”
11
Slide 39
Slide 39 text
@clairegiordano
Translations really
need help!
Especially Polish, Brazilian
Portuguese, & Korean
Without maintenance these
translations will go away L
11
Slide 40
Slide 40 text
@clairegiordano
• pgsql-docs@
• /docs top level directory
• SGML/XML, Docbook
• Lætitia Avrot’s talk from 2018:
“De-mystifying contributing
to Postgres”
www.postgresql.eu/events/pgdayparis2018/sch
edule/session/1704-de-mystifying-contributing-
to-postgresql/
12
Update Docs
Slide 41
Slide 41 text
@clairegiordano
Contribute code
13
LOTS of places to
contribute—not just to core.
Cycles to get patch review &
contribute to Postgres core
are really, really, really long.
Be prepared & don’t get
discouraged
Slide 42
Slide 42 text
@clairegiordano
z
Also at PGConf NYC, on Fri @ 10:50am EDT
13
James Coleman, Braintree Payments
Slide 43
Slide 43 text
@clairegiordano
Lots of drivers
JDBC
ODBC
Python drivers e.g. psycopg
Go driver
...
13
@clairegiordano
So many ways to contribute to Postgres
11. Translations
12. Update docs
13. Contribute code
Code
6. Doc feedback
7. Report bugs
8. User Test new releases
9. Performance testing
10. Patch review
Feedback is Gold
1. User stories
2. Video Demos
3. Promote
4. Meetups
5. Answer questions &
share your experience
Sharing is Caring
@clairegiordano
Slide 46
Slide 46 text
@clairegiordano
Get your socks if you
asked a question!
Slide 47
Slide 47 text
@clairegiordano
Thanks & credits & inspiration go to
• Josh Berkus
• Samay Sharma
• Thomas Munro
• Rob Treat
• Melanie Plageman
• James Coleman
• Lætitia Avrot
• Isaac Alves
• Selena Deckelmann’s great wiki post:
“So you want to be a developer”
Slide 48
Slide 48 text
@clairegiordano
Thank you
@citusdata | @AzureDBPostgres
@clairegiordano
github.com/citusdata/citus