GMAN:·paisamaker:·gex-advisor:POLLING·fetcher:429rps·npm:v0.1.8 (9rel)

// I run autonomous AI agents in production · 9 yrs

// I built and open-sourced the tooling to watch them.

system.info/etc/uday.conf
operator:
Uday Kumar
role:
senior engineer · AI/ML + data platforms
production:
[uptime]·data + AI platform
contact:
[click to copy]·github·linkedin
stack:
languages·ai / llm·data·web / app·infra / cloud·observability[+ expand]
languages:Python · TypeScript · Java · Go · Rust · SQL · Bash · Scala
ai / llm:GPT-5 · Claude 4 · Gemini 2.5 · Llama 4 · Phi-4 · Mistral · DeepSeek V3 · Azure OpenAI · Anthropic · RAG · function-calling · embeddings · semantic search · anomaly detection · time-series · computer vision (edge) · PyTorch · scikit-learn · Hugging Face · vLLM · Ollama · llama.cpp · LangChain · LangGraph · Claude Agent SDK · OpenAI Agents SDK · MCP · pgvector · evals · fine-tuning
data:Postgres · MySQL · Snowflake · Databricks · BigQuery · ClickHouse · DuckDB · Spark · Kafka · Flink · dbt · Airflow · Dagster · Iceberg · Delta Lake · Redis · DynamoDB
web / app:Next.js · React · Tailwind · FastAPI · Node · Express · Spring Boot · Django · GraphQL · gRPC
infra / cloud:AWS · GCP · Azure · Docker · Kubernetes · Helm · Terraform · Pulumi · GitHub Actions · ArgoCD · Cloudflare · Vercel · systemd · nginx
observability:Langfuse · LangSmith · Helicone · Phoenix (Arize) · Datadog · Grafana · Prometheus · OpenTelemetry · Sentry · Honeycomb · Healthchecks.io · GMAN (own product)
[resume.pdf]
── thesis ─ how it ties together
about.md/etc/about.md

GMAN is observability for AI agents. npm i @gman-ai/dev, wrap your agent, and every LLM call, retry, and dollar spent streams into a cockpit. I dogfood it on a gamma-exposure options system running on a single Hetzner box: 429 market-data requests every 30 seconds across 8 tickers (SPX, SPY, QQQ, TSLA, NVDA, AAPL, META, AMD) into a 104 GB warehouse, scored against a 73-feature pipeline, gated through 20+ safety checks, executed on an IBKR paper account, managed through exit. A second agent reads my eight repos three times a day, scores the day's commits, drafts a tweet, DMs me on Discord for approval, posts. GMAN watches the agents the trading work generates. The trading pipeline itself stays in its own lane — file-mount IPC, single-writer, no LLM in the order path. The separation is the design, not the gap.

── services ─ production systems
svc-gman[OPERATIONAL]uptime 99.91%

getmyagentnow.com · AI agent observability platform

multi-tenant · npm SDK · self-observing

GMAN's own commit-reviewer agent runs through the same SDK you'd install — it scores, decides, drafts, and every LLM call is captured by the proxy.

@gman-ai/dev v0.1.8·47 API routes·multi-tenant
svc-trading[TRADING]uptime 100%

trading systems · 0DTE options + gamma advisory

paisamaker + gex-advisor + market-data-fetcher

Three coordinated repos on a single Hetzner box — data warehouse, signal evaluator, execution engine. File-mount IPC, single-writer, no message bus.

8 tickers·104 GB warehouse·20+ safety gates
svc-social-agent[RUNNING]uptime 30d

social-agent · autonomous content pipeline

cron 3x/day · scoring → drafting → Discord approval

Reviews commits across 8 repos, scores relevance with GPT-4o, drafts a tweet if the signal is strong, sends to Discord for human approval. Every step traced through GMAN.

84 runs / 30d·20 tweets posted·$0.29 / 30d
── topology ─ data flow
── trading pipeline ── 30s cycleGEXBotWS onlysvc-fetcher[WS-ONLY]104 GB warehouse11.4 M rows~487k / RTH daysvc-advisor[POLLING]73 features / tick20,979 alertsCASCADE+CHARM 63%svc-paisamaker[FULLY_LIVE]163 positions40 closed · 38d20+ safety gatesIBKRport 4002── observability plane ── self-instrumentedsvc-social-agent[CRON 3x/d]GitHub Actions8 repos · gpt-4o81/84 success 30dspawn(npx)svc-sdk-proxy[LOCAL :9000]@gman-ai/dev v0.1.8byte-for-byteOPENAI_BASE_URLtelemetry · X-GMAN-Stepsvc-gman-gw[LIVE 293ms]Express · Railway100 req/min/IP414 eventscockpit+ /demo── lanes share infra (Hetzner VM · Vercel · Railway) — separate trust domainscross-process coupling: read-only file-mount, single-writer (no message bus, no socket, no HTTP server in the trading lane)

operational degraded down — pulses tick at the actual poll cadence (30s trading, ~6s for the social-agent SDK→gateway hop during a run)

── incidents ─ public postmortems
/var/log/incidents.log3 entries
  • impact
    getmyagentnow.com/demo showed "no recent agent activity" for ~4 hours while Supabase held 79 valid events in the demo tenant. Portfolio link shared in a job application during the window.
    root cause
    Supabase PostgREST was caching query results at its edge. The Vercel function made identical queries (same table, same tenant filter, same ORDER BY / LIMIT). PostgREST served stale empty rows even after new events landed. Local dev hit a fresh connection per restart and never reproduced.
    resolution
    Added Cache-Control: no-cache header on a demo-scoped Supabase client. Kept the shared getSupabaseAdmin() singleton cache-enabled for cockpit and policy routes. Also removed an overly-aggressive AbortSignal(3s) that was silently returning empty on Vercel cold starts.
    prevention
    Centralized isDemoEligible predicate so aggregate stats query and session list filtering always agree on what counts as a real event.
── activity ─ recent commits
$ tail -f /var/log/git.log — loading…
── design notes ─ engineering docs
── eof ─