Roger Mendoza

Notes from the bench

Notes

Write-ups on ESP32 projects, PCB and enclosure design, mesh networking, AI-assisted engineering, automation and building products from scratch.

50 posts

A marketing audit scored my SaaS a D — and the fixes were sitting in git

AffRank.ai's audit found weak trust signals, a contradiction on the pricing page and a site Googlebot saw as a single empty page. Half the fixes were already committed. None were live.

SEOProductStartups

A market newsroom on autopilot: macro charts, AI commentary and the guardrails

How the GammaJuice pipeline turns a nightly scan into charts, posts and articles — FRED macro data, an AI that writes in my voice under strict rules, and P&L tracking that shows the losers too.

MarketsAutomationAI

AffRank V4: deciding what the product is not

AffRank started life as an AI-powered SEO platform. Version 4 cut it down to one job — inject affiliate links and prove which page, placement and offer made the money. Here's the pivot and the attribution engine behind it.

SEOProductStartups

Inside SolveBlock Core Rev C: a custom ESP32-S3 board, and the checkmarks we had to take back

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.

SolveBlockPCBESP32

568×: the phone call, the batching rule and the bug that would have dialled

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.

MeshHardwareResearch

First packet across real air: Reticulum over a dictyon carrier

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.

MeshHardwareESP32

Take the theorem, test the claim: 3-6-9, vortex maths and a sphere

I gave 3-6-9 numerology, vortex mathematics and the Rodin coil one honest test each. Most claims didn't survive — but the mathematics hiding inside them produced the biggest engineering gain in the project.

ResearchHardwareMesh

The maker loop: requirements, build, measure, repeat

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.

ProductHardwareSolveBlock

NULL is a deliverable: auditing 113 research findings

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.

ResearchAI

Playwright: screenshots, end-to-end tests and proof that the page works

Microsoft's Playwright drives Chromium, Firefox and WebKit from one API. I use it for SaaS end-to-end tests, dashboard screenshots for social posts, and checking every page of this site at desktop and phone widths.

Open SourceAutomation

Cline: an open-source coding agent that asks before it acts

Cline is an Apache-licensed coding agent for the IDE and the terminal, with plan and act modes, approvals, MCP tools and any model you like. How I use AI coding agents without losing control of the codebase.

Open SourceAI

Four enclosures, one script: choosing SolveBlock's shape

Block, flat, wedge or stand? Generating every candidate enclosure from one parametric source turned an argument about taste into a quick, fair comparison.

SolveBlockHardware

n8n: fair-code workflow automation, and how I structure flows with it

n8n is a visual workflow automation platform you can self-host, with code where you need it. Its licence, what it's best at, and the n8n-plus-API pattern most of my automations use.

Open SourceAutomation

Reticulum: the open networking stack I stopped competing with

Reticulum is an encrypted, self-configuring network stack that runs over LoRa, packet radio, serial and IP with no central operator. Why Dictyon-net became a carrier layer for it instead of a rival.

Open SourceMeshHardware

Every screen from the firmware: designing SolveBlock's interface

A normal solve costs zero input, the coach stays quiet most of the time, and there's no scramble generator on purpose. The interface decisions behind SolveBlock, shown in the device's own screens.

SolveBlockProductESP32

gbrain: a memory you control, for agents that forget

gbrain is a self-hosted memory layer for AI agents — facts with sources, hybrid search and a knowledge graph on PGLite or Postgres. How I feed it my agent's sessions, and the one-line wrapper that saved me from a bad database mix-up.

Open SourceAIAutomation

The starter stack: launching a product without overbuilding

The tools and sequence I use to take an idea from zero to something real customers can touch — and the things I deliberately postpone.

StartupsProduct

Kronos: an open foundation model for candlesticks, used as a second opinion

Kronos tokenises OHLCV price bars and forecasts the next candles. How my squeeze pipeline uses it to adjust confidence, how its forecast shows up on every chart, and why it never gets the final say.

Open SourceMarketsAI

OpenRouter and LiteLLM: one interface for every model

My automations call many models for different jobs. OpenRouter (a hosted router) and LiteLLM (an open-source gateway) both give them one OpenAI-style interface. When I'd use each.

Open SourceAIAutomation

From scanner to product: building GammaJuice

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.

MarketsProductAutomation

Open SaaS: the free boilerplate behind AffRank.ai

Wasp's Open SaaS template gives you auth, payments, an admin dashboard, email, a docs site and end-to-end tests on day one. What it saved building AffRank, and what you still have to build yourself.

Open SourceStartupsProduct

Affiliate links rot. Here's how to manage them at scale.

Programs change, products disappear and redirects break quietly. A practical system for keeping hundreds of affiliate links healthy without checking them by hand.

SEOAutomation

LangChain and LangGraph: where I actually meet them

I rarely start a project with LangChain — but I keep meeting it inside the tools I use. What LangChain and LangGraph each do, and when the abstraction helps versus when plain code is clearer.

Open SourceAI

