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

How to engineer your developer blog posts to have bigger impact | Claire Giordano | PGConf.dev 2024

How to engineer your developer blog posts to have bigger impact | Claire Giordano | PGConf.dev 2024

Slides from a technical blogging talk I gave at PGConf.dev 2024, full of checklists and actionable tips.

Abstract: 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 of your technical blog posts about Postgres. These best practices begin with empathy for your readers—and cover lots of ground from there, including scannability, readability, how to avoid ambiguities, and how to make your expertise more accessible to people who process information differently than you do. Plus there are checklists, key things to know about SEO, and tips on how to promote your blog post. This talk is an updated version of the FOSDEM 2023 talk I presented and it's not just theory: real-world examples are included throughout the talk.

Goals/Takeaways for the Audience:

1) How to use Empathy for developers as a "true north" guide to create content that is more useful, more impactful

2) How to create blog posts that are more scannable, more readable, and use different formats (prose, diagrams, code, tables) to influence different types of Postgres developers and users

3) Tips on how to iterate through the "Edit cycle" in order to create more impactful blog posts.

Claire Giordano

May 31, 2024
Tweet

More Decks by Claire Giordano

Other Decks in Technology

Transcript

  1. @clairegiordano How to engineer your developer blog posts to have

    bigger impact CLAIRE GIORDANO @clairegiordano • @pg_at_msft • @AzureDBPostgres • @citusdata • @PosetteConf
  2. @clairegiordano #1 – Write with a specific reader in mind

    Who do you want to read your post? Write to that person @[email protected]
  3. @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]
  4. @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]
  5. @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]
  6. @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 @[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: @[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  Section headlines (not

    subject titles)  Bullets  Bold-font prefix to bullets  Short sentences  Short paragraphs  Whitespace  Tables Variety of Formats  Not just paragraphs of text  Diagrams  Tables  Screenshots  Code blocks  Captions for images  Alt-text & H2s for screen readers Readability  Conversational voice  Write how you speak  2nd person (“you”)  Teaching BFF over coffee  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.” @[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

     Good content is paramount  Title discoverability & clickability @[email protected]
  23. @clairegiordano Scribble lots of bad title ideas, to find a

    good one TITLE OPTIONS, need to frontload most important terms since Google Search Engine Result Pages (SERP) often truncates the title at 60 chars, including spaces... 1. What's improved in the PostgreSQL 16 query planner 2. Improvements to PostgreSQL 16 query planner (aka the optimizer) 3. Top 10 improvements to PostgreSQL 16 query planner (aka the optimizer) 4. Most valuable improvements to PostgreSQL 16 query planner 5. What’s new in the Postgres 16 query planner (aka the optimizer) 6. Deep dive into the Postgres 16 query planner (aka the optimizer) 7. Understanding the Postgres 16 query planner: what’s new? 8. Why Postgres 16 is better at optimizing your queries than PG15 9. Ways the Postgres 16 query planner is better than ever 10. Reflecting on all the Postgres 16 query planner improvements 11. Understanding the Postgres query planner & how PG 16 makes it better 12. A developer’s view of the Postgres 16 query planner (aka the optimizer) 13. What’s new in the Postgres 16 query planner / optimizer 14. Understanding what’s changed in PostgreSQL 16’s query planner 15. Understanding what’s new in PostgreSQL 16’s query planner @clairegiordano
  24. @clairegiordano 3 techniques for assessing Title ideas.... 1. Most important

    terms in first 60 characters? 2. Incognito searches 3. Boring vs. interesting @[email protected] TITLE OPTIONS, need to frontload most important terms since Google Search Engine Result Pages (SERP) often truncates the title at 60 chars, including spaces... 1. What's improved in the PostgreSQL 16 query planner 2. Improvements to PostgreSQL 16 query planner (aka the optimizer) 3. Top 10 improvements to PostgreSQL 16 query planner (aka the optimizer) 4. Most valuable improvements to PostgreSQL 16 query planner 5. What’s new in the Postgres 16 query planner (aka the optimizer) 6. Deep dive into the Postgres 16 query planner (aka the optimizer) 7. Understanding the Postgres 16 query planner: what’s new? 8. Why Postgres 16 is better at optimizing your queries than PG15 9. Ways the Postgres 16 query planner is better than ever 10. Reflecting on all the Postgres 16 query planner improvements 11. Understanding the Postgres query planner & how PG 16 makes it better 12. A developer’s view of the Postgres 16 query planner (aka the optimizer) 13. What’s new in the Postgres 16 query planner / optimizer 14. Understanding what’s changed in PostgreSQL 16’s query planner 15. Understanding what’s new in PostgreSQL 16’s query planner
  25. @clairegiordano #9 – Optimize for SEO Don’t need to be

    “SEO expert”, just some basic SEO skills Claire’s Simple SEO Checklist  Good content is paramount  Title discoverability & clickability Use Terms your readers use Avoid general terms (“solution”) Avoid pronouns (“it”, “this”) Relevant keywords in Anchor text for hyperlinks Relevant 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  Alt-text for graphics  Author Bio shows EAT: Expertise, Authoritativeness, Trustworthiness @[email protected]
  27. @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  Good content is paramount  Title discoverability & clickability  Use Terms your readers use  Avoid general terms (e.g., “solution”)  Avoid pronouns (e.g., “it”, “this”)  Relevant keywords in Anchor text for hyperlinks  Relevant keywords in URL  Alt-text for graphics  Author Bio shows Expertise, Authority, Trustworthy (EAT) @[email protected]
  28. @clairegiordano  Embrace the iteration!  It’s OK for first

    drafts to suck!  Feedback is a gift  Focus your reviewers  Get your scissors out & cut!  Fork into multiple posts  KISS = Keep it simple  Read it out loud  Optimize for SEO Mastering “The Edit Cycle” when Blogging 9 Editing Tips @clairegiordano
  29. @clairegiordano That’s it for Content. Now onto: DISTRIBUTION 1. 2.

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

    ‘good’ by how much traffic they get.” True False @[email protected]
  31. @clairegiordano #1 - Pro Tip: Before you promote, doublecheck “unfurl”

    Twitter/X 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/X 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]
  32. @clairegiordano #3 – Go to where your readers are That

    means promoting on lots of channels “All the socials” • Planet Postgres • X/Twitter • Mastodon • Threads • Slack • LinkedIn • Reddit • Discord • Hacker News (YC) • Postgres Weekly • Citus Newsletter • Link in GitHub repo @[email protected]
  33. @clairegiordano #4 – Rinse Lather Repeat Different times of day

    & time zones Multiple days Don’t be hesitant to share it again, especially if different time of day, esp. if sharing a different “point of view” Only ~1-2% of followers see a tweet @[email protected]
  34. @clairegiordano #5 – Keep Twitter/X 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
  35. @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]
  36. @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]
  37. @clairegiordano PROMOTION Tips & Checklist for Blogging Promotion Tips 

    Doublecheck ”unfurl”  Syndicate to Planet Postgres  Go to where your readers are  Rinse lather repeat  Recycle tweets  Be there for Q&A  Karma is a 2-way street  Use “Promotion Checklist” Promotion Checklist  xxx  yyy  zzz  aaa  bbb  ccc @[email protected]
  38. Have you heard of this podcast for developers who love

    Postgres?  Monthly  15+ episodes  A-ma-zing guests aka.ms/PathToCitusCon Hosted by Claire Giordano
  39. with topics like....  Becoming expert in PostgreSQL  From

    dev to Postgres specialist  Journey into Performance benchmarking  My Journey into Postgres monitoring  How I got started as a developer  Why people care about PostGIS aka.ms/PathToCitusCon Hosted by Claire Giordano
  40. 65 Say hello to our podcast’s new name, rolling out

    in the next ~month..... aka.ms/TalkingPostgres
  41. @clairegiordano  Asad Khan  Ashley McNamara Willis  Charles

    Feddersen  David Perell  Hugh McLeod / Gaping Void  Isaac Alves  Marco Slot  Melanie Plageman  My Nguyen Credits & inspiration go to...  Rachel Agyemang  Sarah Novotny  Stephen O’Grady  Sumedh Pathak @[email protected]