Driftwood beach under a cloudy sky

Spencer
Asava

Design engineer building software, side projects, and the occasional experiment.

About

Full-stack engineer who designs and owns production services end to end.

Currently a Software Engineer at Blu Digital Group, based in Seattle, WA. I spend most of my time between product work and side experiments that help me learn new tools.

When I’m not coding you’ll find me outside with my dog Otter, planning the next project, or trying to keep too many hobbies alive at once.

My dog standing on the desk reaching for the keyboard, monitors showing code in the background
Most enthusiastic pair-programmer.

Current projects

otternimus

deployed
llama.cpp, Frigate, Wake-on-LAN, Linux, LUKS

The AI brain for local work — a home server that keeps private jobs private, with a voice-driven assistant front end (brain + voice) on top. It runs llama.cpp inference over the LAN as the local tier of a three-tier intelligence stack (rule-based logic on the Pi, frontier models in the cloud, otternimus for anything that shouldn’t leave the house), and Frigate detection over the house camera feed. Woken on demand so it only draws power when there’s work.

Screenshot of otternimus

harness-template

deployed
AGENTS.md, AI agent conventions, Claude Code, Markdown

A stack-agnostic AI harness engineering template — a directory of instructions, skills, and agents that turn coding agents into precise, non-hallucinating collaborators. Now LLM-agnostic, with AGENTS.md as the single source of truth projected out to other tools, conflict-free adoption and updates for existing repos, a context-bloat routing audit, supply-chain install gates, and a worktree protocol for running parallel agents without racing shared state.

pi-lab + pi-lab-pal

beta build
Go, Raspberry Pi, Tailscale, SQLite, go2rtc, React Native, Expo, EAS Update

A home automation lab and the iOS app that drives it. pi-lab is an always-on Raspberry Pi that orchestrates but never computes — every pipeline is ingress → route → execute → store → notify, run by a Go control server over Tailscale with an allowlisted SQLite command store. The app turns an idea into an automated pipeline from anywhere: jobs route to cloud Claude or to otternimus for local AI inference, results come back as reports and push notifications, and the house cam streams live via go2rtc.

Screenshot of pi-lab + pi-lab-pal

hol fitness journal

beta build
React Native, Expo, TypeScript, SQLite, HealthKit, Health Connect

A comprehensive fitness journal mobile app — log workouts with sets/reps/RPE, track macros + calories, scan barcodes for nutrition lookup, and sync with Apple HealthKit / Android Health Connect. Material Design 3, dark mode, offline-first.

Screenshot of hol fitness journal

mini-cloud

beta build
Go, SQLite, Docker, Caddy, goose, Oracle Cloud

"Cloud for Small Software" — a deployment platform for non-engineers who build internal tools with AI agents. A directory goes in, an HTTPS URL shared with named teammates comes out, with zero infrastructure vocabulary. One Go control plane drives Docker and Caddy on a single box: every app gets an isolated scale-to-zero container, its own SQLite database, and automatic TLS on its own subdomain. Auth happens at the edge before an app is ever woken.

Screenshot of mini-cloud

watchtower

deployed
TypeScript, React, Node.js, SQLite FTS5, WebSockets, Docker, journald

Real-time logs, metrics, and alerting for the mini-cloud box — every platform sector searchable and filterable in one place. Ships as a single 256 MB container: React front end, Node server, SQLite with FTS5 for log search, live tails over WebSockets, and a journald forwarder agent on the host. Pulls Oracle Cloud Monitoring and Cloudflare analytics in alongside the platform’s own logs.

Screenshot of watchtower

foodi

in development
TypeScript, React Native, Expo, Next.js, Supabase, Drizzle, Vercel AI SDK, Claude

An AI-assisted meal planner — mobile-first, with a companion web dashboard.

scorecard

beta build
JavaScript, Node.js, node:sqlite, Service Worker, PWA, Docker

A golf scorecard PWA for up to four players — look up a course, tap in scores hole by hole, install it to the home screen. Offline-first with a sync queue, course memory so a home course is typed once ever, and one-tap name chips so each phone adds its own player. Zero npm dependencies: vanilla JS, a service worker, and node:sqlite on the server.

heathens

in development
Unreal Engine 5, C++, Gameplay Ability System, Git LFS

A co-op action RPG in early development — Souls-precision combat, Monster Hunter-style fireteams, player-hosted 3–4 player PvE with zero servers. Built multiplayer-shaped from day one: native C++ on Unreal Engine 5 with the Gameplay Ability System driving abilities, attributes, and damage.

personal-page

deployed
SvelteKit, TypeScript, Tailwind v4, Drizzle, Cloudflare Pages, D1

This site. SvelteKit + Tailwind v4 + Drizzle ORM on Cloudflare Pages + D1. Mix of prerendered pages and dynamic routes, with a paranoid supply-chain procedure and an experimental UI lab under /labs.

asavatech home

deployed
SvelteKit, TypeScript, Tailwind v4, Three.js, Threlte, Cloudflare

The public company site for AsavaTech LLC — services, about, and contact. A fully prerendered SvelteKit static site on Cloudflare, with a Three.js / Threlte visual.

automatic-octo-waffle

beta build
Go, Gin, OAuth 2.0, Docker, FatSecret API

A lightweight Go API proxy that forwards nutrition requests from a workout app to the FatSecret API through a static, whitelisted IP. Handles OAuth 2.0 bearer token caching/refresh, request auth, and FatSecret-specific response edge cases.

A blue heeler sitting in the passenger seat of a car with its tongue out
Chief morale officer.

Contact

If you want to talk about a project, a role, or just compare notes on side projects, send me a note.

© 2026 Spencer Asava