The 80% win rate that wasn't

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.

MarketsResearch

CrewAI: when a crew of agents beats one big prompt (and when it doesn't)

CrewAI organises role-playing agents into crews and flows. What it's good for in automation work, how it compares with TradingAgents for a trading-research job, and the overhead to budget for.

Open SourceAIAutomation

Backtesting a squeeze scanner without fooling myself

A thin edge, two filters that sounded smart and didn't help, and a liquidity effect hiding in plain sight. What 2,633 historical signals from the 3WT scanner actually said.

MarketsAutomationResearch

TradingAgents: a research desk of LLM analysts, and why mine only paper-trades

TauricResearch's TradingAgents simulates a trading firm — analysts, bull and bear researchers, a trader and a risk team — on LangGraph. How I ran it against my scanner's signals, and the guardrails around it.

Open SourceMarketsAI

Power budgets: making a battery ESP32 project last

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.

ESP32Hardware

Hermes Agent: the open-source agent that runs my scanner on a schedule

Nous Research's Hermes Agent is a self-improving AI agent with memory, skills, cron and a Telegram gateway. Here's how it became the operator behind my 3WT squeeze-scanner pipeline.

Open SourceAIAutomation

Treat wild ideas as testable hypotheses

Ternary-Six9 is an experimental communications concept. Here's how I keep unusual ideas honest — models, fixtures, baselines and logged measurements before any conclusions.

HardwareProduct

Keyword research for a maker blog: how I picked what to write about

Engineering blogs rarely do keyword research, and it shows. A lightweight process for finding topics people actually search for — without turning notes into SEO filler.

SEOProduct

SEO is a data problem: lessons from building AffRank.ai

Rankings, keywords, metadata, structured FAQs and affiliate links all change constantly. AffRank.ai treats site management like data engineering — with reviewable changes.

SEOAutomationProduct

ESP32 vs RP2350: how I pick the brain of a project

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.

ESP32Hardware

What a CRM has to do for a sales team: lessons from 400+ consultants

A CRM isn't a database of contacts. For a distributed sales team it's the memory, the to-do list and the training wheels. What mattered — and what didn't — supporting hundreds of consultants.

AutomationProductCareer

Anatomy of a welcome sequence: the email automation that did the heavy lifting

One big pitch loses to five small, useful emails. A breakdown of the follow-up sequence structure I relied on for years — and how to build it in any email automation tool.

AutomationProduct

Growing a mesh: early lessons from Dictyon-net and Hypha Nodes

What I'm learning while building a decentralized, low-power communications mesh on ESP32 and RP2350-class hardware — identity, addressing, multipath and measuring everything.

MeshESP32Hardware

Why FastAPI and PostgreSQL are my default backend

For small products, dashboards and device back-ends, I keep reaching for the same boring, reliable stack. Here's the setup and why it holds up.

AutomationStartups

Building an email list for a hardware product that doesn't exist yet

SolveBlock's waitlist promises two emails and a chance at a free unit — nothing else. Why a tiny, honest list beats a big noisy one for a product still on the bench.

SolveBlockProductStartups

AI can review your PCB. The datasheet still decides.

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.

AIPCBAutomation

ClickFunnels, Systeme.io or HighLevel? How I'd choose a funnel builder today

After twelve years of running sales funnels for a direct-sales business, here's the checklist I'd use to pick a funnel builder in 2026 — and why the tool matters less than the follow-up.

AutomationProductStartups

Enclosures as code: why I design 3D-printed parts in OpenSCAD

Parametric enclosures, tolerance variables and fit-check prints — how treating plastic like source code made my hardware iterations faster.

HardwareSolveBlock

First power-on: my board bring-up checklist for custom ESP32 boards

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.

PCBESP32Hardware

The timer is the source of truth — designing deterministic solve statistics

Why SolveBlock never re-times a solve, how we compute averages with integer math, and what "deterministic" really means for a tiny embedded device.

SolveBlockESP32

From napkin to PCB: designing SolveBlock in KiCad

How a speedcubing idea became a custom ESP32 board — the requirements, the schematic decisions, the layout tradeoffs and the mistakes I'd happily make again.

SolveBlockPCBESP32

Structured outputs: prompt engineering for answers your code can trust

How I design LLM prompts and schemas that return reliable JSON for analytics, reporting and automation — plus the validation layer that catches everything else.

AIAutomation

Why the ESP32 became my favorite blank page

Wi-Fi, Bluetooth, two cores and a pile of peripherals for the price of lunch. Here's why nearly every idea I have starts on an ESP32 — and when it shouldn't.

ESP32Hardware

Automation people actually adopt

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.

AutomationAIProduct

What 20 years of enterprise infrastructure taught me about building hardware

Citrix farms, hospital uptime and change control don't sound like PCB design. They turned out to be the best training I could have had.

CareerHardware

n8n or code? How I decide when to automate visually

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.

AutomationAI

What 17,000 customers taught me about funnels, follow-up and trust

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.

ProductAutomationCareer