Lab

Current and Past Projects

This is the working portfolio. Each active project shows what I owned, the architecture choice that shaped it, how the system handles failure, and the evidence that it does more than make a clean demo.

The architecture underneath

The six projects do not pretend to share one runtime. They do share a way of building: stable capabilities below the model, durable workflows around consequential work, and explicit records at the boundary where software acts.

Capabilities

Commands, data tools, memory, browser and search, speech, media, model runners, and local services expose narrow operations.

Workflows

n8n and application workers carry state, schedule work, retry safely, and stop at review or deterministic action gates.

Systems

The product keeps the interface and evidence appropriate to its job: chat, camera, city record, trading record, or customer delivery.

249commands on Penny's stable capability surface
48capability domains exposed through that one command line
43versioned n8n workflows around the agent surface
6active systems with different interfaces and risk boundaries
01 · capabilities

Give models stable operations

  • pen command surfaceOne CLI turns application, data, communication, generation, and operations work into testable commands.
  • Memory and session miningDurable recall, project context, and useful facts extracted from working sessions.
  • Browser and searchSearch, full browser control, session handling, page capture, and source evidence.
  • Voice and messagingLocal Whisper transcription, Kokoro speech, Telegram, phone, and device audio paths.
  • Media, decks, sites, and portraitsReusable generation pipelines with identity, style, asset, and review constraints.
  • Model runners and agent harnessesHosted and local models sit behind project contracts. Claude Code and OpenClaude can call the same Penny surface.
  • Home-server servicesShared proxy, search, browser, voice, workflow, data, and model services run close to the systems that use them.
02 · workflows

Carry state past one chat turn

  • n8n orchestrationVersioned workflows schedule work, carry state, coordinate services, and expose explicit stop points.
  • Calendar, day planning, and emailCurrent commitments and inbox evidence become a plan, prepared replies, and follow-up.
  • Briefing studioResearch, script, voice, motion, and delivery are one inspectable production chain.
  • Recruiter and application builderRole research and source-grounded materials are built from verified career evidence.
  • Content, publishing, and engagementDerivation, review, channel adaptation, publishing, response, metrics, and outreach remain separate stages.
  • Project-update pipelineRepository and service changes become allowlisted portfolio proposals, stage previews, exact diffs, and approval-gated promotion.
03 · control plane

Make the boundary testable

  • Approvals and deterministic gatesModels can propose. Code, policy, or a named reviewer controls consequential action.
  • Multi-model review councilIndependent judgments can challenge a draft or decision without sharing one chain of thought.
  • Evals and regression harnessesReal tasks, synthetic fixtures, adversarial cases, and source-grounding checks make polished failure visible.
  • Records and lineageInputs, decisions, action attempts, provider results, and outcomes remain attributable across a run.
  • Operations dashboardRead-only state stays visible while action paths remain in the controlled interface.
  • Reliability and self-healingHealth checks, incident capture, bounded retries, restart recovery, and narrow repairs handle known failure classes.
04 · product bindings

Use the right shape for the job

  • PennyThe broad capability and workflow stack appears as one personal agent with approval-gated operations.
  • LetMeCheckThatBotA separate, cheaper loop keeps the group chat as the interface and silently ingests the room's media.
  • Doorbell IntelligenceLocal vision, retrieval, speech, and a physical camera form a private evidence and interaction system.
  • BlockReportA normalized city record feeds DuckDB-Wasm analytics and one agent with 33 bounded research/data tools. A separate explorer-control tool is exposed only while the Property Explorer is open; validated commands are computed exactly in-browser and returned to chat as maps, records, and counts.
  • KTraderBlind research and model judgment end at deterministic risk gates and immutable records.
  • ScooScoo.homesAn isolated product worker joins reference selection, generation, payment state, storage, and delivery.