A toddler app with real machine videos and a spelling puzzle.
In development · backend course projectA catalog of real machines and animals for my toddler. Tap a photo of an excavator, a crane or a dumper and a real video clip plays. The toddler vehicle apps I looked at all use cartoons with sound effects. I didn’t find one that uses real footage.
The opening puzzle is a spelling game. It shows a picture with one blank per letter, and the letters are scrambled below. There’s no failure state. A word only counts as mastered if the child solves it quickly enough, and only then is a new word added to the pool. Otherwise the same word comes back.
I’m building it as my graded project for a 4-week backend module. Each week adds a layer: a TDD Web API, Docker Compose, cloud deployment, and a CLI with GitHub OAuth. The result is one real app instead of four throwaway exercises.
| Technology | Used for |
|---|---|
| C# / .NET | Web API and domain logic |
| TDD (xUnit) | Every feature written red → green |
| PostgreSQL | Progress and content data |
| Docker Compose | API, Postgres and pgAdmin in containers |
| .NET MAUI | Android app for the phone |
One composition challenge a day, at a random moment, with 30 minutes to shoot it.
In testing · offline Android appA personal photography app. Once a day, at a random moment between 09:00 and 21:30, it sends a signal with one composition to find. From that moment you have 30 minutes to find the structure in the world around you and shoot it. Miss it and the day is logged as missed.
It’s a solo spin-off of Co.Unter, a social photo app I built with a backend and an admin panel. The design stays brutalist: black, white, monospace, hard edges. The hidden fishing minigame came along too.
📁 This folder is empty.
App still under testing.
| Technology | Used for |
|---|---|
| Kotlin / Jetpack Compose | Native Android app |
| CameraX | 3:4 viewfinder with the composition overlay |
| AlarmManager | Random daily signal, restored after a reboot |
| Notifications | Live 30-minute countdown |
| MediaStore | Photos saved to the gallery, no storage permission |
Nothing here.
A desktop pet powered by a tiny, very confident old-style language model.
Concept + prototypeGlorp is a soft, sagging blob of slime that lives on your desktop. He tries to do everything big AI models do and confidently gets it wrong. The joke is the gap between how sure he is and how good he is.
| Technology | Used for |
|---|---|
| Python | Model, memory and taste scoring |
| GPT-2 small | The authentic 2019 language model |
| Godot | Transparent always-on-top desktop body |
| Shaders | The wobbling slime body |
No public links yet. This one is still in the lab.
A peer-to-peer chat app with no server, plus a game about how it works inside.
Done · 51 testsEvery copy of Chatap is a node. It listens for other nodes and connects to them directly, and each conversation is one TCP connection. There’s no central server.
NodeWorld is the fun part. It’s a small browser game where you drive a robot across two Chatap nodes. Every machine on the board is a real part of the code: the Node, the ConnectionHandler, the Codec, the stores. Packets travel along the wires in the same order as in the real app. Pass each machine’s quiz to unlock the next one. Try it in the NodeWorld tab.
| Technology | Used for |
|---|---|
| C# / .NET 10 | The chat engine (Chatap.Core) |
| TCP sockets | One connection per conversation, keepalive |
| Avalonia (MVVM) | Desktop window for Linux, Windows and macOS |
| xUnit | 51 tests for the core |
| JavaScript / Canvas | NodeWorld, the browser game |
For nearly a decade I built things with my hands. I welded steel structures, ran CNC machines, installed fences across Telemark, and wrote technical manuals in between.
Now I build software. I'm studying backend development: C#, .NET, TDD, Docker, Postgres. I started making apps for myself and the people around me while learning the systems and structure of software, from a spelling game for my toddler to a peer-to-peer chat with no server.
I work with AI tools every day, mostly Claude Code. They speed up the building, but my focus is on understanding how applications and programs are structured and put together: why each piece sits where it does, not just that it runs.
I like systems you can watch working: gears, conveyor belts, packets on a wire. That's why this site looks the way it does.
Based in Porsgrunn, Norway. I speak Polish, English and some Norwegian.