Projects

Each project lives in its own public repository with tests, CI and signed images. All of them deploy the same way: a pull request to homelab-dev, and Argo CD syncs the cluster.

Night Sky Digest

● live at digest.takodana.dev

Retrieval and a daily digest over 51,282 arXiv astrophysics abstracts. Hybrid search (pgvector plus Postgres full text, fused by reciprocal rank), evaluated on 80 queries in two languages, with citations an LLM can't invent and SLOs that page me.

  1. M0 · doneSigned images, SBOM, CVE gate
  2. M1 · donePolite, resumable arXiv harvester
  3. M2 · doneHybrid multilingual search
  4. M3 · doneEval harness gated in CI
  5. M4 · doneCited digest, traced in Langfuse
  6. M5 · doneOn k3s with backups and SLOs
  7. M6 · nextExperiments and write-up

glasswing

● live in your browser and at glasswing.takodana.dev

A 15.7M-parameter language model trained on children's stories, running in the browser on an inference engine written from scratch in Rust and checked against PyTorch tensor by tensor in CI. You can watch every layer while it writes, switch attention heads off, and see the induction circuit it learned.

  1. M0 · doneRust workspace, CI
  2. M1 · doneBPE tokenizer, reference model, golden fixtures
  3. M2 · doneRust forward pass, parity with PyTorch
  4. M3 · doneTrained on TinyStories, KV cache, sampling
  5. M4 · doneWebAssembly engine, f16 weights
  6. M5 · doneThis visualization
  7. M6 · doneInterpretability: ablation, logit lens, an induction circuit
  8. M7 · doneSmolLM2-135M served on k3s, public
● running

homelab-dev

The platform everything runs on. k3s on a laptop's WSL2, changed only through Git.

  • Argo CD app of apps, a shared Helm chart every app uses, PSS restricted
  • Sealed Secrets, sealed off-cluster with the public cert
  • CloudNativePG with WAL archiving, nightly backups and a tested restore
  • Prometheus, Grafana, Alertmanager to Telegram, Loki
  • Tailscale for private access, one Cloudflare Tunnel for public
● running · private

application-tracker

How I run my own job search. A web app that tracks applications and classifies incoming mail with a local Ollama model. Private for now: authentication comes before it goes public.

○ planned

Sideout

Ask questions about volleyball matches in plain language and get answers computed by SQL over real DataVolley scouting files plus a labelled synthetic season.

  • Text-to-SQL with an execution-accuracy eval in CI
  • Read-only role, statement timeout, query allow-list
  • Same shared chart as Night Sky Digest

Earlier work

Rust · PyO3 · Rayon

Fainder-Redone

My master's thesis (DIMA, TU Berlin, graded 1.7): the query phase of Fainder, a distribution-aware dataset search engine from VLDB 2024, rebuilt in Rust. Every optimisation sits behind its own Cargo feature flag and was measured on its own with hardware performance counters on a two-socket Sapphire Rapids server.

Terraform · AWS · personal lab

A second environment on AWS

The homelab's k3s setup rebuilt on AWS with Terraform: a VPC, least-privilege security groups, and EC2 bootstrapped with cloud-init. IMDSv2, an encrypted volume, state kept out of Git, short-lived STS credentials, and everything destroyed after each session.

Python · Docker

ARCXplore

A Python tool that turns ARC research file systems into portable Docker containers: it parses the directory structure, resolves dependencies and generates the Dockerfile. Used by more than 20 researchers.

Java · open source

IDEasy contributions

Features and toolchain integrations for IDEasy, a Java CLI that sets up reproducible developer environments, through public pull requests and maintainer review.