In the evenings I build my own ideas, accelerated by AI — but the responsibility for the result stays with me. Every project here has a real user: my kids, people I work with, or me. So none of them is allowed to almost work.
The Ulam spiral. One cell per number, primes lit. Nobody fully knows why they fall onto diagonals — and a child rediscovers that alone, by solving tasks in Ulam.
First app on Google Play
Ulam — maths as a puzzle, not a drill
An app for practising maths in grades 1–4, built for my eight-year-old son. The tasks follow Alfik Matematyczny, a Polish contest where wit and putting facts together count for more than knowing the school rules. The child types a number instead of picking one of five answers — a typed number cannot be guessed. Every solved task lights the next cell in the Ulam spiral.
1038 contest tasks, 2015–2025, with the answer keys
13 question generators; every question replays from (id, seed)
57 tests; one of them runs 400 seeds through every generator
Fully offline. No account, no ads, no data collected.
Status: ready for its first release on the Google Play internal testing track. There is no store link yet — it appears here when the app gets through.
Three statuses, no spin. Cyan — it runs and you can open it. Violet — still being built. Empty ring — private, because it holds my family's data.
Live · public
Kvasir
One page, one answer: which AI agent to start for this task, today. It merges three public sources — CursorBench (cost and steps per real task), AI Stupid Level (whether a model is quietly getting worse) and GitHub Copilot pricing — and never shows a number without the effort level it was measured at.
An asteroid-mining game for a phone. Pick a rock off the sector chart, fly there, drill through its cross-section with a finger, haul the ore home, sell, upgrade the ship. The economy is integer-only and both the sector and every mining grid are pure functions of their seeds, so a save never breaks between versions.
React · TypeScript · Canvas 2D · PWA
In progress · public deck
talented-hr
A system that answers one question: who fits this role, on this project, in this team — and why. It returns no verdict and no bare score. Every result carries its hard mismatches, the contribution of each term and a written justification. That is the only way such a system may stand under the GDPR and the AI Act.
It takes a real song and turns it into a key sequence a child can actually play on a keyboard, in tempo. It exists so that a kid wants to sit down at the instrument. Importing a song from a URL is automatic; the only human part left is the ear test.
Python · FastAPI · PWA
Private · family
DadQuest
Exploring the real world with my kids, gamified. Mountains are the first quest line; castles, caves and bike routes wait as sibling modules. A new feature here is a module, never a patch to the core.
Node · SQLite · React
How this gets built
AI acceleration is not an excuse from engineering
01
First I check whether it already exists.
Before anything gets built I look for the owner of the subject — in my own ecosystem and in the world. Reinventing a wheel that already turns somewhere is a defect, not a neutral decision.
02
Every project has one thing that must never break.
In Ulam: a question carries the answer it will accept, and that answer is right — a wrong answer in a child's maths app is worse than no app. In Minerals: the economy is integer-only and generation is deterministic. That one property has a named test, and the test has to stay green.
03
I think out loud, and not in a straight line.
I have ADHD. Threads interleave and a digression arrives in the middle of a sentence. Instead of fighting that, I built a pipeline for it: I speak the thought, a local Whisper writes it down, and a tool folds it into an ordered prompt. Chaos goes in, structure comes out.
04
The rules are written down, because AI writes faster than I read.
Every project shares one constitution: the language rule, how a change may be made, the deploy doctrine, where the signing keys live. An agent gets it at the start of a session, so it never has to guess how the work is done here.
Where this comes from
Five things I do without trying
From CliftonStrengths 34 (12 December 2020). They are here not as decoration, but because you can see them in the code.
1
Analytical
Before I believe it, I look for the proof. That is why no number on Kvasir appears without the effort level it was measured at.
2
Responsibility
Taken on means finished. An app for my own child cannot break in his hands, and it has to work when the home server is asleep.
3
Restorative
My favourite moment is the one where something is broken and it is clear it can be taken apart. Most of these projects start exactly there.
4
Harmony
I look for the version everyone can live with. In the code that shows up as one constitution for all the projects, instead of separate habits in each of them.
5
Input
I gather the material before I build. Ulam started as a corpus of 1038 contest tasks from ten years, and only then got its first screen.
Leading domain: Executing.
What that is like from the inside
A questionnaire cannot see inside anybody, and this one told me nothing I had not already suspected about myself. It did something else: it put names on things I had noticed in pieces, and it settled what until then I only assumed. That is about as much as an instrument like this can honestly do.
What it does explain is how those five behave in a head with ADHD, where attention is not a dial I turn: it is either spread across nine threads or nailed to one thing for six hours. Analytical and Input aim that spotlight — at how a thing really works, and at the material I want in hand before I start building. Restorative is what pulls it: something broken, with a lid I can get off. Good engine, poor steering. Responsibility is the brake that finishes the thing after the hyperfocus has left the room — and the rules are written down because I cannot count on remembering what I decided yesterday.
It is also where the homelab comes from. A server in my own house is a thing I am allowed to open. Everything on this page runs on hardware I can put a hand on, so when it breaks I get to work out why — and the working out is the part I am here for. The question is always what is over the next hill. Right now the hill is Google Play: can I take something I wrote myself and get it onto my son's tablet through the front door, the way any other app arrives.