Carlos Hernandez

Technical support engineer, 10+ years. I own the tickets nobody can reproduce, and I write down what I find.

Tampa, FL · US Pacific hours Senior Technical Support Specialist, City of Gresham LinkedIn GitHub
Recent work

Two days inside Hermes Agent

Before applying to Nous Research I deployed their agent rather than reading about it. Hermes Agent v0.22.2 (commit d923a5eb) in Docker, authenticated, toolsets cut back to what I'd be willing to expose on a network-reachable endpoint, then wired into the self-hosted n8n and PostgreSQL support assistant I run for my own customers — over the OpenAI-compatible API, with per-customer session memory.

Then I went looking for what breaks. The Runs API held up: idempotent replays returned the original run with Idempotency-Replayed: true, and a reused key with a changed payload gave a clean 409. Session handling did not.

Session-ownership guard not enforced

Private advisory

A POST /v1/runs naming a CLI-owned session returns 202 and writes to it, where the documentation specifies 409 permission_denied. Reproduced three times, idle and mid-generation. The write is durable and appears in the CLI's transcript on resume, while the running CLI continues from the pre-injection context — so the live surface and storage disagree about what the conversation contains.

Reported through GitHub Security Advisories · 20 Oct 2026

Queued runs processed out of submission order

Public issue

Runs queued against a session with a generation already in flight wait correctly, then come out of the queue in a different order than they went in. Nothing is dropped and nothing interleaves — the serialization works, it just isn't FIFO.

Issue #142251 · Filed 20 Oct 2026

Sandboxed backend unreachable from the documented install

Public issue

The gateway's own startup warning recommends terminal.backend: docker when the API server is network-accessible. The official Docker guide never mounts the Docker socket, so following that advice produces Cannot connect to the Docker daemon on every run. The two documents contradict each other, and the error names the daemon rather than the missing mount.

Issue #142256 · Filed 20 Oct 2026

Exhibit — ordering, measured
BurstSubmittedProcessed
317925227831792522847.10
417925227871792522840.49
517925227901792522844.55
617925227941792522842.53

Six runs fired four seconds apart against one session while a 60-second generation ran from 1792522780.47 to 1792522840.38. Four landed inside that window. Submitted 3 → 4 → 5 → 6, persisted 4 → 6 → 5 → 3.

I was wrong twice getting here. Once on my own environment-variable mistake, which I nearly wrote up as a bug. Once when I thought I'd caught concurrent injection, checked the timestamps, and found my request had landed 0.72 seconds after the run finished. Both caught by checking before claiming, which is the part of this I'd want judged.

Day job

City of Gresham, since 2016

600users supported across Windows and macOS
90%resolved without escalation
200+knowledge-base articles and runbooks written
15%cut in escalation delays after reworking incident workflows

A multi-channel queue across SolarWinds Service Desk, Teams and email, triaged by impact. What I can't resolve I reproduce, pull logs on, narrow down, and hand to a vendor or engineering with repro steps they can act on. Endpoint and mobile management through SCCM and AirWatch, phishing and malware response under CJIS compliance, and mission-critical Police and Fire systems on an ongoing assignment.

Built

Things I run

AI support assistant

A webhook-driven n8n workflow that searches a knowledge base I wrote, passes it to an LLM, and applies escalation rules and safety guardrails before answering. Serves IT troubleshooting to customers of my own practice.

n8n · PostgreSQL · Docker · Cloudflare Tunnel

GearGuide

A community auto-repair library with an AI troubleshooting assistant. Screens designed in Figma, rebuilt off a no-code prototype onto a real stack.

Supabase · Vercel · GitHub

Passageway Studio

A sandbox environment where people learning the tools can try open-source products without setting anything up first.

Cloudflare

Lead-capture automation

A test build taking a web form through data cleanup, record creation, a booking email and an internal notification. Started on hosted n8n, then moved onto my own Docker stack to see what self-hosting actually costs you.

n8n · Airtable · Docker · Cloudflare Tunnel