$ whoami
Alexander Kjeserud.
Technologist. Citizen. Dad. Fellow human. AI enthusiast. Gamer.
I build AI-assisted systems, full-stack applications, and run my own bare-metal Kubernetes cluster out of Levanger.
# what I do
AI & full-stack
Currently building an AI assistant for Norwegian higher education at Sikt — Python, LangChain, Next.js, AWS.
Platform & Kubernetes
Ran ~120 microservices on a self-managed cluster at OBOS. Now operate my own home cluster on bare metal.
Team & tech lead
Led a group of 7 consultants at Redpill Linpro. Tech lead on full-stack and architecture work across public-sector clients.
# selected projects
all projectsRomjakten — a 1999 game, ported to Godot
wipPorting my childhood favorite — a 1999 Norwegian educational space-strategy game — from Macromedia Director 6 to Godot, so it runs in any modern browser without a Windows 98 VM.
Norwegian TTS — a CosyVoice 3 LoRA on a 3090
liveFilling a hole in the Norwegian open-source TTS landscape — a Bokmål LoRA fine-tune of CosyVoice 3, trained on ~458 hours of speech on a single RTX 3090.
organiccode.net home cluster
liveA self-managed Kubernetes cluster running on bare metal at home — hosting this site, GitLab, Keycloak, Jellyfin, Nextcloud, Grafana, and a stack of AI tooling.
organiccode.net
Keycloak realm operator
wipA Python-based Kubernetes operator that declaratively manages Keycloak realms, OIDC clients, and the secrets that go with them.
# recent devlog
archiveWhat is LoRA, and why does everyone use it?
A short, picture-led primer on Low-Rank Adaptation — the trick that makes fine-tuning huge models tractable on a single GPU.
A Norwegian voice, trained on a gaming PC
There's a hole in the Norwegian open-source TTS landscape, and I want to ship a game through it. So I fine-tuned CosyVoice 3 on ~458 hours of Bokmål.
WIP: My first Operator and CRDs
Writing a Kubernetes operator in Python with Kopf to manage Keycloak realms and OIDC clients declaratively.