Builds

An unorganized overview of basically ell of what I’ve built and worked with, and why so you get an idea for on what I’m about. Some more significant projects have articles written on them in Posts. Tech that appears in my Knows graph links straight to it.

vuln-tracker

active

personal · solo

A CVE dashboard covering the current and previous month, auto-refreshed every two hours. Built to make vulnerability data readable anywhere without running a line of client-side JavaScript.
  • Custom composite VAP score: 70% CVSS + 30% EPSS scaled by 10
  • Full refetch on month rollover, incremental fetch otherwise
  • Ships a machine-readable TONL data layer alongside the HTML
  • Zero JS; dark mode via prefers-color-scheme

Python · HTML · CSS · GitHub Actions · GitHub Pages · NVD API 2.0 · EPSS · CISA KEV

translatetool

active

personal · solo

A live interpretation companion for German-Norwegian church services. Puts scripture lookup, liturgical terminology, and hymnals in one place while interpreting in real time.
  • Runs fully local on a 16GB Apple Silicon machine, no cloud inference
  • Semantic scripture search via BGE-M3 embeddings rather than keyword lookup
  • Norwegian German dictionary as an offline fallback layer
  • User-editable liturgical termbase so domain vocabulary survives model quirks
  • Song book hymnal module as a JSON API client

SvelteKit · Docker · BGE-M3 · NLLB-distilled-600M · CTranslate2 · RAG

Homelab

active

personal · solo

Small computer living in my closet for running services that I’m interested in, testing deployments, and having somewhere to break things that isn’t production.
  • Proxmox hypervisor with containerized services on top
  • Runs Tailscale, Nginx Proxy Manager, AdGuard, Audiobookshelf, Wiki.js, Vikunja, n8n and Glance
  • Doubles as the test bed for infra work

Proxmox · Linux · Docker · Tailscale · nginx · AdGuard · n8n

schniepp.dev

active

personal · solo

Portfolio and technical blog. Static and fast.
  • Built on Hugo with a modified Shibui theme
  • /knows is an explorable graph of technologies, languages and domains, linking projects, posts and interests
  • Graph terms are AI-proposed and manually reviewed before publishing

Hugo · CI/CD · GitHub · JavaScript

Writing blog

active

personal · solo

A separate personal site for essays on philosophy, culture, music, and whatever else doesn’t belong on a dev portfolio.
  • Deliberately retro aesthetic, kept apart from the technical site
  • Same CI/CD and Git-based publishing workflow as the portfolio

CI/CD · GitHub · Static site

libr

active

personal · solo

A personal log of books, films, albums and poems — what was finished, when, and one thought on it. Built so a reread accumulates as history instead of overwriting the last opinion.
  • Every card’s colour is derived from its id rather than stored, so an entry keeps its colour across reloads and devices
  • Lightness is solved per hue: at full saturation a fixed lightness makes blue unreadable and yellow near-white
  • Text is coloured too, its hue rotated off the background and its lightness solved to clear WCAG AA — nothing uses opacity, which would blend text toward the background and quietly break that guarantee
  • Cards sit flush with no gaps, so any hue landing within 40° of a neighbour is rotated away
  • A reread appends to the entry’s logs array instead of adding a second card
  • No build step — the repo is the site; a push deploys only if the Playwright suite passes

JavaScript · HTML · CSS · JSON · Playwright · npm · GitHub Actions · GitHub Pages · Accessibility · Claude Code

visualize-relationship

complete

personal · solo

A graph of family lines and social relationships, kept as plain JSON in git and read through one self-contained HTML file that works offline. Built to answer “how am I related to this person” without anyone having to hold the answer in their head.
  • Stores only parentage and partnerships; sibling, cousin, step-parent and in-law are derived
  • Gender-neutral kinship terms in English and German, written rather than machine-translated
  • An EDTF date subset, so “around 1890” stays an interval instead of a guess
  • Nothing is ever deleted — a duplicate person becomes a tombstone that redirects
  • The tool is public, the data never is; a pre-push hook enforces it

TypeScript · Cytoscape.js · esbuild · Vitest · Playwright · JSON Schema · GitHub Actions · Claude Code

tui-sweeper

complete

personal · solo

