<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Field notes — Matt Balshaw</title><description>Write-ups and working notes: technical posts, book reviews, hikes, and other thoughts.</description><link>https://mattbalshaw.com/</link><item><title>Steffi the piranha flinger</title><link>https://mattbalshaw.com/field-notes/piranha-flinger/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/piranha-flinger/</guid><description>Steffi&apos;s first ever fishing session ends with four piranhas in the bucket, one bouncing off my chest, and the catch served with lime for dinner.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>peru</category><category>amazon</category><category>fishing</category></item><item><title>The mud dance party</title><link>https://mattbalshaw.com/field-notes/mud-dance-party/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/mud-dance-party/</guid><description>A craft afternoon in the Peruvian Amazon turns into hours of carnival dancing in the mud, always twenty minutes from a tree cutting we never saw.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>peru</category><category>amazon</category><category>carnival</category></item><item><title>The caiman magic trick</title><link>https://mattbalshaw.com/field-notes/caiman-magic-trick/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/caiman-magic-trick/</guid><description>On a night boat ride through firefly-covered Amazon water, our guide revealed a baby caiman he had caught without either of us noticing a thing.</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>peru</category><category>amazon</category></item><item><title>Swimming in bioluminescence</title><link>https://mattbalshaw.com/field-notes/swimming-in-bioluminescence/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/swimming-in-bioluminescence/</guid><description>A stranger&apos;s tip sends us back to a Galapagos bay at night, where Matt swims through glowing blue plankton under the Milky Way.</description><pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>galapagos</category><category>ecuador</category></item><item><title>Sand mountains</title><link>https://mattbalshaw.com/field-notes/huacachina-dunes/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/huacachina-dunes/</guid><description>Climbing, buggying and belly-boarding the giant dunes of Huacachina, until the desert followed us home in our shoes.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>peru</category><category>huacachina</category><category>desert</category></item><item><title>The rescue chain in the snow drift</title><link>https://mattbalshaw.com/field-notes/snow-drift-rescue-chain/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/snow-drift-rescue-chain/</guid><description>Getting the van stuck in an Icelandic snow drift, and the chain of strangers who dug us out.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>iceland</category></item><item><title>Shipped a paid AI product in under two weeks, then rebuilt it when the requirements grew</title><link>https://mattbalshaw.com/field-notes/magic-marketing-ai/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/magic-marketing-ai/</guid><description>Built the backend for Magic Marketing, a paid AI marketing tool for podcasters, as a fast MVP, then rewrote it as v2 when the client&apos;s feature requests outgrew the prototype architecture.</description><pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>ai</category><category>llm</category><category>stripe</category></item><item><title>The hidden hot river</title><link>https://mattbalshaw.com/field-notes/iceland-hot-river/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/iceland-hot-river/</guid><description>Finding a hidden hot river in the Icelandic highlands, then freezing our shorts solid.</description><pubDate>Sat, 29 Nov 2025 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>iceland</category></item><item><title>Floating on Another Planet</title><link>https://mattbalshaw.com/field-notes/dead-sea-float/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/dead-sea-float/</guid><description>Floating like a cork in the Dead Sea at the lowest point on earth.</description><pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>jordan</category><category>dead-sea</category></item><item><title>There is always tea with Bedouin people</title><link>https://mattbalshaw.com/field-notes/wadi-rum-jeep/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/wadi-rum-jeep/</guid><description>A jeep day in Wadi Rum with a Bedouin guide, where every stop comes with tea.</description><pubDate>Mon, 24 Nov 2025 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>jordan</category><category>wadi-rum</category></item><item><title>Sunrise at Petra with a stray dog</title><link>https://mattbalshaw.com/field-notes/petra-dog/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/petra-dog/</guid><description>A stray dog leads us through the dark Siq to an empty Treasury at sunrise.</description><pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate><category>Adventures</category><category>travel</category><category>jordan</category><category>petra</category></item><item><title>Gödel, Escher, Bach - a long climb worth making</title><link>https://mattbalshaw.com/field-notes/godel-escher-bach/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/godel-escher-bach/</guid><description>A long climb worth making.</description><pubDate>Thu, 28 Aug 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Why Greatness Cannot Be Planned - a great idea, a repetitive book</title><link>https://mattbalshaw.com/field-notes/why-greatness-cannot-be-planned/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/why-greatness-cannot-be-planned/</guid><description>A great idea, a repetitive book.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Sapiens - even better than Homo Deus</title><link>https://mattbalshaw.com/field-notes/sapiens/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/sapiens/</guid><description>Even better than Homo Deus.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Designing Data-Intensive Applications - dry, despite the reputation</title><link>https://mattbalshaw.com/field-notes/designing-data-intensive-applications/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/designing-data-intensive-applications/</guid><description>Dry, despite the reputation.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>AI Snake Oil - seeing through the hype</title><link>https://mattbalshaw.com/field-notes/ai-snake-oil/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/ai-snake-oil/</guid><description>Seeing through the hype.</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Test-Driven Development: By Example - one great tip, not much else</title><link>https://mattbalshaw.com/field-notes/test-driven-development/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/test-driven-development/</guid><description>One great tip, not much else.</description><pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Nexus - a history book wearing an AI cover</title><link>https://mattbalshaw.com/field-notes/nexus/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/nexus/</guid><description>A history book wearing an AI cover.</description><pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Built a global IP rate limiter in a day to stop bot scraping</title><link>https://mattbalshaw.com/field-notes/global-ip-ratelimiter/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/global-ip-ratelimiter/</guid><description>Shipped a from-scratch IP rate limiter for the Goodpods API in one day to shut down aggressive bot scraping, catching a load balancer IP bug in development before it could throttle every real user.</description><pubDate>Thu, 10 Apr 2025 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>security</category><category>redis</category><category>fastapi</category></item><item><title>Cloud Run was exhausting our database connections, so I did the maths and fixed the root cause</title><link>https://mattbalshaw.com/field-notes/db-connection-pool-firefight/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/db-connection-pool-firefight/</guid><description>A production connection-exhaustion incident on Cloud Run: pool tuning bought time, then the worker-times-instances arithmetic pointed to the real fix with a read replica.</description><pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>cloud-run</category><category>cloud-sql</category><category>postgres</category><category>incidents</category></item><item><title>What We Owe the Future - longtermism without the preaching</title><link>https://mattbalshaw.com/field-notes/what-we-owe-the-future/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/what-we-owe-the-future/</guid><description>Longtermism without the preaching.</description><pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>The Gene - genetics turned into a story</title><link>https://mattbalshaw.com/field-notes/the-gene/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-gene/</guid><description>Genetics turned into a story.</description><pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Scattered Minds - eye opening on ADHD</title><link>https://mattbalshaw.com/field-notes/scattered-minds/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/scattered-minds/</guid><description>Eye opening on ADHD.</description><pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Subprime Attention Crisis - online ads as the next 2008</title><link>https://mattbalshaw.com/field-notes/subprime-attention-crisis/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/subprime-attention-crisis/</guid><description>Online ads as the next 2008.</description><pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>BioBuilder - synthetic biology you can actually do</title><link>https://mattbalshaw.com/field-notes/biobuilder/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/biobuilder/</guid><description>Synthetic biology you can actually do.</description><pubDate>Fri, 24 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>What&apos;s Our Problem? - politics for people who like technical specifics</title><link>https://mattbalshaw.com/field-notes/whats-our-problem/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/whats-our-problem/</guid><description>Politics for people who like technical specifics.</description><pubDate>Mon, 06 Jan 2025 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Introduction to System Design - copy pasted in places, skippable overall</title><link>https://mattbalshaw.com/field-notes/introduction-to-system-design/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/introduction-to-system-design/</guid><description>Copy pasted in places, skippable overall.</description><pubDate>Sat, 27 Jul 2024 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Rewrote the hot-path feed query, twice</title><link>https://mattbalshaw.com/field-notes/feed-query-rewrite/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/feed-query-rewrite/</guid><description>Replaced the exact-ranking feed query behind Goodpods&apos; For You screen with a cheap sampled version, taking p50 latency from 1900ms to 110ms.</description><pubDate>Mon, 01 Jul 2024 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>postgres</category><category>performance</category><category>sql</category></item><item><title>Built a native audio engine from scratch in Swift and Android Media3</title><link>https://mattbalshaw.com/field-notes/native-audio-player-rebuild/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/native-audio-player-rebuild/</guid><description>As a web engineer I wrote a native podcast player for iOS and Android with queues, background playback and lock screen controls, and bridged it to our TypeScript app.</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>swift</category><category>android</category><category>capacitor</category><category>audio</category></item><item><title>My Stroke of Insight - two thirds great, one third not</title><link>https://mattbalshaw.com/field-notes/my-stroke-of-insight/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/my-stroke-of-insight/</guid><description>Two thirds great, one third not.</description><pubDate>Mon, 11 Mar 2024 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Built offline listening: downloads plus an offline-first data layer</title><link>https://mattbalshaw.com/field-notes/offline-downloads/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/offline-downloads/</guid><description>Built episode downloads and a persistent React Query cache so the Goodpods app worked with no connection.</description><pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>capacitor</category><category>react-query</category><category>offline</category></item><item><title>Per-request monitoring at over 1M requests a day, without buying a monitoring product</title><link>https://mattbalshaw.com/field-notes/request-monitoring-1m/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/request-monitoring-1m/</guid><description>With no observability budget, I built request monitoring into Redis for an API doing over 1M requests a day, then used it to find and fix the ten slowest endpoints.</description><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>redis</category><category>monitoring</category><category>performance</category></item><item><title>Replaced our React Native app by shipping the web app through Capacitor</title><link>https://mattbalshaw.com/field-notes/capacitor-native-app-foundation/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/capacitor-native-app-foundation/</guid><description>How I turned one Next.js codebase into the iOS and Android apps for Goodpods and retired an entire React Native codebase.</description><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>capacitor</category><category>nextjs</category><category>mobile</category><category>firebase-auth</category></item><item><title>Instrumented listening in detail, then stopped the player losing your place</title><link>https://mattbalshaw.com/field-notes/listen-stats-player-reliability/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/listen-stats-player-reliability/</guid><description>Built fragment-level listen analytics across the Goodpods app, then fixed the resume bugs that made the player jump back to the start, cutting support complaints to zero.</description><pubDate>Fri, 01 Dec 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>mobile</category><category>audio</category><category>analytics</category></item><item><title>Shipped prefetching, pulled it from prod the same day, then re-shipped it surgically</title><link>https://mattbalshaw.com/field-notes/prefetch-revert/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/prefetch-revert/</guid><description>My first prefetch deploy maxed out the Goodpods backend&apos;s autoscaling, so I reverted it from production the same day and re-shipped a more surgical version.</description><pubDate>Wed, 01 Nov 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>performance</category><category>prefetching</category><category>frontend</category></item><item><title>Rebuilt listen tracking around fragments without breaking old clients</title><link>https://mattbalshaw.com/field-notes/listen-fragments-model/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/listen-fragments-model/</guid><description>Migrated Goodpods&apos; core listen data to a fragment model that captured partial and resumed listens, kept old clients working via daily aggregation, and unlocked podcaster analytics and listen-time leaderboards.</description><pubDate>Sun, 01 Oct 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>data-model</category><category>migration</category><category>analytics</category></item><item><title>Why We Sleep - the book that made me do a full 180</title><link>https://mattbalshaw.com/field-notes/why-we-sleep/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/why-we-sleep/</guid><description>The book that made me do a full 180.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Thinking In Systems - a lens for the whole world</title><link>https://mattbalshaw.com/field-notes/thinking-in-systems/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/thinking-in-systems/</guid><description>A lens for the whole world.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>The Psychology of Money - be reasonable, not rational</title><link>https://mattbalshaw.com/field-notes/the-psychology-of-money/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-psychology-of-money/</guid><description>Be reasonable, not rational.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>The Design of Everyday Things - read it already</title><link>https://mattbalshaw.com/field-notes/the-design-of-everyday-things/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-design-of-everyday-things/</guid><description>Read it already.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>The Cuckoo&apos;s Egg - a real hacker hunt from the early internet</title><link>https://mattbalshaw.com/field-notes/the-cuckoos-egg/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-cuckoos-egg/</guid><description>A real hacker hunt from the early internet.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Can&apos;t Hurt Me - get okay with failing</title><link>https://mattbalshaw.com/field-notes/cant-hurt-me/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/cant-hurt-me/</guid><description>Get okay with failing.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Beyond Good and Evil - really, insanely dense</title><link>https://mattbalshaw.com/field-notes/beyond-good-and-evil/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/beyond-good-and-evil/</guid><description>Really, insanely dense.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Atomic Habits - the best resource on habits, and a masterclass in format</title><link>https://mattbalshaw.com/field-notes/atomic-habits/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/atomic-habits/</guid><description>The best resource on habits, and a masterclass in format.</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Making Next.js caching behave at a million requests a day</title><link>https://mattbalshaw.com/field-notes/nextjs-caching-firefight/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/nextjs-caching-firefight/</guid><description>A multi-month fight to get stale-while-revalidate working on the Goodpods webapp without pages caching forever or deploys serving a stale app.</description><pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>nextjs</category><category>nginx</category><category>caching</category><category>performance</category></item><item><title>How to use alembic in production</title><link>https://mattbalshaw.com/field-notes/alembic-in-production/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/alembic-in-production/</guid><description>A practical guide to running Alembic database migrations from your first revision through to CI/CD and production.</description><pubDate>Fri, 25 Aug 2023 00:00:00 GMT</pubDate><category>Technical</category><category>alembic</category><category>databases</category><category>python</category><category>migrations</category></item><item><title>The Emperor of All Maladies - a biography of cancer that earns the title</title><link>https://mattbalshaw.com/field-notes/the-emperor-of-all-maladies/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-emperor-of-all-maladies/</guid><description>A biography of cancer that earns the title.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>The Book - an antidote to nihilism</title><link>https://mattbalshaw.com/field-notes/the-book/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-book/</guid><description>An antidote to nihilism.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Never Split the Difference - negotiation lessons that read like a thriller</title><link>https://mattbalshaw.com/field-notes/never-split-the-difference/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/never-split-the-difference/</guid><description>Negotiation lessons that read like a thriller.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Masters of Doom - a really great startup story</title><link>https://mattbalshaw.com/field-notes/masters-of-doom/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/masters-of-doom/</guid><description>A really great startup story.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Man&apos;s Search for Meaning - a classic anyone would benefit from reading</title><link>https://mattbalshaw.com/field-notes/mans-search-for-meaning/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/mans-search-for-meaning/</guid><description>A classic anyone would benefit from reading.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Kill It with Fire - the best software book I&apos;d read in a long time</title><link>https://mattbalshaw.com/field-notes/kill-it-with-fire/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/kill-it-with-fire/</guid><description>The best software book I&apos;d read in a long time.</description><pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Put the content in the first-load HTML</title><link>https://mattbalshaw.com/field-notes/seo-structured-data/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/seo-structured-data/</guid><description>Server-rendering structured data and real page content took Goodpods from a few dozen organic clicks a week to over 1000.</description><pubDate>Sat, 01 Jul 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>seo</category><category>ssr</category><category>nextjs</category></item><item><title>Shipped curated lists in ten days and users made 1,000 of them</title><link>https://mattbalshaw.com/field-notes/curated-lists-feature/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/curated-lists-feature/</guid><description>Built the curated lists feature across the Goodpods native app in about ten days; users created 1,000 lists within the first ten days after release.</description><pubDate>Sat, 01 Jul 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>mobile</category><category>feature-delivery</category><category>sharing</category></item><item><title>Refactoring UI - two hours to noticeably better web design</title><link>https://mattbalshaw.com/field-notes/refactoring-ui/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/refactoring-ui/</guid><description>Two hours to noticeably better web design.</description><pubDate>Tue, 27 Jun 2023 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Deep Work - readable, enjoyable, and mostly forgotten a few months later</title><link>https://mattbalshaw.com/field-notes/deep-work/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/deep-work/</guid><description>Readable, enjoyable, and mostly forgotten a few months later.</description><pubDate>Tue, 27 Jun 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Took the webapp&apos;s Lighthouse score from the 20s to 95 for an SEO push</title><link>https://mattbalshaw.com/field-notes/ssr-performance-push/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/ssr-performance-push/</guid><description>A five-month Core Web Vitals campaign on the Goodpods Next.js webapp that lifted Lighthouse from 20-30 to 95 and improved search rankings.</description><pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>nextjs</category><category>performance</category><category>seo</category><category>ssr</category></item><item><title>A stale-while-revalidate cache took SSR pages from 2-5 seconds to 100ms</title><link>https://mattbalshaw.com/field-notes/infinite-cache-ssr/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/infinite-cache-ssr/</guid><description>I designed a Redis stale-while-revalidate cache for Goodpods&apos; SSR pages, gated to crawlers only, that cut response times from 2-5 seconds to around 100ms.</description><pubDate>Wed, 01 Mar 2023 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>redis</category><category>caching</category><category>seo</category></item><item><title>Meditations - a Roman emperor&apos;s private journal, not a book</title><link>https://mattbalshaw.com/field-notes/meditations/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/meditations/</guid><description>A Roman emperor&apos;s private journal, not a book.</description><pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Introducing Go - just watch YouTube instead</title><link>https://mattbalshaw.com/field-notes/introducing-go/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/introducing-go/</guid><description>Just watch YouTube instead.</description><pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>12 Rules for Life - good moments, wandering tangents</title><link>https://mattbalshaw.com/field-notes/12-rules-for-life/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/12-rules-for-life/</guid><description>Good moments, wandering tangents.</description><pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Robust Python - the book that sold me on type hints</title><link>https://mattbalshaw.com/field-notes/robust-python/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/robust-python/</guid><description>The book that sold me on type hints.</description><pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Using Asyncio in Python - the book that finally made the event loop click</title><link>https://mattbalshaw.com/field-notes/using-asyncio-in-python/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/using-asyncio-in-python/</guid><description>The book that finally made the event loop click.</description><pubDate>Mon, 29 Aug 2022 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>The Mythical Man-Month - software is grown, not constructed</title><link>https://mattbalshaw.com/field-notes/the-mythical-man-month/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/the-mythical-man-month/</guid><description>Software is grown, not constructed.</description><pubDate>Fri, 19 Aug 2022 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Rationality - fine, but outclassed by its own references</title><link>https://mattbalshaw.com/field-notes/rationality/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/rationality/</guid><description>Fine, but outclassed by its own references.</description><pubDate>Tue, 02 Aug 2022 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Clean Code - worth doing your job properly</title><link>https://mattbalshaw.com/field-notes/clean-code/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/clean-code/</guid><description>Worth doing your job properly.</description><pubDate>Sun, 26 Dec 2021 00:00:00 GMT</pubDate><category>Technical</category><category>books</category><category>technical</category></item><item><title>Designing the Mind - if I could only have read one book in 2021</title><link>https://mattbalshaw.com/field-notes/designing-the-mind/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/designing-the-mind/</guid><description>If I could only have read one book in 2021.</description><pubDate>Sun, 11 Jul 2021 00:00:00 GMT</pubDate><category>Non-fiction Reviews</category><category>books</category><category>non-fiction</category></item><item><title>Built Detox E2E tests on CI, then removed them when they stopped paying off</title><link>https://mattbalshaw.com/field-notes/detox-e2e-then-removed/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/detox-e2e-then-removed/</guid><description>After a team reduction left us without full-time QA, I set up Detox end-to-end tests on CI, ran them for eighteen months, then removed them when the evidence showed they were not worth their maintenance cost.</description><pubDate>Mon, 01 Feb 2021 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>react-native</category><category>testing</category><category>ci</category></item><item><title>Rebuilt the Goodpods API from Django to FastAPI, endpoint by endpoint</title><link>https://mattbalshaw.com/field-notes/django-to-fastapi-migration/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/django-to-fastapi-migration/</guid><description>Proposed and led a parallel rewrite of a failing Django backend to FastAPI, taking the platform from 50 to 1500 concurrent users.</description><pubDate>Mon, 10 Aug 2020 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>fastapi</category><category>python</category><category>scaling</category></item><item><title>Moved all the slow, flaky work onto a background worker fleet</title><link>https://mattbalshaw.com/field-notes/async-task-queue-workers/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/async-task-queue-workers/</guid><description>Replaced a high-maintenance Celery setup with an RQ worker fleet on Redis, with priority queues and per-podcast fault tolerance, cutting notification-triggering actions from 5 seconds to 80ms.</description><pubDate>Sat, 01 Aug 2020 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>redis</category><category>python</category><category>background-jobs</category></item><item><title>Replaced FileZilla-to-prod with tests, pipelines and near-daily deploys</title><link>https://mattbalshaw.com/field-notes/cicd-pipeline-buildout/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/cicd-pipeline-buildout/</guid><description>How I took the Goodpods API from live-editing production over FileZilla and weekly outages to a tested, three-environment pipeline with near-daily deploys.</description><pubDate>Mon, 20 Jul 2020 00:00:00 GMT</pubDate><category>Technical</category><category>star</category><category>goodpods</category><category>cicd</category><category>testing</category><category>devops</category></item><item><title>A Realistic Speed Reading Technique</title><link>https://mattbalshaw.com/field-notes/realistic-speed-reading/</link><guid isPermaLink="true">https://mattbalshaw.com/field-notes/realistic-speed-reading/</guid><description>A three-pass method for speed reading non-fiction without losing what matters.</description><pubDate>Mon, 27 May 2019 00:00:00 GMT</pubDate><category>Technical</category><category>reading</category><category>productivity</category><category>learning</category></item></channel></rss>