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

How to make your Postgres blog posts reach a to...

How to make your Postgres blog posts reach a ton more people | Claire Giordano | PGConf EU 2022

Slides from Claire Giordano’s talk at PGConf EU 2022 in Berlin, where she presented on how to make your Postgres blog posts reach a ton more people. 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 walks you through a set of things you can do to make your Postgres blog posts reach a lot more people. These best practices begin with empathy for your readers—and cover lots of ground from there, including key things to know about SEO (search engine optimization) as well as tips on how to promote your blog post. This brand new talk isn’t just theory either: real-world examples are included throughout the talk.

Claire Giordano

October 28, 2022
Tweet

More Decks by Claire Giordano

Other Decks in Technology

Transcript

  1. @clairegiordano Or as they say in “marketing speak”... What you

    write Where you send it 1. 2. Content Distribution @clairegiordano
  2. @clairegiordano You & Your Frame of Mind The Edit Cycle

    Explore 2 aspects of CONTENT @clairegiordano
  3. @clairegiordano #1 – Write with a specific reader in mind

    Who do you want to read your post? Write to that person @clairegiordano
  4. @clairegiordano #2 - Pick good topics! Sought after, searched for

    Inspiration is everywhere: Stack Overflow, Slack, IRC, Reddit, Twitter, Mailing Lists... Incognito browser & Google Trends Useful “Interestingness factor” @clairegiordano
  5. @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 @clairegiordano
  6. @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 @clairegiordano
  7. @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 @clairegiordano X
  8. @clairegiordano Empathy = SCANNABILITY Your readers are busy—and in a

    hurry! @clairegiordano Section Headlines (not subject titles) Bullets Bold-font prefixes on bullets Short sentences Short paragraphs Whitespace Tables
  9. @clairegiordano Example A real-world example: a multi-tenant TODO application Example:

    Turning H2 Section Headers into Newspaper headlines (not subject titles) Boring: Much Better: @clairegiordano
  10. @clairegiordano Example A real-world example: a multi-tenant TODO application PgBouncer

    How to set up PgBouncer (our preferred connection pooler) Example: Turning H2 Section Headers into Newspaper headlines (not subject titles) Boring: Much Better: Just ok: Much Better: @clairegiordano
  11. @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: Turning H2 Section Headers into Newspaper headlines (not subject titles) Boring: Much Better: Just ok: Much Better: Don’t do this: Much Better: @clairegiordano
  12. @clairegiordano Empathy #2: VARIETY OF FORMATS Don’t just include paragraphs

    of text! To make your story more accessible to different types of learners, include: Diagrams Tables Screenshots Code blocks Accessibility: alt-text & H2s for screen readers @clairegiordano
  13. @clairegiordano Imagine David Rowley’s blog post about: “Speeding up sort

    performance in Postgres 15” on Microsoft TechCommunity blog, without its charts >>>> @clairegiordano
  14. @clairegiordano Empathy #3: Write in a conversational voice § Write

    to 2nd person “you” § Write how you speak § As if explaining to a BFF over coffee @clairegiordano “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
  15. @clairegiordano Empathy #3: READABILITY § Write at 3rd or 5th

    grade level Source: HemingwayApp.com @clairegiordano
  16. @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 @clairegiordano
  17. @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 @clairegiordano
  18. @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” @clairegiordano
  19. @clairegiordano #3 – Feedback is a gift Good reviewers are

    GOLD: they see things you missed, give you actionable feedback @clairegiordano
  20. @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 @clairegiordano
  21. @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.” @clairegiordano
  22. @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. @clairegiordano
  23. @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” @clairegiordano
  24. @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 @clairegiordano
  25. @clairegiordano #9 – Optimize for SEO Improving SEO attributes of

    your post increases likelihood it will perform well in Google search results (SERP) Don’t need to be “SEO expert”, just some basic SEO skills The goal: “Evergreen content” Claire’s Simple SEO Checklist @clairegiordano
  26. @clairegiordano #9 – Optimize for SEO Claire’s Simple SEO Checklist

    q Good content is paramount q Title discoverability & clickability @clairegiordano
  27. @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
  28. @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 1. Most important terms in first 60 characters? 2. Incognito searches 3. Boring vs. interesting
  29. @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 @clairegiordano
  30. @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 @clairegiordano
  31. @clairegiordano Examples of Bio’s designed to show EAT Expertise Authoritativeness

    Trustworthiness Some debate among experts how much EAT affects SEO... do it anyway! @clairegiordano
  32. @clairegiordano #9 – Optimize for SEO Improving SEO attributes of

    your post increases likelihood it will perform well in Google search results (SERP) 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 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) @clairegiordano
  33. @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 Editing Tips @clairegiordano
  34. @clairegiordano That’s it for Content. Now onto: DISTRIBUTION 1. 2.

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

    ‘good’ by how much traffic they get.” True False @clairegiordano
  36. @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! • Twitter card validator • LinkedIn Post Inspector • Slack unfurl Screenshot of an unfurl on Slack, just drop URL into a slack to yourself @clairegiordano
  37. @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 @clairegiordano
  38. @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 @clairegiordano
  39. @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 @clairegiordano
  40. @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” @clairegiordano
  41. @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. @clairegiordano
  42. @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! @clairegiordano
  43. @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 @clairegiordano
  44. @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 @clairegiordano Credits & inspiration go to...
  45. @clairegiordano Feedback is a gift! PGConfEU team & I would

    both LOVE your feedback on my (and all of the) talks https://2022.pgconf.eu/f