keith@kemwa: ~

$ cat README.md

# keith warner

I build integrations, data pipelines, internal tools and agent systems, mostly for the restaurants and bars that run on messy POS data.

$ ls projects/

cos-agent/bmx-tools/pilot-r2-web/dropbox-sftp/crm-dedupe/keg-scale/

$

whoami.json
{
  "handle": "kemwa",
  "based_in": "San Francisco Bay Area",
  "builds": [
    "POS integrations",
    "data pipelines",
    "agent systems",
    "field hardware"
  ],
  "teaches": "blockchain @ Baruch",
  "open_to_work": true,
  "exec_profile": "keithwarner.com"
}

~/projects

// what I've shipped and what's on the bench

cos-agent

● wip

A chief-of-staff multi-agent system. An orchestrator dispatches to independent subagents over Slack, with confirm-before-act enforced in code, not in the prompt.

slack ⇄ orchestrator ⇄ [ops, admin, jobs]
guard: confirm_before_act()
first: toast/square → export → pilot.csv
Claude Agent SDKSlack Socket Modemac mini

bmx-tools

● prod

Auth-gated tool portal for a bar-inventory audit business: POS file converters, an audit and billing tracker, and Dropbox automation that is create-only by design.

"All levels.csv" → split()
  ├─ SALES.csv  + menu_group
  └─ MODS.csv
flow: branch → PR → preview → merge
JavaScriptDropbox APINetlify

pilot-r2-web

● research

Reverse-engineering the SQL Server schema behind a Windows-only stocktake app to put a browser front end on it for Mac and iPad, on site.

mssql → schema map → query patterns
      → web ui (ipad)
fallback: desktop app + remote login
T-SQLSQL Server

dropbox-sftp

● prod

Serverless delivery job that picks up CSVs landing in Dropbox and pushes them to a partner's SFTP endpoint. Replaced a manual upload.

dropbox/*.csv → cloud function → sftp://partner
Google Cloud FunctionsSFTP

crm-dedupe

● done

Address consolidation across ~4,800 HubSpot company records, run as a resumable batch so a failure picks up exactly where it stopped.

for batch in companies(offset=0):
    normalize(batch.addresses)
    merge()  # via MCP connector
HubSpot APIMCP

keg-scale

● prototype

Portable rig for weighing full kegs during audits: aluminum mast and jack, fold-out arm, webbing straps and an inline load cell.

target: ~10 lb, folds to 18 in
sense:  inline load cell
tried:  thermal, ultrasonic level
hardwaremechanical design

~/in progress

// what I'm working on right now

now.log — tail -f
  1. [wip] cos-agent: POS export subagent for Toast and Square
  2. [wip] bmx-tools: audit tracker moving off Google Sheets
  3. [r&d] pilot-r2-web: mapping stocktake tables
  4. [r&d] keg-scale: arm geometry and load-cell mount
  5. [ship] kemwa.dev: astro → github → cloudflare

~/tech stack

// what I build with

stack.json
{
  "data": ["Informatica", "SQL Server", "GCP"],
  "ai": ["Claude Agent SDK", "MCP"],
  "automation": ["Zapier", "Make", "Power Automate"],
  "pos": ["Toast", "Square", "Aloha", "Crunchtime"],
  "ship": ["GitHub", "Netlify", "Cloudflare"]
}
contact.sh

$ mail keith@keithwarner.com

$ open github.com/kemwa

$ open linkedin

# career history and leadership roles → keithwarner.com