Code Controller
Designed and built from scratch a self-hosted control plane for AI coding agents that turns a fleet of Windows and macOS computers into an always-on development workforce. Claude Code and Codex sessions run around the clock on my own machines while I start, follow and steer them from any device, including my phone. The platform spans the full stack: a TypeScript agent on every host, a dashboard and supporting services on Google Cloud, secure tunnels through Cloudflare and a guided installer, all built on a zero-trust security model without a single service account key. It has become my daily tool for running many development tasks in parallel, around the clock.
Features include:
• Dashboard on Cloud Run behind Google sign-in (IAP) showing every host and session
• Starting, following and steering sessions remotely from any device
• Cron schedules and GitHub listeners that start work automatically
• Secure previews of dev servers on the hosts through Cloudflare tunnels
• Push notifications for finished work and hosts going offline
• Setup wizard that installs and repairs Windows and macOS hosts, with one-time links for adding new computers
• Backup and restore of each host's sessions, schedules and listeners to Firestore
• No service account keys: each host signs in with its own Firebase identity, limited by Firestore Security Rules to its own data and revocable at once
- TypeScript
- Node.js
- Claude Code
- Codex
- Google Cloud Run
- IAP
- Firestore
- Firebase Auth
- Cloud Scheduler
- Cloud Build
- Secret Manager
- Cloudflare Tunnels
- Web Push
- PowerShell
- GitHub API
Downloadr
Designed and built a private, mobile-first web app (installable PWA) that automates a home media library end to end: it watches RSS feeds, picks the right releases through rules and TV-series tracking, sends them to Synology Download Station on my NAS and makes them available in Plex. It runs serverless on Google Cloud with a scheduled job every 15 minutes, a full CI/CD pipeline and production-grade security and monitoring.
Features include:
• Rules with keywords or regex, size limits, per-feed scope, destination folder and live preview
• Release-name parser and quality profiles (resolution, source) for automatic TV-series and episode tracking
• Request portal where invited users search the TMDB catalog, request movies and shows and get notified when they are available in Plex
• Live Download Station status with pause, resume and remove, plus clean-up suggestions based on daily upload history
• Web Push notifications to the installed PWA when downloads start, complete or fail
• Google sign-in for allowlisted accounts only, encrypted secrets (AES-256-GCM), strict Content-Security-Policy, rate limiting, audit log and session revocation
• Cloud Monitoring alerts on denied sign-ins, server errors and missed scheduled runs
• CI/CD with GitHub Actions: lint, typecheck, tests, dependency audit, build and deploy to Cloud Run
- TypeScript
- Next.js
- React
- Tailwind CSS
- Google Cloud Run
- Firestore
- Cloud Scheduler
- Cloud Build
- Secret Manager
- Cloud Monitoring
- Artifact Registry
- GitHub Actions
- Web Push
- PWA
- Zod
- Vitest
- Synology DSM API
- TMDB API
Towers of the Valley
Designing and building a complete mobile game for iOS on my own, from game design and story to backend, art pipeline and App Store release. Towers of the Valley is a reverse tower defense: the player collects and trains monsters and sends them against ever-taller towers. The game is built for long-term growth with strict layering, all game content as validated data and an authoritative server on Google Cloud that verifies every battle and purchase. Currently in beta on TestFlight.
Features include:
• Godot 4 client with a deterministic, tested battle simulation separated from presentation
• Go API on Cloud Run with Firestore transactions, a ledger, idempotent requests and battle plausibility validation to prevent cheating
• Firebase Auth (anonymous, Apple and Google sign-in) with no direct client access to the database
• 40 monsters across eight elements and 80 hand-designed towers, defined as JSON content with schemas, versioned and hot-swapped from Cloud Storage
• In-app purchases verified server side through the App Store Server API
• AI art pipeline generating consistent sprites and poses with Gemini on Vertex AI, and narrated intro in English and Swedish with Cloud Text-to-Speech
• Infrastructure as code with Terraform for separate dev and prod projects
• CI/CD with GitHub Actions, automated TestFlight uploads and App Store listing, screenshots and localized texts pushed from code
- Godot 4
- GDScript
- Go
- Google Cloud Run
- Firestore
- Firebase Auth
- Cloud Storage
- Vertex AI
- Gemini
- Cloud Text-to-Speech
- Terraform
- GitHub Actions
- App Store Connect
- StoreKit
- Xcode
- Python
- Game Design