A zen terminal Minesweeper. Built to be one self-contained binary you can go install and run from any terminal, with nothing else to install.
  • Go standard library only — no frameworks, no third-party modules, so go build needs no network access
  • Raw terminal handling is stty through /dev/tty plus hand-written ANSI escapes
  • Cells are drawn as background-filled tiles rather than glyphs, so they read as solid squares in both light and dark terminals
  • The terminal is always restored — on exit, on panic, on Ctrl-C
  • First click is safe; the board is generated after the opening reveal, so it can never be a mine
  • Chording, flood-fill reveal, and best times persisted to os.UserConfigDir()

Go · Terminal UI · ANSI escape codes

ERP system

discontinued

personal · team

A custom ERP for a car detailing business, covering scheduling, customers, and operations that were being run out of spreadsheets. Modular frontend and serverless backend.
  • Backend developed in Go
  • Hosted on AWS with Lambda and API Gateway
  • Supabase for auth and persistence
  • Reached beta with a functional frontend and backend

Go · Supabase · PostgreSQL · React · AWS Serverless

MercerAI

complete

ml · team

A voice-controlled D&D combat assistant that wakes on the phrase “How do you want to do this?” and handles combat lookups hands-free at the table.
  • Trained three wake phrase variants at 7, 6 and 4 syllables and compared them
  • Benchmarked FRR/FAR against openWakeWord’s pretrained Hey Mycroft baseline with DET curves
  • ~650KB ONNX model, fully offline on-device inference
  • Android client bridges to FMOD through C++/JNI for audio

Python · openWakeWord · ONNX Runtime · Piper TTS · Kokoro TTS · Raspberry Pi · Kotlin · Gemini 2.5 Flash · FMOD · C++/JNI

Synthetic wake-word data pipeline

complete

ml · solo

Generates augmented synthetic training samples for custom wake-word models, so we have plenty realistic training data for our wakeword models.
  • Physically plausible randomized augmentation chain: gain, reverb, noise, filtering, pitch and time shift
  • Reverb uses real-world impulse responses from the MIT Acoustical Reverberation survey
  • Seed-based reproducibility with a JSONL provenance manifest per sample

Python · Jupyter · Kokoro-82M TTS · FFmpeg · ONNX · openWakeWord

Taskflow

complete

university · team

A task app built to learn the AWS serverless stack for a university project.
  • Three Spring profiles (local, docker, prod) with DynamoDB Local for prod parity
  • The interesting part is where the Spring Boot mental model breaks under serverless, which the write-up covers
  • Health check endpoints, CORS and rate limiting built out rather than stubbed

Java · Spring Boot · AWS Lambda · DynamoDB · API Gateway · JWT · Docker · LocalStack · AWS SAM · React

CineCritique

complete

university · team

A Letterboxd-style film rating platform with social features, AI-driven recommendations, and a cross-platform mobile app.
  • Respoinsble for persitence layer and API wiring with PostgreSQL
  • Full Keycloak identity and access management
  • Separate Python service for recommendations
  • Platform agnostic frontend

Flutter · Dart · Java · Spring Boot · Python · PostgreSQL · Keycloak · Docker · GitLab CI/CD

Open Source AI for Enterprise

complete

university · solo

Examines scalability, compliance risk, and organizational impact of adopting open-weight AI models in enterprise settings.
  • Published on the university’s computer science blog

Research · Technical writing

Functional Programming in Clojure

complete

university · solo

Coursework notes, exercises and a final project for learning functional programming and Lisp idioms.
  • Final project re-implements core sequence functions like map, reduce and filter from scratch
  • Graded through a dialogue-based code review rather than a written submission

Clojure · PlantUML

Typst paper pipeline

active

tooling · solo

Automated build pipeline for academic papers and slides, so writing stays in plain text and version control instead of a word processor.
  • A reusable template repo, with templating for papers and acknowledgements
  • GitHub Actions auto-builds papers and Marp slides on push, published to GitHub Pages
  • Typst over LaTeX for faster compiles and readable error messages

Typst · Marp · CI/CD · GitHub Actions · GitHub Pages

Course notes and docs sites

active

tooling · solo

Static documentation sites for university notes and write-ups, searchable and linkable rather than trapped in a folder of PDFs.
  • Markdown-first with VitePress handling search and navigation
  • Hosts a lot of my university notes and write-ups, published to GitHub Pages
  • Same CI publish flow reused across several courses and projects

VitePress · JavaScript · Markdown · CI/CD · GitHub Pages