<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Juanses Dev — Writing</title>
    <link>https://juanses.dev/en/blog</link>
    <description>Notes on architecture, engineering decisions, and things I learn building.</description>
    <language>en-US</language>
    <atom:link href="https://juanses.dev/en/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Consistency over intensity: a roadmap for learning to program</title>
      <link>https://juanses.dev/en/blog/consistency-over-intensity</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/consistency-over-intensity</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <description>You don&apos;t learn to code in one heroic weekend. The real roadmap is almost boring: a little, every day, applied and repeated. A story about the 12-hour tutorial that taught me nothing.</description>
      <category>Craft</category><category>Learning</category><category>Consistency</category>
    </item>
    <item>
      <title>Stepping away from the keyboard is part of the work</title>
      <link>https://juanses.dev/en/blog/stepping-away-from-the-keyboard</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/stepping-away-from-the-keyboard</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <description>Some problems don&apos;t get solved by typing harder. Real rest — a walk, some air, a coffee away from the screen — is a debugging tool, not wasted time.</description>
      <category>Craft</category><category>Focus</category><category>Rest</category>
    </item>
    <item>
      <title>Before you write code: plan, ship an MVP, don&apos;t chase perfect</title>
      <link>https://juanses.dev/en/blog/before-you-start-a-project</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/before-you-start-a-project</guid>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
      <description>The most important decisions on a project happen before the first commit. A short field guide: plan, pick boring tech, ship small, and test in the real world.</description>
      <category>Process</category><category>Planning</category><category>MVP</category>
    </item>
    <item>
      <title>Great MacBooks, rough tools: the Android emulator story</title>
      <link>https://juanses.dev/en/blog/great-macbooks-rough-tools</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/great-macbooks-rough-tools</guid>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <description>Apple Silicon laptops are excellent. The problem is rarely the machine — it&apos;s tools that don&apos;t account for it. A concrete example from Android Studio.</description>
      <category>Tools</category><category>macOS</category><category>Android</category><category>Tooling</category>
    </item>
    <item>
      <title>Why Linux beats Windows for development</title>
      <link>https://juanses.dev/en/blog/linux-for-development</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/linux-for-development</guid>
      <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
      <description>Not nostalgia — practicality. Configuration that actually works, native Docker, Unix tooling, and raw speed. A working developer&apos;s case for Linux.</description>
      <category>Tools</category><category>Linux</category><category>Docker</category><category>DevOps</category>
    </item>
    <item>
      <title>Designing BillParty offline-first: constraints as features</title>
      <link>https://juanses.dev/en/blog/billparty-offline-first</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/billparty-offline-first</guid>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <description>BillParty has no backend, no accounts, no cloud — on purpose. How a hard constraint (works on a plane, lives on one phone) became the product&apos;s best feature.</description>
      <category>Product</category><category>BillParty</category><category>Architecture</category><category>Offline</category>
    </item>
    <item>
      <title>Why I built SendDock instead of paying for email tools</title>
      <link>https://juanses.dev/en/blog/why-i-built-senddock</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/why-i-built-senddock</guid>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <description>Transactional email and waitlist tools quietly turn expensive. SendDock is my answer: an open-source platform you can self-host and actually own.</description>
      <category>Product</category><category>SendDock</category><category>Open Source</category><category>Go</category>
    </item>
    <item>
      <title>Code is read far more than it&apos;s written</title>
      <link>https://juanses.dev/en/blog/code-is-read-more-than-written</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/code-is-read-more-than-written</guid>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <description>Programming isn&apos;t typing. Most of the job is reading, interpreting, and probing code — including your own from last month — to understand a problem before you touch it.</description>
      <category>Craft</category><category>Reading</category><category>Learning</category>
    </item>
    <item>
      <title>Clever code is a loan you repay with interest</title>
      <link>https://juanses.dev/en/blog/clever-code-costs</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/clever-code-costs</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <description>The cleverest line you write today is the one you&apos;ll struggle to read in six months. Optimize for the reader, not for the satisfaction of being clever.</description>
      <category>Craft</category><category>Simplicity</category><category>Maintainability</category>
    </item>
    <item>
      <title>Tests as living contracts</title>
      <link>https://juanses.dev/en/blog/tests-as-living-contracts</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/tests-as-living-contracts</guid>
      <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
      <description>A good test suite isn&apos;t a safety net you tolerate — it&apos;s the executable specification of what your system promises, including the properties that must always hold.</description>
      <category>Architecture</category><category>Testing</category><category>Decisions</category>
    </item>
    <item>
      <title>Make decisions reversible</title>
      <link>https://juanses.dev/en/blog/make-decisions-reversible</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/make-decisions-reversible</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <description>You can&apos;t reliably predict the right call. So optimize for cheap mistakes: prefer decisions you can walk back over ones you have to get right the first time.</description>
      <category>Architecture</category><category>Decisions</category>
    </item>
    <item>
      <title>Boundaries before features</title>
      <link>https://juanses.dev/en/blog/boundaries-before-features</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/boundaries-before-features</guid>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <description>Why I draw the lines between modules before writing a single feature — and how it keeps a codebase from rotting as it grows.</description>
      <category>Architecture</category><category>Boundaries</category><category>Decisions</category>
    </item>
    <item>
      <title>Why I store money as integers</title>
      <link>https://juanses.dev/en/blog/money-as-integers</link>
      <guid isPermaLink="true">https://juanses.dev/en/blog/money-as-integers</guid>
      <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
      <description>Floats and currency don&apos;t mix. A short note on a decision I make on every project that touches money — and why it keeps balances exact.</description>
      <category>Architecture</category><category>Domain</category><category>Decisions</category>
    </item>
  </channel>
</rss>