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

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 #1 – Write with a specific reader in mind

    Who do you want to read your post? Write to that person @[email protected]
  2. @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]
  3. @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]
  4. @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]
  5. @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]
  6. @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]
  7. @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]
  8. @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]
  9. @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]
  10. @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]
  11. @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]
  12. @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]
  13. @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]
  14. @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]
  15. @clairegiordano #3 – Feedback is a gift Good reviewers are

    GOLD: they see things you missed, give you actionable feedback @[email protected]
  16. @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]
  17. @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]
  18. @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]
  19. @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]
  20. @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]
  21. @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]
  22. @clairegiordano #9 – Optimize for SEO Claire’s Simple SEO Checklist

    q Good content is paramount q Title discoverability & clickability @[email protected]
  23. @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
  24. @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]
  25. @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]
  26. @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]
  27. @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]
  28. @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]
  29. @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
  30. @clairegiordano That’s it for Content. Now onto: DISTRIBUTION 1. 2.

    Content Distribution You & frame of mind The Edit Cycle @[email protected]
  31. @clairegiordano True or False? “We’ll know which blog posts are

    ‘good’ by how much traffic they get.” True False @[email protected]
  32. @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]
  33. @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]
  34. @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]
  35. @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]
  36. @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]
  37. @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]
  38. @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]
  39. @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]
  40. @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...
  41. @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]