$30 off During Our Annual Pro Sale. View Details »

How to Give Your Postgres Blog Posts an Outsize Impact | Claire Giordano | FOSDEM 2023

How to Give Your Postgres Blog Posts an Outsize Impact | Claire Giordano | FOSDEM 2023

Slides from a talk presented in the PostgreSQL devroom at FOSDEM 2023. Talk description: One of the sayings about development in the Postgres world is “it’s not just open source, it’s open engineering.” In the spirit of openness, this talk will show you how to increase the impact and the reach of your Postgres blog posts. These best practices begin with empathy for your readers—and cover lots of ground from there, including key things to know about SEO, as well as tips on how to promote your blog post. This talk is not just theory: real-world examples are included throughout the talk.

Claire Giordano

February 06, 2023
Tweet

More Decks by Claire Giordano

Other Decks in Technology

Transcript

  1. @clairegiordano
    Claire Giordano
    @clairegiordano/@hachyderm.io
    @clairegiordano | @citusdata | @CitusCon
    HOW TO GIVE YOUR
    POSTGRES BLOG POSTS
    AN OUTSIZE IMPACT

    View Slide

  2. @clairegiordano
    Engineer
    Dev Manager
    PM
    Marketer
    Writer
    Open-source champion
    Community Lead
    @clairegiordano
    @[email protected]

    View Slide

  3. @clairegiordano
    Citus database extension to Postgres = open source
    project I spend my days on

    View Slide

  4. @clairegiordano
    It’s not just
    open source, it’s
    open engineering.”

    @[email protected]

    View Slide

  5. @clairegiordano
    Warning: Lots of dog
    illustrations in talk
    Hello Zucca!
    @[email protected]

    View Slide

  6. @clairegiordano
    This talk has 2 parts...
    What you write
    Where you send it
    1.
    2.
    @[email protected]

    View Slide

  7. @clairegiordano
    Or as they say in “marketing speak”...
    What you write
    Where you send it
    1.
    2.
    Content
    Distribution
    @[email protected]

    View Slide

  8. @clairegiordano
    So first, let’s dive into CONTENT!
    1.
    2.
    Content
    Distribution
    @[email protected]

    View Slide

  9. @clairegiordano
    You & Your
    Frame of Mind
    The Edit
    Cycle
    Explore 2 aspects of CONTENT
    @[email protected]

    View Slide

  10. @clairegiordano
    #1 – Write with a
    specific reader in
    mind
    Who do you want to read your post?
    Write to that person
    @[email protected]

    View Slide

  11. @clairegiordano
    #2 - Pick good
    topics!
    Searched for
    Inspiration: Stack Overflow, Slack, IRC,
    Reddit, Twitter, Mailing Lists...
    Incognito browser & Google Trends
    Useful
    “Interestingness factor”
    @[email protected]

    View Slide

  12. @clairegiordano
    #3 – Have EMPATHY for your readers!
    EMPATHY
    @[email protected]

    View Slide

  13. @clairegiordano
    Source: www.gapingvoid.com/blog/2016/04/18/i-feel-your-paing/

    View Slide

  14. @clairegiordano
    Empathy should be
    your True North
    § Care about reader more than yourself
    § Recognize they’re busy & in a hurry
    § Remember—they don’t know what you
    know
    @[email protected]

    View Slide

  15. @clairegiordano
    Empathy #1:
    SCANNABILITY
    Your readers are busy—and in a hurry!
    While the manufacture of rubber goods is in no sense a secret industry, the majority of
    buyers and users of such goods have never stepped inside of a rubber mill, and many
    have very crude ideas as to how the goods are made up. In ordinary garden hose, for
    instance, the process is as follows: The inner tubing is made of a strip of rubber fifty
    feet in length, which is laid on a long zinc-covered table and its edges drawn together
    over a hose pole. The cover, which is of what is called “friction,” that is cloth with
    rubber forced through its meshes, comes to the hose maker in strips, cut on the bias,
    which are wound around the outside of the tube and adhere tightly to it. The hose
    pole is then put in something like a fifty foot lathe, and while the pole revolves slowly,
    it is tightly wrapped with strips of cloth, in order that it may not get out of shape while
    undergoing the process of vulcanizing. When a number of these hose poles have been
    covered in this way they are laid in a pan set on trucks and are then run into a long
    boiler, shut in, and live steam is turned on. When the goods are cured steam is blown
    off, the vulcanizer opened and the cloths are removed. The hose is then slipped off the
    pole by forcing air from a compressor between the rubber and the hose pole. This, of
    course, is what is known as hose that has a seam in it.
    For seamless hose the tube is made in a tubing machine and slipped upon the hose
    pole by reversing the process that is used in removing hose by air compression. In
    other words, a knot is tied in one end of the fifty foot tube and the other end is placed
    against the hose pole and being carefully inflated with air it is slipped on without the
    least trouble. For various kinds of hose the processes vary, and there are machines for
    winding with wire and intricate processes for the heavy grades of suction hose, etc.
    For steam hose, brewers’, and acid hose, special resisting compounds are used, that as
    a rule are the secrets of the various manufacturers. Cotton hose is woven through
    machines expressly designed for that purpose, and afterward has a half-cured rubber
    tube drawn through it. One end is then securely stopped up and the other end forced
    on a cone through which steam is introduced to the inside of the hose, forcing the
    rubber against the cotton cover, finishing the cure and fixing it firmly in its place.
    Source: the Paris Review: How Mechanical Rubber Goods
    Are Made. February 14, 2014
    @[email protected]

    View Slide

  16. @clairegiordano
    Empathy =
    SCANNABILITY
    Your readers are busy—and in a hurry!
    While the manufacture of rubber goods is in no sense a secret industry, the majority of
    buyers and users of such goods have never stepped inside of a rubber mill, and many
    have very crude ideas as to how the goods are made up. In ordinary garden hose, for
    instance, the process is as follows: The inner tubing is made of a strip of rubber fifty
    feet in length, which is laid on a long zinc-covered table and its edges drawn together
    over a hose pole. The cover, which is of what is called “friction,” that is cloth with
    rubber forced through its meshes, comes to the hose maker in strips, cut on the bias,
    which are wound around the outside of the tube and adhere tightly to it. The hose
    pole is then put in something like a fifty foot lathe, and while the pole revolves slowly,
    it is tightly wrapped with strips of cloth, in order that it may not get out of shape while
    undergoing the process of vulcanizing. When a number of these hose poles have been
    covered in this way they are laid in a pan set on trucks and are then run into a long
    boiler, shut in, and live steam is turned on. When the goods are cured steam is blown
    off, the vulcanizer opened and the cloths are removed. The hose is then slipped off the
    pole by forcing air from a compressor between the rubber and the hose pole. This, of
    course, is what is known as hose that has a seam in it.
    For seamless hose the tube is made in a tubing machine and slipped upon the hose
    pole by reversing the process that is used in removing hose by air compression. In
    other words, a knot is tied in one end of the fifty foot tube and the other end is placed
    against the hose pole and being carefully inflated with air it is slipped on without the
    least trouble. For various kinds of hose the processes vary, and there are machines for
    winding with wire and intricate processes for the heavy grades of suction hose, etc.
    For steam hose, brewers’, and acid hose, special resisting compounds are used, that as
    a rule are the secrets of the various manufacturers. Cotton hose is woven through
    machines expressly designed for that purpose, and afterward has a half-cured rubber
    tube drawn through it. One end is then securely stopped up and the other end forced
    on a cone through which steam is introduced to the inside of the hose, forcing the
    rubber against the cotton cover, finishing the cure and fixing it firmly in its place.
    Source: the Paris Review: How Mechanical Rubber Goods
    Are Made. February 14, 2014
    X
    @[email protected]

    View Slide

  17. @clairegiordano
    Empathy =
    SCANNABILITY
    Your readers are busy—and in a hurry!
    Section Headlines (not subject
    titles)
    Bullets
    Bold-font prefixes on bullets
    Short sentences
    Short paragraphs
    Whitespace
    Tables
    @[email protected]

    View Slide

  18. @clairegiordano
    Example
    A real-world example: a multi-tenant TODO application
    Example #1: Turning H2 Section Headers into
    Newspaper headlines (not subject titles)
    Boring:
    Much Better:
    @[email protected]

    View Slide

  19. @clairegiordano
    Example
    A real-world example: a multi-tenant TODO application
    PgBouncer
    How to set up PgBouncer (our preferred connection pooler)
    Example #2: Turning H2 Section Headers into
    Newspaper headlines
    Boring:
    Much Better:
    Just ok:
    Much Better:
    @[email protected]

    View Slide

  20. @clairegiordano
    Example
    A real-world example: a multi-tenant TODO application
    PgBouncer
    How to set up PgBouncer (our preferred connection pooler)
    Conclusion
    Cheat sheet for tuning Postgres autovacuum
    Example #3: Turning H2 Section Headers into
    Newspaper headlines (not subject titles)
    Boring:
    Much Better:
    Just ok:
    Much Better:
    Don’t do this:
    Much Better:
    @[email protected]

    View Slide

  21. @clairegiordano
    Not everyone is a reader!
    People’s brains process
    information differently
    @[email protected]

    View Slide

  22. @clairegiordano
    Empathy #2:
    VARIETY OF
    FORMATS
    Don’t just include paragraphs of text!
    To make your blog post more
    accessible to different types of
    people, use:
    Diagrams
    Tables
    Screenshots
    Code blocks
    @[email protected]

    View Slide

  23. @clairegiordano
    Imagine David Rowley’s blog
    post about:
    “Speeding up sort
    performance in Postgres 15”
    without its charts >>>>
    @[email protected]

    View Slide

  24. @clairegiordano
    TIP:
    Don’t forget about Accessibility
    (A11y), especially:
    @[email protected]
    alt-text—for graphics
    H2s help screen readers too

    View Slide

  25. @clairegiordano
    Empathy #3:
    READABILITY
    § Write at 3rd or 5th
    grade level
    Source: HemingwayApp.com
    @[email protected]

    View Slide

  26. @clairegiordano
    Empathy #3:
    READABILITY
    Write in a
    conversational voice
    § Write to 2nd person “you”
    § Write how you speak
    § As if explaining to a BFF over coffee
    “If you’ve been running PostgreSQL
    for a while, you’ve heard about
    autovacuum. Yes, autovacuum, the
    thing which everybody asks you not to
    turn off, which is supposed to keep
    your database clean and reduce bloat
    automatically.
    Source: Debugging Postgres autovacuum problems: 13 tips,
    by Samay Sharma on the Microsoft TechCommunity Blog
    @[email protected]

    View Slide

  27. @clairegiordano
    EMPATHY
    Checklist for Blogging
    Scannability
    q Section headlines
    (not subject titles)
    q Bullets
    q Bold-font prefix to bullets
    q Short sentences
    q Short paragraphs
    q Whitespace
    q Tables
    Variety of Formats
    q Not just paragraphs
    of text
    q Diagrams
    q Tables
    q Screenshots
    q Code blocks
    q Captions for images
    q Alt-text & H2s for screen
    readers
    Readability
    q Conversational voice
    q Write how you speak
    q 2nd person (“you”)
    q Teaching BFF over coffee
    q Write at 3rd or 5th grade level
    @[email protected]

    View Slide

  28. @clairegiordano
    You & Your
    Frame of Mind
    The Edit
    Cycle
    @[email protected]

    View Slide

  29. @clairegiordano
    #1 – Embrace the
    iteration
    Writing = Editing
    Gotta do the work
    Unless you’re famous (and your posts get
    traffic even if crappy)—a good blog post
    will involve editing and rewriting
    @[email protected]

    View Slide

  30. @clairegiordano
    #2 – It’s OK for your
    first draft to suck
    Dirty little secret: Everybody’s first drafts
    are a mess
    Give yourself permission to write things
    that aren’t perfect!
    “Perfect is the enemy of the good”
    @[email protected]

    View Slide

  31. @clairegiordano
    #3 – Feedback is a
    gift
    Good reviewers are GOLD: they see things
    you missed, give you actionable feedback
    @[email protected]

    View Slide

  32. @clairegiordano
    #4 – Pro Tip:
    Focus what you ask
    reviewers to do!
    Make it easy for reviewers to give you
    what you need
    People will not review everything—you
    can pick their focus, or they will
    @[email protected]

    View Slide

  33. @clairegiordano
    #5 – Get your
    scissors out
    Cut, cut, cut.
    Keep this advice from Stephen King’s book
    “On Writing” in your mind.
    If you can’t bring yourself to “kill” your
    darlings, just push them to the “cutting
    room floor.”
    “Kill your darlings,
    kill your darlings,
    even when it breaks
    your egocentric
    little scribbler’s
    heart,
    kill your darlings.”
    @[email protected]

    View Slide

  34. @clairegiordano
    #6 – Fork your draft
    into several shorter
    blog posts
    These 3 posts by my teammate
    Andres Freund @ Microsoft were all
    part of the same first draft.
    @[email protected]

    View Slide

  35. @clairegiordano
    #7 - Keep it simple
    KISS = “Keep It Simple, Stupid”
    Use analogies to help readers put concepts
    into mental model they already know
    Move details into footnotes
    Write at 3rd or 5th grade level
    “IF ONLY IT
    WERE
    SIMPLE TO
    KEEP IT
    SIMPLE”
    @[email protected]

    View Slide

  36. @clairegiordano
    #8 – Read it out loud
    Your ear can “hear” mistakes that your
    brain will self-correct when reading
    silently
    Reading it out loud is good way to assess
    if it’s in a conversational tone of voice
    @[email protected]

    View Slide

  37. @clairegiordano
    #9 – Optimize for SEO
    Improving SEO of post increases likelihood
    it will perform well in search results
    Don’t need to be “SEO expert”, just some
    basic SEO skills
    Claire’s Simple SEO Checklist
    @[email protected]

    View Slide

  38. @clairegiordano
    #9 – Optimize for SEO
    Claire’s Simple SEO Checklist
    q Good content
    is paramount
    @[email protected]

    View Slide

  39. @clairegiordano
    #9 – Optimize for SEO
    Claire’s Simple SEO Checklist
    q Good content is paramount
    q Title
    discoverability &
    clickability
    @[email protected]

    View Slide

  40. @clairegiordano
    Scribble lots of bad title ideas, to find a good one
    TITLE OPTIONS, need to frontload key terms since Google often truncates
    title on Search Engine Results Pages (SERP) at 60 chars (chars include spaces)
    1. Citus adds support for PostgreSQL 15, zero downtime distribution
    2. Citus adds support for PostgreSQL 15, zero downtime sharding
    3. Citus 11.1 adds Postgres 15 & zero-downtime table distribution
    4. New 11.1 release of Citus database adds Postgres 15 support
    5. What’s new in Citus 11.1 (including Postgres 15 support)
    6. What’s new in the Citus 11.1 extension to Postgres
    7. Citus 11.1 adds Postgres 15 + create distributed table concurrently
    8. New in Citus 11.1: Postgres 15 & create distributed table CONCURRENTLY
    9. Scale out Postgres without downtime with Citus 11.1
    10. Scale out Postgres without blocking writes: Citus 11.1
    11. Distributing Postgres without blocking writes: Citus 11.1 what’s new
    12. New in Citus 11.1: distributing Postgres without blocking writes
    13. New in Citus 11.1: scale Postgres without blocking writes, plus Postgres 15
    14. Citus 11.1 shards your Postgres tables without interruption
    15. Citus 11.1 distributes your Postgres tables without interruption
    @clairegiordano

    View Slide

  41. @clairegiordano
    3 techniques for assessing Title ideas....
    TITLE OPTIONS, need to frontload key terms since Google often truncates
    title on Search Engine Results Pages (SERP) at 60 chars (chars include spaces)
    1. Citus adds support for PostgreSQL 15, zero downtime distribution
    2. Citus adds support for PostgreSQL 15, zero downtime sharding
    3. Citus 11.1 adds Postgres 15 & zero-downtime table distribution
    4. New 11.1 release of Citus database adds Postgres 15 support
    5. What’s new in Citus 11.1 (including Postgres 15 support)
    6. What’s new in the Citus 11.1 extension to Postgres
    7. Citus 11.1 adds Postgres 15 + create distributed table concurrently
    8. New in Citus 11.1: Postgres 15 & create distributed table CONCURRENTLY
    9. Scale out Postgres without downtime with Citus 11.1
    10. Scale out Postgres without blocking writes: Citus 11.1
    11. Distributing Postgres without blocking writes: Citus 11.1 what’s new
    12. New in Citus 11.1: distributing Postgres without blocking writes
    13. New in Citus 11.1: scale Postgres without blocking writes, plus Postgres 15
    14. Citus 11.1 shards your Postgres tables without interruption
    15. Citus 11.1 distributes your Postgres tables without interruption
    1. Most important terms
    in first 60 characters?
    2. Incognito searches
    3. Boring vs. interesting
    @[email protected]

    View Slide

  42. @clairegiordano
    #9 – Optimize
    for SEO
    Don’t need to be “SEO expert”, just
    some basic SEO skills
    Claire’s Simple SEO Checklist
    q Good content is paramount
    q Title discoverability & clickability
    qUse Terms your readers use
    qAvoid general terms (“solution”)
    qAvoid pronouns (“it”, “this”)
    qRelevant keywords in Anchor
    text for hyperlinks
    qRelevant keywords in URL
    @[email protected]

    View Slide

  43. @clairegiordano
    #9 – Optimize for SEO
    Don’t need to be “SEO expert”, just some
    basic SEO skills
    Claire’s Simple SEO Checklist
    q Alt-text for graphics
    q Author Bio shows
    EAT:
    Expertise,
    Authoritativeness,
    Trustworthiness
    @[email protected]

    View Slide

  44. @clairegiordano
    Examples of Bio’s
    designed to show
    EAT
    Expertise
    Authoritativeness
    Trustworthiness
    Some debate among experts how much
    EAT affects SEO... do it anyway!
    @[email protected]

    View Slide

  45. @clairegiordano
    #9 – Optimize for SEO
    Checklist of basic SEO skills that can help
    make your post more “discoverable” via
    search engines!
    Claire’s Simple SEO Checklist
    q Good content is paramount
    q Title discoverability & clickability
    q Use Terms your readers use
    q Avoid general terms (e.g., “solution”)
    q Avoid pronouns (e.g., “it”, “this”)
    q Relevant keywords in Anchor text for
    hyperlinks
    q Relevant keywords in URL
    q Alt-text for graphics
    q Author Bio shows Expertise,
    Authority, Trustworthy (EAT)
    @[email protected]

    View Slide

  46. @clairegiordano
    q Embrace the iteration!
    q It’s OK for first drafts to suck!
    q Feedback is a gift
    q Focus your reviewers
    q Get your scissors out & cut!
    q Fork into multiple posts
    q KISS = Keep it simple
    q Read it out loud
    q Optimize for SEO
    Mastering “The Edit Cycle” when Blogging
    q Content is paramount
    q Title discovery & clicks
    q Use readers’ terms
    q Avoid general words
    q Avoid pronouns
    q Keywords in
    Anchor text
    q Keywords in URL
    q Use alt-text
    q Author Bio shows
    EAT
    Simple SEO Tips
    9 Editing Tips
    @clairegiordano

    View Slide

  47. @clairegiordano
    That’s it for Content. Now onto: DISTRIBUTION
    1.
    2.
    Content
    Distribution
    You & frame of mind
    The Edit Cycle
    @[email protected]

    View Slide

  48. @clairegiordano
    True or False?
    “We’ll know which blog posts
    are ‘good’ by how much traffic
    they get.”
    True
    False
    @[email protected]

    View Slide

  49. @clairegiordano
    Distribution
    trumps content.”

    @[email protected]

    View Slide

  50. @clairegiordano
    2 aspects of DISTRIBUTION,
    let’s focus on Promotion
    Publish Promote
    @[email protected]

    View Slide

  51. @clairegiordano
    #1 - Pro Tip:
    Before you promote,
    doublecheck “unfurl”
    Twitter caches og:image for over 24 hours,
    so if it’s wrong when your post is first
    tweeted, your post won’t have the correct
    graphic on Twitter for a loooong time!
    • LinkedIn Post Inspector
    • Slack unfurl
    Screenshot of an unfurl on Slack,
    just drop URL into a slack to yourself
    @[email protected]

    View Slide

  52. @clairegiordano
    #2 – Syndicate your blog to Planet Postgres
    @[email protected]

    View Slide

  53. @clairegiordano
    #3 – Go to where your
    readers are
    That means promoting on lots of channels
    “All the socials”
    • Planet Postgres
    • Twitter
    • Slack
    • LinkedIn
    • Reddit
    • Discord
    • Hacker News (YC)
    • Postgres Weekly
    • Citus Newsletter
    • Link in GitHub repo
    @[email protected]

    View Slide

  54. @clairegiordano
    #4 –
    Rinse Lather Repeat
    Different times of day & time zones
    Multiple days
    Don’t be hesitant to tweet again,
    especially if different time of day
    Only ~1-2% of followers see a tweet
    @[email protected]

    View Slide

  55. @clairegiordano
    Example of “Rinse
    Lather Repeat
    Same interview tweeted with different
    graphics @ different times of day
    When I interviewed with Scott
    Hanselman, there were ~20 different
    tweets to promote it, that hit every time
    zone over a 5-6 day period
    @[email protected]

    View Slide

  56. @clairegiordano
    #5 – Keep Twitter momentum by
    recycling tweets
    RT your own tweet after
    ~12 hours
    QT your own tweet after
    ~1-2 days
    QT other people’s tweets
    YMMV
    Example of a “Quote Tweet”
    @[email protected]

    View Slide

  57. @clairegiordano
    #6 – Be there for the Q&A and the
    conversation
    One-way promotion is
    considered advertising.
    As “OA” (original author),
    embrace the Q&A.
    Especially on Reddit &
    Twitter.
    To stay constructive, wear
    kevlar as needed.
    @[email protected]

    View Slide

  58. @clairegiordano
    #7 –Karma is a 2-
    way street
    If you shine a light on the
    work of your teammates
    and friends—they’re more
    likely to do the same for
    you!
    @[email protected]

    View Slide

  59. @clairegiordano
    PROMOTION
    Tips & Checklist for Blogging
    Promotion Tips
    q Doublecheck ”unfurl”
    q Syndicate to Planet Postgres
    q Go to where your readers are
    q Rinse lather repeat
    q Recycle tweets
    q Be there for Q&A
    q Karma is a 2-way street
    q Use “Promotion Checklist”
    Promotion Checklist
    q xxx
    q yyy
    q zzz
    q aaa
    q bbb
    q ccc
    @[email protected]

    View Slide

  60. @clairegiordano
    Devil is in the details.
    Checklists can help
    @[email protected]

    View Slide

  61. @clairegiordano
    But if there’s just 1 thing
    you remember from this talk...
    @[email protected]

    View Slide

  62. @clairegiordano
    EMPATHY
    @[email protected]

    View Slide

  63. @clairegiordano
    § Asad Khan
    § Ashley McNamara Willis
    § David Perell
    § Hugh McLeod / Gaping Void
    § Isaac Alves
    § Marco Slot
    § My Nguyen
    § Rachel Agyemang
    § Sarah Novotny
    § Stephen O’Grady
    § Sumedh Pathak
    @[email protected]
    Credits & inspiration go to...

    View Slide

  64. @clairegiordano
    The FOSDEM team & I would both LOVE your
    feedback on my (and all of the) Postgres talks
    “Submit feedback” link at bottom of page for
    each talk...
    https://fosdem.org/2023/schedule/track/postgresql/
    Feedback is a gift!
    @[email protected]

    View Slide

  65. @clairegiordano
    Thank you
    @clairegiordano
    @[email protected]
    github.com/citusdata/citus

    View Slide

  66. @clairegiordano
    40 pairs
    of lovely Postgres
    & Citus socks to
    give away!
    @[email protected]

    View Slide