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.
📁 This folder is empty.
Screenshots coming soon.
| 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 |
A brutalist photography app with a new composition challenge every day.
App UI done · backend automation in progressA photography app built around one composition challenge a day. You shoot it, submit it, and the best frames go into the Hall of Frames.
The design is deliberately brutalist: black, white, hard edges, no decoration. The photos are the only colour on the screen.
Behind the app there’s a full admin control panel for the photo queue, winner selection, cohorts, users, audit log and notifications. Every admin action writes a structured audit entry.
It also has a hidden fishing minigame: 41 species, invisible catch-rate depletion, and a Megalodon you really shouldn’t summon.
📁 This folder is empty.
Screenshots coming soon.
| Technology | Used for |
|---|---|
| Kotlin / Android | Native app, about 28 screens |
| Supabase | Postgres, auth, storage, edge functions |
| Firebase Crashlytics | Crash reporting |
| Telegram bot | Owner alerts from the control panel |
| GitHub Pages | Public site with daily winners |
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.
📁 This folder is empty.
Screenshots coming soon.
| 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.
📁 This folder is empty.
Screenshots coming soon.
| 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 make apps that solve something real for the people around me, from a spelling game for my toddler to a peer-to-peer chat with no server.
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.