Portfolio · AI systems in production

AI systems that do real work, built and run in-house.

A household assistant that has cleared 4,000+ emails without deleting one. A trading bot whose changes have to pass three clean days on a demo before they go live. A monitoring agent that checks two servers every minute and fixes the boring problems on its own.

Radar: live, acting on its own Trading bot: paper trading DevOps agent: every 60 s
systems map2 servers · 4 systems
A cloud server runs Radar, n8n and a DevOps agent. A home lab runs the live and demo trading bots and a second DevOps agent. The two agents watch each other. CLOUD SERVER Radar inbox · bills · reminders n8n workflows Caddy HTTPS · sites DevOps agent detect · explain · fix HOME LAB Trading bot · live regimes · strategies · risk Trading bot · demo every change starts here DevOps agent + trading watchdog promote watch Discord: one channel per job brief · assistant · approvals · infra alerts · trading alerts Gmail · iCloud Calendar · Alpaca · Claude API all self-hosted
Selected work

Three systems in daily use

Each one runs on self-hosted servers, reports to Discord, and was built with the guardrails first.

Live since Sept 2026

Radar, a private household assistant

Watches the inbox, tracks bills and money, keeps the family's reminders and plans weeknight dinners. You talk to it in plain English in Discord.

  • Sorts new mail every 15 minutes: junk to a "To Delete" label, school flyers to their own label, real mail left alone.
  • Finds bills and school dates in email and puts them on an iCloud calendar with alerts.
  • Reminders that repeat, snooze and move, with buttons right under each one.
  • Remembers only what you tell it ("remember we don't eat pork") and uses it for dinners and research.
Pythondiscord.pyClaude Haiku + SonnetGmail APICalDAVSQLite
4,000+old emails cleared, none deleted
0of its first 244 junk calls undone
~5¢a day in AI costs
196automated tests

Guardrails

  • Never sends, pays or deletes anything.
  • Security emails never reach the AI; banks and doctors are read by subject only.
  • Every action is logged and has an undo.
  • Acts on junk only when it's at least 90% sure.
Paper trading

Trading Bot V3 and its release pipeline

A stock-trading bot that reads the market's mood, votes across several strategies and sizes every trade from its risk. The interesting part is how changes reach it.

  • A hidden Markov model labels the market bull, bear or sideways, and strategy weights shift with it.
  • Momentum, mean-reversion and technical strategies vote; position size comes from the stop distance and real VIX.
  • A circuit breaker that survives restarts: daily, weekly, losing-streak and drawdown limits.
  • An outside watchdog checks the broker account directly: losses, missing stops, runaway or duplicate orders.
branch→demo bot→3 clean sessions→gate passes→live
PythonAlpaca APIhmmlearnAPSchedulerpytestgit
150liquid stocks in its universe
3clean demo days before any change ships
5 minwatchdog checks during market hours
140+automated tests

Guardrails

  • Paper money only; no real-money switch until it proves an edge.
  • Every position carries a stop at the broker.
  • One-command kill switch that blocks new orders at the broker itself.
  • Roll back any release in one step.
Live · both servers

DevOps Agent, monitoring that explains and fixes

One agent per server replaced a pile of scripts. It notices problems, says in plain words what's probably wrong, and fixes the safe ones itself.

  • Checks services, containers, disks, endpoints, workflows and the trading bots every minute.
  • Debounces flaps, escalates what stays broken, and asks Claude for a likely cause and fix.
  • Guarded self-repair: clean up disk space, restart a stuck service, reboot for updates in a quiet window.
  • The two agents watch each other, so a dead server still gets reported.
PythonsystemdDockerSQLiteClaude APIDiscord webhooks
60 sbetween checks
2servers watching each other
Weeklydeep audit: patches, TLS, drift
AIwrites the likely cause on each alert

Guardrails

  • Only a short list of safe fixes, each rate-limited.
  • Reboots only in a night window, with nothing else wrong.
  • A silence switch for maintenance.
Principles

Four rules behind every build

They're why these systems can run unattended.

01

Guardrails before features

Decide what it must never do, then make every action reversible and logged.

02

Report before act

New behavior runs in report-only mode first. It earns the right to act on its own.

03

Ship through a gate

Changes go to a demo, get measured, and only then go live, with a one-step rollback.

04

Watch from outside

A system can't report its own death. Something else always checks on it.

Earlier build · retired

Late Night AI News

A fully automated comedy news show: Claude wrote it, ElevenLabs voiced it, an FFmpeg service cut it, and it uploaded itself three times a week.

Behind it

Built to run without anyone watching.

KickerVida is a one-person workshop. Everything on this page runs on a small cloud server and a home lab, set up and maintained in-house, from the reverse proxy to the backups.

The work is mostly Python, n8n and the Claude API, with as much care for the boring parts, like tests, rollbacks, cost tracking and disaster recovery, as for the AI.

Languages & AI

PythonJavaScriptSQLClaude APIprompt + tool design

Automation

n8nwebhooksGmail & Calendar APIsDiscord bots

Infrastructure

LinuxsystemdDockerCaddygitcron
Contact

Questions about any of this?

Send a note and you'll get a reply within a day or two.

Thanks, it's on its way.

You'll hear back soon.