This file provides a handy guide to all the blog posts and other resources we mention in the book chapters. We're also using it to share cool writing resources that we discovered since the book went to press.
- A Search Engine in 80 Lines of Python by Alex Molas
- Async Rust is a Bad Language by Matt Kline
- Python 3.13 Gets a JIT by Anthony Shaw
- I Have Written a JVM in Rust by Andrea Bergia
- The Return of the Frame Pointers by Brendan Gregg
- Hunting a NUMA Performance Bug by Michał Chojnowski (ScyllaDB)
- Why Is My Rust Build So Slow? by Amos Wenger
- How a Single Line of Code Made a 24-core Server Slower Than a Laptop by Piotr Kołaczkowski
- Lessons from Debugging a Tricky Direct Memory Leak by Sanchay Javeria (Pinterest)
- ZFS Is Mysteriously Eating My CPU by Brendan Gregg
- Why I Rewrote My Rust Keyboard Firmware in Zig: Consistency, Mastery, and Fun by Kevin Lynagh
- How Turborepo is Porting from Go to Rust by Nicholas Yang and Anthony Shew (Vercel)
- Why Discord Is Switching from Go to Rust by Jesse Howarth (Discord)
- From Zero to 10 Million Lines of Kotlin by Omer Strulovich (Meta)
- Why We at $FAMOUS_COMPANY Switched to $HYPED_TECHNOLOGY by Saagar Jha
- How Prime Video Updates its App for More Than 8,000 Device Types by Alexandru Ene (Amazon Science)
- Twitter's Recommendation Algorithm by The Twitter Team (𝕏 Engineering)
- How We Built Notification Rate Limiter for Eight Billion Notifications Per Day for 400 Million Monthly Active Users by Akshit Verma and Ayush Gupta (ShareChat)
- How We Built Scalable Spatial Data and Spatial Indexing in CockroachDB by Sumeer Bhola (Cockroach Labs)
- Ship Shape by Kerry Halupka and Rowan Katekar (Canva)
- 25% or 6 to 4: The 11/6/23 Authentication Outage by Mark Smith (Discord)
- Herding Elephants: Lessons Learned from Sharding Postgres at Notion by Garrett Fidalgo (Notion)
- Something You Probably Want to Know About if You're Using SQLite in Golang by Piotr Jastrzębski (Turso)
- Lessons Learned Scaling PostgreSQL Database to 1.2bn Records/Month by Gajus Kuizinas
- Lessons from Stripe by Mark McGranaghan
- I Want Off Mr. Golang's Wild Ride by Amos Wenger
- How to Think About WebAssembly (Amid the Hype) by Matt Butcher (Fermyon)
- Rust After the Honeymoon by Bryan Cantrill
- Software Architecture is Overrated, Clear and Simple Design is Underrated by Gergely Orosz
- How io_uring and eBPF Will Revolutionize Programming in Linux by Glauber Costa (The New Stack, ScyllaDB)
- We Put a Distributed Database in a Browser – And Made a Game of It! by Phil Eaton, Joran Dirk Greef (TigerBeetle)
- 32 Bit Real Estate by Kurt Mackey (Fly.io)
- System Dependencies Are Hard (So We Made Them Easier) by Misty De Méo (axo)
- Why
fsync(): Losing Unsynced Data on a Single Node Leads to Global Data Loss by Denis Rystsov and Alexander Gallego (Redpanda) - So You Think You Want to Write a Deterministic Hypervisor? by Alex Pshenichkin (Antithesis)
- AWS Graviton2: Arm Brings Better Price-Performance than Intel by Michał Chojnowski (ScyllaDB)
- The Relative Performance of C and Rust by Bryan Cantrill
- Redpanda vs. Kafka: A Performance Comparison by Tristan Stevens (Redpanda)
- The Effect of Switching to TCMalloc on RocksDB Memory Use by Dmitry Vorobev (Cloudflare)
- How Much Does Rust's Bounds Checking Actually Cost? by Alana Marzoev (Readyset)
- Scott Hanselman's post, "Do they deserve the gift of your keystrokes?"
- Gergely Orosz's post, "I removed all affiliate links from my blog: numbers"
- Martin Kleppmann's post, "Writing a book: is it worth it?"
- Phil Eaton's post, "Is it worth writing about?"
- Sam Rose's post, "Memory Allocation"
- Sam Rose's post, "Load Balancing"
- Loris Cro’s post, “Cross-compile a C/C++ Project with Zig”
- Reddit post, “How does zig magically cross compile without target shared libraries”
- Gwen Shapira's post, “Transaction isolation in Postgres, explained” (Nile)
- Liz Fong-Jones’s post, “Scaling Kafka at Honeycomb” (Honeycomb)
- Paul Brians’ site, "Common Errors in English Usage"
- "A Writer's Reference" by Diana Hacker and Nancy Sommers
- Bryan Cantrill's post, “Moore's scofflaws” (Oxide Computer)
- Kerry Halupka and Rowan Katekar's post, “Ship shape” (Canva)
- Will Wilson's post, “Is something bugging you?” (Antithesis)
- Natalie Serrino's post, “Dumpster diving the Go Garbage Collector” (Pixie)
- Amos Wenger's post, “Lies we tell ourselves to keep using Golang”
- Bo Ingram's post, "How Discord stores trillions of messages" (Discord)
- Phil Eaton and Joran Dirk Greef's post, "We put a distributed database in the browser – and made a game of it!" (TigerBeetle)
- "Everyday Data Visualization" by Desireé Abbott
- "Fundamentals of Data Visualization" by Claus O. Wilke
- Books by Edward Tufte
N/A
- Google's Search Essentials
- WCAG 2.2 Understanding Docs
- Google Trends
- FAQ about Google Trends data
- Basics of Google Trends
- 15 Tips for Getting the Most out of Google Trends
- Google’s John Mueller on having keywords in a URL
- Google’s John Mueller on URL length
- The Open Graph protocol
- LinkedIn Post Inspector
- Related posts in the Lynagh example
- Link to a GitHub issue in the Yang, Shew example
- Link to a rationale for the Go rewrite in the Howarth example
- An abundance of links in the Strulovich example:
- Glauber Costa's reference to Avinash Sajjanshetty (pointing out a bug in the academic paper that the implementation was based on)
- A comment in the Alexandru Ene post made Piotr think of this comic
N/A
N/A
N/A
- The project referenced in Bryan Cantrill's blog
- Jack Vanlightly’s response to the featured Redpanda post
- Alex Kladov's experiment, proving that bounds checks effectively prevent the compiler from auto-vectorization
- Lobsters guidelines
- List of Hacker News's undocumented features and behaviors
- ahrefs Backlink Checker - free, no registration required
- Neil Patel’s "Ubersuggest" Backlink Checker - free, registration required
- TechYaks, a ranking-driven list of classic tech talks
- Brendan O'Leary's post, “What makes a great tech talk?”
- Gunnar Morling's tweet about giving conference talks
- Martin Kleppmann's post, "Writing a book: is it worth it?"
- Will Larson's post, “Self-publishing Staff Engineer”
- “Joel On Software" by Joel Spolsky based on https://www.joelonsoftware.com/
- "The Old New Thing" by Raymond Chen based on https://devblogs.microsoft.com/oldnewthing/
- Will Larson's post, “What I learned writing a book”
- Will Larson's post, “More (self-)publishing thoughts”
- Gregor Hohpe’s post, “The economics of writing technical books”
- Rob Fitzpatrick’s book, "Write Useful Books"
- Jekyll
- GitHub Pages
- Hugo
- Gatsby
- Ghost
- WordPress.com
- WordPress.org
- Code for Alex Morales' clean minimalist blog
- Jekyll: Step-by-Step tutorial
- Hugo: Quick start
- Gatsby: Getting started
- WordPress: Set up your blog in five steps
- Ghost: getting started
- Medium: Writing and publishing your first story
- Dev.to: Get started with DEV
- Hashnode: Creating a personal blog on Hashnode
- Substack: Setting up your Substack for the first time
- Gergely Orosz’s “Three years of advertising on my blog: numbers”
- Gergely Orosz’s follow-up article, “I removed all affiliate links from my blog: numbers”
- Dan Luu’s “Blog monetization”
- Apress
- Manning
- No Starch Press
- O’Reilly
- The Pragmatic Programmers
- Wiley
- Amazon Kindle Direct Publishing
- Gumroad
- IngramSpark
- Leanpub
N/A
Tools we discovered since going to print
- lmno.lol: A new platform for "blogging minus the yucky bits of the modern web"
- Scramble: An open source Grammarly alternative.
- Bullshit remover: Paste crap, get truth.
- Napkin.ai: Turns your text into visuals.
Some great blog posts on blogging
- Blogging through the decades: Bryan Cantrill reflects on two decades of blogging
- Blog writing for developers: Robin Moffatt's tips from the DevEx perspective
- Phil Eaton's blogs on writing: Phil Eaton's tips on what to write about, what makes a great technical blog, and more
- Julia Evans' blogs on writing: Julia Evans shares her experiences with blogging, from dealing with online critics to working with static site generators
- How (some) good corporate engineering blogs are written: Dan Luu's takeaways after interviewing the people behind a few great blogs (and a few "antipattern" examples who, politely, are not named)
- Becoming a better writer as a software engineer: Gergely Orosz on the importance of writing, the writing process, and tips for building your writing muscle
- How to achieve ultimate blog success in one easy step: Jeff Atwood's single most important piece of advice for blogging
- 10 Rules I Learned About Technical Writing: Teiva Harsanyi shares 10 pointed and practical rules he learned while writing 100 Go Mistakes and How to Avoid Them.