Michael Gifford-Santos

Work

Three systems I built and operate, and the things around them. Each of the first three has a page of its own, in the product’s own brand.

Built and operating

WunderGuide

Production voice agent

A voice-first travel concierge, live in the App Store and Google Play, launched Hawaiʻi-first — and a platform of about thirty services behind it, on k3s with blue/green deploys. A LiveKit agent grounded in live itinerary, location, travel-time and weather context under a real-time latency budget, given a wide tool surface to pull that context in. Retrieval is its own service group: OCR-and-web ingestion into Qdrant with reranking and reciprocal-rank fusion, a graph store alongside it, an MCP endpoint so other clients can use the same knowledge base, and hybrid vector + full-text search over Postgres for deals and business profiles.

Co-founder / CTO · Python / FastAPI · Postgres + pgvector · Qdrant · Valkey · k3s · React Native · React · LiveKit See it →

Sigil

Agent-session infrastructure

A daemon that turns tmux into a supervised process manager for long-running AI agent sessions — observable, interruptible, attachable from any device over HTTPS, and auto-restoring after a host crash. Built because operating a fleet of coding agents surfaces failure modes no local harness handles: the one that matters most is an agent blocked on a permission prompt, alive and doing nothing, with nobody watching.

Design + engineering · Go · open source (MIT) · mijkal.github.io/sigil See it →

Mycellm

Distributed inference

Pool heterogeneous hardware, contribute capacity, draw on it. What runs today is a QUIC overlay with NAT-friendly reverse connections — seeders dial out and the gateway routes inference back down the live session, because hole-punching does not survive symmetric NAT. It speaks the standard API at both ends: a drop-in OpenAI-compatible endpoint for tools that already exist, and behind it a node either serves local weights (MLX, llama.cpp) or brokers any compatible upstream — the caller cannot tell which, which is the property that makes pooling machines useful rather than merely possible. The iPad and iPhone app is a first-class node rather than a client: it loads a local model and joins the network, public by default. Continuous batching gives about 4.3× aggregate throughput at 32 concurrent streams with single-stream latency unchanged, and a 30B MoE about 1.9× at 16 — different machines at different concurrencies, both on the case page. Hyphae, the companion harness, exists for the same reason: schedule agent work across uneven hardware instead of assuming one fast machine.

Brand + protocol · Python · QUIC · open source (Apache-2.0) · PyPI · iPad and iPhone app See it →

Also built