I'm Kai Ase Siren, a staff-level platform engineer, ten-plus years in. I build the governed platform layer that lets engineering teams develop, ship, and operate agentic systems safely. The work spans infrastructure, context composition, bounded execution, MCP delivery, model routing, observability, and the Kubernetes systems underneath.
The throughline is developer infrastructure. That has meant language-ecosystem tooling at Ruby Together, multi-cloud platforms at Textio, government infrastructure at Nava, and agentic debugging workflows at Kapwing.
Outside work, I run a two-site homelab and a public game server. Both are practical testbeds for the same platform, reliability, and observability questions I work on professionally.
coilysiren.me is the shorter, visual version of this project map.
![]() A role is context, never permission. The bundle is plain files you can read and diff before a run, carrying no credential, no mount, and no command. |
housecast // roster.yaml - A YAML driven roster framework for agent contextOne roster file is the source. Every role's bundle and the board that grades it are composed from that file, so the graded artifact and the shipped artifact are identical. |
![]() An operation you did not declare has no tool and no endpoint, so the blast radius of a write-capable MCP is one small file you can read end to end. |
![]() Declare what a tool may run. Arguments are validated before the process starts, each verb needs its own scope token, and every call lands in an append-only audit log. |
- agentic-os - cross-platform agent operating layer with dotfiles, skills, guarded tooling, and repository validators.
- infrastructure - infrastructure as code for my hosts and Kubernetes homelab, including Ansible convergence and observability.
- Operator context and automation - the private skill catalogue, fleet inventory, and cross-repository coordination behind my agent environments.
- Deployment control plane - the private Kubernetes declarations for always-on services across the homelab.
- sirens-echo - a Discord community agent harness. It answers only when a person mentions it in a channel it was granted, and a validator strips the greeting, the emoji, and the sign-off before anything posts.
- Eco App 🌎 - server, jobs, replay, and telemetry for the Eco community.
- Galaxy Gen 🌌 - procedural galaxy simulation in Rust and WebAssembly, rendered in the browser at galaxy-gen.coilysiren.me.
- Many MCPs - narrow agent interfaces for personal finance, private feeds, games, browsers, project work, and adjacent systems.
Across all of it, the useful question is not whether an agent produced a diff. It is whether the system can explain what happened, recover from interruption, and prove the result.
The homelab spans two physical sites on one Tailscale mesh. The primary k3s cluster is the application and state plane. The second is the operations and recovery plane. GPU machines join on demand for local inference, while hosted frontier models handle work beyond the small local tier.
The durable choices are simple:
- Isolate state and keep recovery on a different power and network path.
- Put authentication, ingress, DNS, certificates, and secrets at explicit boundaries.
- Make agent sessions, model traffic, services, and cross-site reachability observable.
- Assume every compute node except the primary can disappear.
Core stack: Go, Python, TypeScript, Bash, and C#. AWS, Kubernetes, Terraform, Docker, and Tailscale. Prometheus, Grafana, Sentry, and OpenTelemetry. Codex, Claude Code, and MCP.
coilysiren.me · Resume · Bluesky · X · LinkedIn
- AGENTS.md - agent bootstrap guide and operating rules.
- docs/FEATURES.md - inventory of what ships today.










