<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gerardo Saucedo — Writing</title>
    <link>https://gerardosaucedo.dev</link>
    <description>Notes and tutorials on engineering, product, and craft.</description>
    <language>en</language>
    <atom:link href="https://gerardosaucedo.dev/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A DevTools playground: learn Flutter performance by breaking things on purpose</title>
      <link>https://gerardosaucedo.dev/blog/flutter-devtools-playground</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-devtools-playground</guid>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <description>I built an open-source app that's a menu of screens — each one hides a real performance or memory bug, or looks broken but is healthy by design. A hands-on lab for reading Flutter DevTools frame by frame.</description>
      <category>Flutter</category>
      <category>Performance</category>
      <category>DevTools</category>
      <category>Memory</category>
      <category>Open Source</category>
    </item>
    <item>
      <title>When NOT to optimize: reading a false positive in DevTools</title>
      <link>https://gerardosaucedo.dev/blog/flutter-performance-false-positives</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-performance-false-positives</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
      <description>Four States alive when only one is visible. Memory climbing every 400 ms. A red frame on reload. All three look like bugs in DevTools. All three are healthy by design — and knowing that is the senior skill.</description>
      <category>Flutter</category>
      <category>Performance</category>
      <category>DevTools</category>
      <category>Memory</category>
      <category>Jank</category>
    </item>
    <item>
      <title>Which region do you deploy in? The four forces that decide for you</title>
      <link>https://gerardosaucedo.dev/blog/aws-choosing-a-region</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/aws-choosing-a-region</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <description>Choosing a region isn't a dropdown menu: it commits your latency, your bill, your legal standing, and even which services you can use.</description>
      <category>AWS</category>
      <category>AWS Regions</category>
      <category>Cloud Architecture</category>
      <category>Latency</category>
      <category>Compliance</category>
    </item>
    <item>
      <title>When one region isn't enough: AWS at the edge</title>
      <link>https://gerardosaucedo.dev/blog/aws-cloud-at-the-edge</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/aws-cloud-at-the-edge</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <description>Edge Locations, Local Zones, Wavelength, and Outposts: four ways to push the cloud closer than any region can reach — all the way into your own building.</description>
      <category>AWS</category>
      <category>Edge Computing</category>
      <category>Local Zones</category>
      <category>Wavelength</category>
      <category>Outposts</category>
    </item>
    <item>
      <title>How do regions and availability zones keep your app alive?</title>
      <link>https://gerardosaucedo.dev/blog/aws-global-infrastructure</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/aws-global-infrastructure</guid>
      <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
      <description>How AWS spreads its infrastructure across the world, and what kind of failure can take your application down.</description>
      <category>AWS</category>
      <category>Availability Zones</category>
      <category>Regions</category>
      <category>Cloud Architecture</category>
      <category>High Availability</category>
    </item>
    <item>
      <title>Memory leaks in Flutter: the initState ↔ dispose symmetry</title>
      <link>https://gerardosaucedo.dev/blog/flutter-performance-memory-leaks</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-performance-memory-leaks</guid>
      <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
      <description>Dart has a garbage collector, so how can Flutter leak? When something long-lived holds a reference to a State you thought was gone. Three leaks, one rule, and how to catch them in DevTools.</description>
      <category>Flutter</category>
      <category>Performance</category>
      <category>DevTools</category>
      <category>Memory</category>
      <category>Dart</category>
    </item>
    <item>
      <title>Why does your app feel slow? Two stutters, two different fixes</title>
      <link>https://gerardosaucedo.dev/blog/flutter-performance-jank-ui-thread</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-performance-jank-ui-thread</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>Typing in a search box stutters. A list lags the moment it opens. Both are jank — but one is your Dart code and the other is the GPU, and DevTools tells them apart. Everything you ship has to fit in 16 milliseconds.</description>
      <category>Flutter</category>
      <category>Performance</category>
      <category>DevTools</category>
      <category>CPU Profiler</category>
      <category>Jank</category>
    </item>
    <item>
      <title>Why does your whole screen rebuild when one counter ticks?</title>
      <link>https://gerardosaucedo.dev/blog/flutter-performance-rebuilds</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-performance-rebuilds</guid>
      <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
      <description>A value updates every 500 ms and a grid of cards does work it didn't need to. The problem isn't the counter — it's where the setState lives. A tour of rebuilds with Flutter DevTools, and what the rebuild counter actually means.</description>
      <category>Flutter</category>
      <category>Performance</category>
      <category>DevTools</category>
      <category>Rebuilds</category>
      <category>State Management</category>
    </item>
    <item>
      <title>StatefulWidget in Flutter: Why Your Widget Isn't Updating and How to Fix It</title>
      <link>https://gerardosaucedo.dev/blog/flutter-statefulwidget-lifecycle</link>
      <guid isPermaLink="true">https://gerardosaucedo.dev/blog/flutter-statefulwidget-lifecycle</guid>
      <pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate>
      <description>You have a widget that should update, but it just won't. Learn how the StatefulWidget lifecycle works — and why yours sometimes won't rebuild.</description>
      <category>Flutter</category>
      <category>Dart</category>
      <category>Mobile</category>
      <category>StatefulWidget</category>
      <category>State Management</category>
    </item>
  </channel>
</rss>