Work
My own projects.
-
MonitoringHive
In development
A platform that connects building equipment to a central dashboard, built for building operators, service partners and equipment makers. I designed and built it. The hard part was making sure each of them sees only their own buildings, and being able to show afterwards why a request was allowed or refused.
-
Buttler
In personal use, private
A self-hosted voice and home assistant with Raspberry Pi room satellites, a phone app and desktop apps. Personal data stays on my own server. Which device may show personal content is decided on the server, not by the device.
Household view: personal content stays hidden.
Rooms and screens: each device is marked shared or personal.
A simulated request. Phone app, rendered from the design build with sample data. -
AI Usage Widget
Released, open source
Desktop widgets for Windows, KDE Plasma and GNOME that show how much of your Claude and Codex quota is used and when it resets. I wrote the logic once in JavaScript and run it inside three native shells. It links to aiusage.guide for quick fixes.
Windows widget in test mode, using sample data. -
aiusage.guide and aiusage-skills
Live and open source
aiusage.guide is a bilingual guide to working with Claude Code, Codex and Gemini CLI. aiusage-skills is the plugin that goes with it: twelve skills for planning, test-driven development and reviewing changes. The two feed into each other; what works in the skills ends up in the guide, and the guide shapes the skills. Skills by other authors are kept at fixed versions.
-
EDIU
Working, private
Creates draft merge requests from GitLab issues marked as ready. It can open a draft, but it can't merge or approve. A self-hosted model plans first, and harder cases go to hosted models. In existing codebases I've seen the model reinterpret the task to fit the code during correction loops, instead of changing the code to fit the task.
-
lockstep
Proof of concept, private
A deterministic simulation core for a multiplayer game, split out of the game into its own library. Unity only displays the state and the core can't reference it. The networking part exists only in an unreleased prototype.