Alfred
A voice assistant for GrapheneOS, written in Kotlin with a Rust core. It runs as a foreground service with microphone access, and I worked through Android's background-activity-launch limits to make it start reliably.
KotlinRustGrapheneOSAndroid
Wake-word model
A custom openWakeWord model trained and exported to ONNX, so the trigger phrase is detected on the device without a network.
openWakeWordONNXPython
Photo triage
A pipeline on a Raspberry Pi that sorts photos with SigLIP and Moondream. I benchmarked small models against each other to find what fits the hardware.
SigLIPMoondreamRaspberry Pi
Alarm app
A small alarm clock app built with Tauri, with a Rust backend and a web front end.
TauriRust
Home lab
Self-hosted code-server, Navidrome and AudioMuse, running on Linux, including Asahi on Apple hardware.
LinuxSelf-hostingAsahi