I build tools that take the friction out of work I do repeatedly. If something costs me an hour twice, it turns into a product. Most of them start as something I needed at 2am and only get released once they survive a few weeks of me actually using them.
Most of my attention right now goes to AI systems — the layer that sits between a model and real work. Orchestration, context handling, tool routing, and knowing where a model will quietly get something wrong so you can build the check that catches it before a user does.
The other half is deliberate and slower: the layer underneath. AI makes it very easy to ship
code you cannot debug, so I keep the habit of going one level below what a job strictly needs —
hotpath is where that happens, and not one number in it
is remembered from someone's blog. I use AI hard, every day. Being able to tell when it is wrong is
the entire reason the fundamentals are worth the time — otherwise you are not building anything,
you are just moving the bug somewhere you cannot see it.
Note
Looking for an apprenticeship from August 2027 — IT-utviklerfaget or IT-driftsfaget, in the Ski/Oslo area. Currently in Vg2 Informasjonsteknologi, heading for a fagbrev. I have been writing code for years — this account is new because most of that work lived locally or in private repos. Three packages published (two on npm, one on PyPI), and a home server I ran for over a year. Are you a lærebedrift, or do you know one? Get in touch →
hotpath Rust · MIT
Faster versions of ordinary things, with the measurement to back it up. Counting newlines seven
ways — naive, SWAR, memchr, bytecount, hand-written AVX2 behind a runtime feature check, threaded
— measured against what a single core can pull from memory, so it is obvious at which point the code
stopped being the bottleneck. Every entry needs a baseline, a named mechanism and error bars, and
the results table is generated from criterion output rather than typed by hand. The losses get
published too: a table of nothing but wins is a table nobody should believe.
slab Python · MIT · pip install slabkit
The panel system this profile is built on. Palettes are derived in OKLCH from a single hue and
assert their own contrast ratios, so an unreadable theme fails at build time instead of shipping.
Superellipse corners, film grain, one motion idea per panel — all of it built inside GitHub's actual
rendering envelope, where <style> is escaped to plain text and webfonts never load.
The MCP servers below came out of a stretch of digging into how AI clients actually talk to external systems. Not where my attention is now, but they still run and they still work.
brreg-mcp JavaScript · MIT
Company lookup against Enhetsregisteret, the Norwegian business register: organisation numbers, roles, subunits, live updates. Ask an AI client who sits on a board and it answers from the register rather than from memory.
kartverket-mcp JavaScript · MIT
Norwegian addresses, place names and elevation from the open APIs of Kartverket, the national mapping authority. Geocoding and elevation data without signing up for anything.
discord-ts-template TypeScript
The discord.js v14 boilerplate I got tired of rewriting. Dynamic command and event loading, cooldowns, permission gates, context menus, autocomplete, hot reload.
Private repos. Happy to walk through any of them, or give a lærebedrift read access. vellum is the one with the process on show — every feature lands as a reviewed pull request against a numbered ADR.
| Project | What it is | Stack |
|---|---|---|
| vellum | Discord automation platform — visual flow builder, durable job runner, and a copilot that writes the flows | Next.js · discord.js · Drizzle |
| krait | Licensed desktop product — storefront, auth, and a licensing/entitlement API | Next.js 16 · Tailwind 4 · Better Auth + TOTP · Drizzle/libSQL |
| aether | Analytics for ER:LC server owners — dashboard plus API on a VM behind a Cloudflare Tunnel | Next.js 15 · Hono · Drizzle · Postgres · Redis |
| tnrp | Community platform: marketing site, dashboard, leaderboard, verification flow, moderation and economy bot, click-through staff HUD | Next.js 16 · discord.js · Tauri 2 |
| erlc.cc | Verified staff résumé service — portable reputation across servers | Next.js · TypeScript |
| portfolio | Personal site, raw CSS variables, working ⌘K palette | Next.js 15 · TypeScript |
aether is the one whose shape I can show without showing the code:



