<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
  <title>Roger Mendoza — Notes</title>
  <link>https://rogmendoza.com/blog/</link>
  <description>Embedded systems, PCB design and automation. Projects, career highlights and notes from the bench — ESP32, KiCad, OpenSCAD, FastAPI and AI-assisted engineering.</description>
  <language>en-us</language>
  <item>
    <title>Inside SolveBlock Core Rev C: a custom ESP32-S3 board, and the checkmarks we had to take back</title>
    <link>https://rogmendoza.com/blog/solveblock-core-rev-c/</link>
    <guid>https://rogmendoza.com/blog/solveblock-core-rev-c/</guid>
    <pubDate>Tue, 06 Oct 2026 12:00:00 +0000</pubDate>
    <description>From a dev board on a breadboard to a custom ESP32-S3 PCB — the layout, the manufacturer checks, the firmware architecture that runs on more than one board, and an honest milestone list.</description>
  </item>
  <item>
    <title>568×: the phone call, the batching rule and the bug that would have dialled</title>
    <link>https://rogmendoza.com/blog/the-bug-that-would-have-dialled/</link>
    <guid>https://rogmendoza.com/blog/the-bug-that-would-have-dialled/</guid>
    <pubDate>Sat, 03 Oct 2026 12:00:00 +0000</pubDate>
    <description>Adding a dial-up telephone carrier to a LoRa mesh exposed a routing bug that no test caught — it would have been discovered as a phone bill.</description>
  </item>
  <item>
    <title>First packet across real air: Reticulum over a dictyon carrier</title>
    <link>https://rogmendoza.com/blog/first-packet-across-real-air/</link>
    <guid>https://rogmendoza.com/blog/first-packet-across-real-air/</guid>
    <pubDate>Tue, 29 Sep 2026 12:00:00 +0000</pubDate>
    <description>Two Heltec V3 radios, one evening, and a round-trip time predicted before it was measured. What the first real-RF runs of Dictyon-net taught me about honest arithmetic.</description>
  </item>
  <item>
    <title>Take the theorem, test the claim: 3-6-9, vortex maths and a sphere</title>
    <link>https://rogmendoza.com/blog/take-the-theorem-test-the-claim/</link>
    <guid>https://rogmendoza.com/blog/take-the-theorem-test-the-claim/</guid>
    <pubDate>Thu, 24 Sep 2026 12:00:00 +0000</pubDate>
    <description>I gave 3-6-9 numerology, vortex mathematics and the Rodin coil one honest test each. Most claims didn&#x27;t survive — but the mathematics hiding inside them produced the biggest engineering gain in the project.</description>
  </item>
  <item>
    <title>The maker loop: requirements, build, measure, repeat</title>
    <link>https://rogmendoza.com/blog/the-maker-loop/</link>
    <guid>https://rogmendoza.com/blog/the-maker-loop/</guid>
    <pubDate>Tue, 22 Sep 2026 12:00:00 +0000</pubDate>
    <description>Hardware, firmware, software and customers all respond to the same loop. A look at how I take an idea from first sketch to working prototype — and why the loop matters more than any tool.</description>
  </item>
  <item>
    <title>NULL is a deliverable: auditing 113 research findings</title>
    <link>https://rogmendoza.com/blog/null-is-a-deliverable/</link>
    <guid>https://rogmendoza.com/blog/null-is-a-deliverable/</guid>
    <pubDate>Fri, 18 Sep 2026 12:00:00 +0000</pubDate>
    <description>A burst of AI-assisted research produced 88 findings in two days. Auditing them against their own rules found that the filter never ran — and that the audit was the most useful finding of all.</description>
  </item>
  <item>
    <title>Four enclosures, one script: choosing SolveBlock&#x27;s shape</title>
    <link>https://rogmendoza.com/blog/four-enclosures-one-script/</link>
    <guid>https://rogmendoza.com/blog/four-enclosures-one-script/</guid>
    <pubDate>Wed, 09 Sep 2026 12:00:00 +0000</pubDate>
    <description>Block, flat, wedge or stand? Generating every candidate enclosure from one parametric source turned an argument about taste into a quick, fair comparison.</description>
  </item>
  <item>
    <title>Every screen from the firmware: designing SolveBlock&#x27;s interface</title>
    <link>https://rogmendoza.com/blog/every-screen-from-the-firmware/</link>
    <guid>https://rogmendoza.com/blog/every-screen-from-the-firmware/</guid>
    <pubDate>Wed, 26 Aug 2026 12:00:00 +0000</pubDate>
    <description>A normal solve costs zero input, the coach stays quiet most of the time, and there&#x27;s no scramble generator on purpose. The interface decisions behind SolveBlock, shown in the device&#x27;s own screens.</description>
  </item>
  <item>
    <title>The starter stack: launching a product without overbuilding</title>
    <link>https://rogmendoza.com/blog/the-starter-stack/</link>
    <guid>https://rogmendoza.com/blog/the-starter-stack/</guid>
    <pubDate>Tue, 18 Aug 2026 12:00:00 +0000</pubDate>
    <description>The tools and sequence I use to take an idea from zero to something real customers can touch — and the things I deliberately postpone.</description>
  </item>
  <item>
    <title>From scanner to product: building GammaJuice</title>
    <link>https://rogmendoza.com/blog/from-scanner-to-gammajuice/</link>
    <guid>https://rogmendoza.com/blog/from-scanner-to-gammajuice/</guid>
    <pubDate>Tue, 04 Aug 2026 12:00:00 +0000</pubDate>
    <description>Turning a Python squeeze scanner into a signals product — a dashboard, a content site on a headless CMS, automated social posts and the engagement data that changed what we publish.</description>
  </item>
  <item>
    <title>Affiliate links rot. Here&#x27;s how to manage them at scale.</title>
    <link>https://rogmendoza.com/blog/affiliate-links-rot/</link>
    <guid>https://rogmendoza.com/blog/affiliate-links-rot/</guid>
    <pubDate>Tue, 28 Jul 2026 12:00:00 +0000</pubDate>
    <description>Programs change, products disappear and redirects break quietly. A practical system for keeping hundreds of affiliate links healthy without checking them by hand.</description>
  </item>
  <item>
    <title>The 80% win rate that wasn&#x27;t</title>
    <link>https://rogmendoza.com/blog/the-80-percent-win-rate-that-wasnt/</link>
    <guid>https://rogmendoza.com/blog/the-80-percent-win-rate-that-wasnt/</guid>
    <pubDate>Tue, 21 Jul 2026 12:00:00 +0000</pubDate>
    <description>A backtest dashboard showed squeeze signals winning 80% of the time. Two lines of code explained why — an outcome-defined label and exits at the peak price.</description>
  </item>
  <item>
    <title>Backtesting a squeeze scanner without fooling myself</title>
    <link>https://rogmendoza.com/blog/backtesting-a-squeeze-scanner/</link>
    <guid>https://rogmendoza.com/blog/backtesting-a-squeeze-scanner/</guid>
    <pubDate>Tue, 14 Jul 2026 12:00:00 +0000</pubDate>
    <description>A thin edge, two filters that sounded smart and didn&#x27;t help, and a liquidity effect hiding in plain sight. What 2,633 historical signals from the 3WT scanner actually said.</description>
  </item>
  <item>
    <title>Power budgets: making a battery ESP32 project last</title>
    <link>https://rogmendoza.com/blog/power-budgets-battery-esp32/</link>
    <guid>https://rogmendoza.com/blog/power-budgets-battery-esp32/</guid>
    <pubDate>Tue, 07 Jul 2026 12:00:00 +0000</pubDate>
    <description>Duty cycles, deep sleep, regulators that leak and the multimeter habit that saves you from surprises. A practical guide to battery life on ESP32 boards.</description>
  </item>
  <item>
    <title>Treat wild ideas as testable hypotheses</title>
    <link>https://rogmendoza.com/blog/wild-ideas-as-testable-hypotheses/</link>
    <guid>https://rogmendoza.com/blog/wild-ideas-as-testable-hypotheses/</guid>
    <pubDate>Tue, 16 Jun 2026 12:00:00 +0000</pubDate>
    <description>Ternary-Six9 is an experimental communications concept. Here&#x27;s how I keep unusual ideas honest — models, fixtures, baselines and logged measurements before any conclusions.</description>
  </item>
  <item>
    <title>SEO is a data problem: lessons from building AffRank.ai</title>
    <link>https://rogmendoza.com/blog/seo-is-a-data-problem-affrank/</link>
    <guid>https://rogmendoza.com/blog/seo-is-a-data-problem-affrank/</guid>
    <pubDate>Tue, 02 Jun 2026 12:00:00 +0000</pubDate>
    <description>Rankings, keywords, metadata, structured FAQs and affiliate links all change constantly. AffRank.ai treats site management like data engineering — with reviewable changes.</description>
  </item>
  <item>
    <title>ESP32 vs RP2350: how I pick the brain of a project</title>
    <link>https://rogmendoza.com/blog/esp32-vs-rp2350/</link>
    <guid>https://rogmendoza.com/blog/esp32-vs-rp2350/</guid>
    <pubDate>Tue, 26 May 2026 12:00:00 +0000</pubDate>
    <description>A practical comparison of two microcontrollers I use constantly — radios, real-time I/O, power, tooling and the questions that settle the choice in five minutes.</description>
  </item>
  <item>
    <title>Growing a mesh: early lessons from Dictyon-net and Hypha Nodes</title>
    <link>https://rogmendoza.com/blog/mesh-networking-lessons-dictyon-net/</link>
    <guid>https://rogmendoza.com/blog/mesh-networking-lessons-dictyon-net/</guid>
    <pubDate>Tue, 05 May 2026 12:00:00 +0000</pubDate>
    <description>What I&#x27;m learning while building a decentralized, low-power communications mesh on ESP32 and RP2350-class hardware — identity, addressing, multipath and measuring everything.</description>
  </item>
  <item>
    <title>Why FastAPI and PostgreSQL are my default backend</title>
    <link>https://rogmendoza.com/blog/fastapi-postgres-default-stack/</link>
    <guid>https://rogmendoza.com/blog/fastapi-postgres-default-stack/</guid>
    <pubDate>Tue, 28 Apr 2026 12:00:00 +0000</pubDate>
    <description>For small products, dashboards and device back-ends, I keep reaching for the same boring, reliable stack. Here&#x27;s the setup and why it holds up.</description>
  </item>
  <item>
    <title>AI can review your PCB. The datasheet still decides.</title>
    <link>https://rogmendoza.com/blog/ai-reviews-the-board-the-datasheet-decides/</link>
    <guid>https://rogmendoza.com/blog/ai-reviews-the-board-the-datasheet-decides/</guid>
    <pubDate>Tue, 14 Apr 2026 12:00:00 +0000</pubDate>
    <description>How I use Python, MCP-connected tools and AI assistants to speed up schematic reviews, routing checks and firmware tests — and the verification rules I never skip.</description>
  </item>
  <item>
    <title>Enclosures as code: why I design 3D-printed parts in OpenSCAD</title>
    <link>https://rogmendoza.com/blog/openscad-enclosures-as-code/</link>
    <guid>https://rogmendoza.com/blog/openscad-enclosures-as-code/</guid>
    <pubDate>Fri, 27 Mar 2026 12:00:00 +0000</pubDate>
    <description>Parametric enclosures, tolerance variables and fit-check prints — how treating plastic like source code made my hardware iterations faster.</description>
  </item>
  <item>
    <title>First power-on: my board bring-up checklist for custom ESP32 boards</title>
    <link>https://rogmendoza.com/blog/board-bring-up-checklist/</link>
    <guid>https://rogmendoza.com/blog/board-bring-up-checklist/</guid>
    <pubDate>Tue, 10 Mar 2026 12:00:00 +0000</pubDate>
    <description>The step-by-step routine I follow when a fresh PCB arrives — from a current-limited first power-up to a known-good firmware baseline.</description>
  </item>
  <item>
    <title>The timer is the source of truth — designing deterministic solve statistics</title>
    <link>https://rogmendoza.com/blog/the-timer-is-the-source-of-truth/</link>
    <guid>https://rogmendoza.com/blog/the-timer-is-the-source-of-truth/</guid>
    <pubDate>Tue, 24 Feb 2026 12:00:00 +0000</pubDate>
    <description>Why SolveBlock never re-times a solve, how we compute averages with integer math, and what &quot;deterministic&quot; really means for a tiny embedded device.</description>
  </item>
  <item>
    <title>From napkin to PCB: designing SolveBlock in KiCad</title>
    <link>https://rogmendoza.com/blog/from-napkin-to-pcb-solveblock/</link>
    <guid>https://rogmendoza.com/blog/from-napkin-to-pcb-solveblock/</guid>
    <pubDate>Tue, 03 Feb 2026 12:00:00 +0000</pubDate>
    <description>How a speedcubing idea became a custom ESP32 board — the requirements, the schematic decisions, the layout tradeoffs and the mistakes I&#x27;d happily make again.</description>
  </item>
  <item>
    <title>Structured outputs: prompt engineering for answers your code can trust</title>
    <link>https://rogmendoza.com/blog/structured-outputs-prompt-engineering/</link>
    <guid>https://rogmendoza.com/blog/structured-outputs-prompt-engineering/</guid>
    <pubDate>Tue, 27 Jan 2026 12:00:00 +0000</pubDate>
    <description>How I design LLM prompts and schemas that return reliable JSON for analytics, reporting and automation — plus the validation layer that catches everything else.</description>
  </item>
  <item>
    <title>Why the ESP32 became my favorite blank page</title>
    <link>https://rogmendoza.com/blog/why-the-esp32-is-my-blank-page/</link>
    <guid>https://rogmendoza.com/blog/why-the-esp32-is-my-blank-page/</guid>
    <pubDate>Mon, 12 Jan 2026 12:00:00 +0000</pubDate>
    <description>Wi-Fi, Bluetooth, two cores and a pile of peripherals for the price of lunch. Here&#x27;s why nearly every idea I have starts on an ESP32 — and when it shouldn&#x27;t.</description>
  </item>
  <item>
    <title>Automation people actually adopt</title>
    <link>https://rogmendoza.com/blog/automation-people-actually-adopt/</link>
    <guid>https://rogmendoza.com/blog/automation-people-actually-adopt/</guid>
    <pubDate>Tue, 09 Dec 2025 12:00:00 +0000</pubDate>
    <description>Lessons from building onboarding, CRM and AI workflows — including an LLM-assisted onboarding flow that cut onboarding time by 35%. Adoption is the real metric.</description>
  </item>
  <item>
    <title>What 20 years of enterprise infrastructure taught me about building hardware</title>
    <link>https://rogmendoza.com/blog/what-hospital-networks-taught-me-about-hardware/</link>
    <guid>https://rogmendoza.com/blog/what-hospital-networks-taught-me-about-hardware/</guid>
    <pubDate>Tue, 18 Nov 2025 12:00:00 +0000</pubDate>
    <description>Citrix farms, hospital uptime and change control don&#x27;t sound like PCB design. They turned out to be the best training I could have had.</description>
  </item>
  <item>
    <title>n8n or code? How I decide when to automate visually</title>
    <link>https://rogmendoza.com/blog/n8n-or-code/</link>
    <guid>https://rogmendoza.com/blog/n8n-or-code/</guid>
    <pubDate>Tue, 14 Oct 2025 12:00:00 +0000</pubDate>
    <description>Visual workflow tools and plain Python both have a place. A practical guide to choosing between them — and to the hybrid approach most of my automation uses.</description>
  </item>
  <item>
    <title>What 17,000 customers taught me about funnels, follow-up and trust</title>
    <link>https://rogmendoza.com/blog/lessons-from-17000-customers/</link>
    <guid>https://rogmendoza.com/blog/lessons-from-17000-customers/</guid>
    <pubDate>Tue, 16 Sep 2025 12:00:00 +0000</pubDate>
    <description>Twelve years of building the systems behind a direct-sales business — e-commerce, CRM, email/SMS and training — and the product lessons that carried over into engineering.</description>
  </item>
</channel>
</rss>
