Ray Swan_

Kitchen Kontrol

2025 · Product · Architect, Engineer & Technical Product Lead

AI that disappears into the work — staff finish logs with wet hands, bilingual, mid-service, because the kitchen can't pause for software.

01 · Problem

The constraint

Paper HACCP logs were eating shift time and still missing Texas TFER and USDA 7 CFR 210 requirements. The product had to work on wet-hands, bilingual, multi-station shifts — and still produce audit-ready evidence without pretending a cafeteria network is a control.

02 · Built

What shipped

Shipped a React/Express ops platform (kitchen-kontrol) with JWT auth, Postgres migrations, Ajv JSON-schema HACCP forms, planogram CRUD, weekly log-status SQL, Docker/nginx, and GitHub Actions. Companion repos: kk-logger (Vite/TS HACCP SPA with TFER range validators and EN/ES), MilkTrace-Voice (Web Speech API + keyword parser for milk inventory), and MyKitchen (single-file HTML hub). Browser STT is real. Gemini Live, Bedrock, SageMaker, Transcribe, Lex, and Rekognition are not in these repos.

03 · Decisions

The path

  1. 01
    Watch the line, not the backlog

    Observed school nutrition shifts where paper HACCP and inventory ate shift time and still failed audits. Requirements came from wet-hands, bilingual, multi-station reality.

  2. 02
    Make HACCP a product, not a PDF

    Turned TFER temperature rules into digital logs with Ajv schemas, pass/fail gates, and corrective-action flows staff can complete during service.

  3. 03
    Ops platform, not a mock

    Built kitchen-kontrol as Express + Postgres: JWT, roles, phases, tasks, log templates/submissions, planograms, weekly compliance SQL, Docker, and CI.

  4. 04
    Evidence UX in TypeScript

    kk-logger is the HACCP SPA: traffic-light tasks, sanitizer/hot/cold/calibration validators, English/Spanish. SharePoint and SSO are written as plans, not wired.

  5. 05
    Voice where hands are full

    MilkTrace-Voice logs milk inventory with the browser SpeechRecognition API and a keyword/number parser. The hook is named Gemini Live; the runtime is not.

  6. 06
    Claim only what GitHub holds

    Cafeteria-server and Azure overlay work was not transferred into these repos. This case study stops at the public proof.

04 · Architecture

How it is built

JWT-authenticated ops API

Express 5 with bcrypt login, JWT, rate limits, Winston, Sentry, and a transactional outbox. Postgres 15 with node-pg-migrate; sqlite3 for local/dev.

Ajv HACCP form engine

JSON Schema log templates rendered with React Hook Form. Equipment temps, food temps, planograms, sanitation, reimbursable meals.

Weekly compliance reports

CTE queries for log-template completion rates, date-range filters, and checkCompliance() on temp, planogram, sanitation, and meal records.

Planogram CRUD

Serving-line wells persisted through /api/planograms. Not computer vision. Rekognition is not in source.

Browser STT milk logging

MilkTrace-Voice: Web Speech API plus a deterministic parser for school, milk type, and quantity. Not Amazon Transcribe or Lex.

HACCP range validators

kk-logger encodes sanitizer ppm, cold holding, hot holding, and thermometer calibration limits with corrective-action UI. Offline sync is simulated, not a service worker.

05 · Surfaces

What it looks like to operate

Line operations HUD
Plate
Line operations HUD

Frontline kitchen as the product surface: inventory, HACCP, and alerts on the work staff already do.

Daily operations dashboard
Plate
Daily operations dashboard

Kitchen phases, role assignments, and quick actions for logs, reports, training, and planograms.

Daily logs
Plate
Daily logs

Digital HACCP and operations logs replacing clipboard temperature sheets.

HACCP temperature logging
Plate
HACCP temperature logging

Walk-in, freezer, and warmer logs with pass/fail status and corrective-action capture.

Regulatory compliance
Plate
Regulatory compliance

Texas TFER §228.75 and USDA 7 CFR 210 mapped into log types and range checks.

Planogram builder
Plate
Planogram builder

Serving-line planogram with pan wells. kitchen-kontrol persists planograms through the Express API.

Manager reports
Plate
Manager reports

Weekly log-status completion rates from Postgres CTE queries in kitchen-kontrol.

Staff training & rewards
Plate
Staff training & rewards

MyKitchen rewards dashboard tracking employee training progress across stations.

Capability board (vision, not GitHub)
Plate
Capability board (vision, not GitHub)

Product-vision board for voice, assistant, forecast, and vision. Those AWS services are not in the four GitHub repos.

06 · Standing

What this proves

Proves: I can ship a production ops platform end-to-end — from database schema to CI to Docker deploy.

Public proof is the GitHub family, not a cloud overlay. kitchen-kontrol is a Node ops app (private); kk-logger and MyKitchen are public. Site-count and waste figures from earlier product copy are not reproduced in these repositories.

Full-stack ops platform with JWT auth, Postgres migrations, Ajv forms, Docker/nginx, and GitHub Actions CI.

01 / 06 · Problem