About
I studied robotics engineering before moving into software — the robotics background is why I default to thinking in systems and failure modes, on the backend or anywhere else. Outside of work I throw pottery by hand, piece by piece, from Örebro, Sweden. That habit is also the reason Clay Studio exists: I wanted to track my own pieces properly, so I built the tool to do it, and it grew into the app the projects and shop on this page run on.
Projects

Clay Studio
The tool behind the ceramics below
A multi-tenant full-stack app to track pottery pieces from clay to kiln — every stage, glaze, and kiln load. Built for myself first; the gallery and shop further down this page sync from it live.
- ReactFastAPIPostgreSQLDocker
Home Server
What everything else on this page runs on
A Linux box at home runs Clay Studio, this site, and the rest — as systemd services, behind a single Cloudflare Tunnel (no ports forwarded on my router), with DNS and mail routing on the same domain. Tailscale gives me private access to dev environments from anywhere.
- LinuxsystemdCloudflare TunnelTailscale

Pocket Diary
One line a day, private by design
A mobile diary: write a sentence today, and it surfaces what you wrote on this same day in past years. Entries are encrypted on-device (AES-256 + HMAC) behind a PIN/Face ID lock — no server, no account, nothing ever leaves the phone.
- React NativeExpoSQLiteAES-256
Casa Gatomiautica
Home monitoring for one very spoiled cat
A USB webcam on a home server, streamed securely to my phone, plus the automation around it — my testbed for home-network security done properly instead of "just forward the port."
- Home serverNetworkingSecurity
Ceramics Social
Automated, and it costs me nothing to run
Automates my weekly pottery progress posts to Instagram: I sort photos and videos into folders, a local LLM (Ollama — no API bill) writes the caption, and it publishes itself via the Instagram Graph API.
- PythonLocal LLMInstagram API
Ceramics
The hobby that started Clay Studio. Everything on my shelf below, from freshly thrown to finished; the pieces for sale are further down — email me if something in the shop catches your eye.
On the shelf

Largest dish ever
Drying
Tell me when it's finished
Bowl grande
Drying
Tell me when it's finished
Plato raro
Drying
Tell me when it's finished
Bowl enorme
Drying
Tell me when it's finished
Taza cafe 2
Drying
Tell me when it's finished
Platito!
Drying
Tell me when it's finished
Taza
Trimming
Tell me when it's finished
Super ultra mega big dish
Trimming
Tell me when it's finished
Taza o bowl
Trimming
Tell me when it's finished
El huevo mas largo y fino 4
Trimming
Tell me when it's finished
Plato cerrado
Trimming
Tell me when it's finished
Dish
Trimming
Tell me when it's finished
Taza 1
Trimming
Tell me when it's finished
Otro! Tarro huevo 5
Trimming
Tell me when it's finished
Tarro enorme! 2
Trimming
Tell me when it's finished
Plato espiral
Trimming
Tell me when it's finished
Taza Erik 2
Trimming
Tell me when it's finished
Taza
Trimming
Tell me when it's finished
Taza
Trimming
Tell me when it's finished
Tarro horrible
Bisque Firing
Tell me when it's finished
Expreso para Erik
Bisque Firing
Tell me when it's finished
Taza grande
Glazing
Tell me when it's finished
El bicharraco
Glazing
Tell me when it's finished
Plato grande
Glazing
Tell me when it's finished
Plato 3
Glazing
Tell me when it's finished
Plato! 2
Glazing
Tell me when it's finished
Taza o bowl srodinger cosa
Glazing
Tell me when it's finished
Taza muy grande
Glazing
Tell me when it's finished
Testeando con formas
Finished
Ask about this piece
Algo? Bowl?
Finished
Ask about this piece
Plato espiral no marcado
Finished
In the shop ↓
Dog Slow eater blue
Finished
In the shop ↓
Broken galaxy dish
Finished
Ask about this piece
Taza pequeña
Finished
Ask about this piece
Maceta con patitas
Finished
Ask about this piece
New mug
Finished
Ask about this piece
Tarro! 1
Finished
Ask about this piece
Segundo para wl cafe
Finished
In the shop ↓
Plato comedero!
Finished
In the shop ↓
Taza grande
Finished
In the shop ↓
Cool Mug
Finished
In the shop ↓
Taza de cafe
Finished
Ask about this piece
Largest dish!
Finished
In the shop ↓
Taza
Finished
Ask about this piece
Shape
Finished
Ask about this piece
Dog Slow Eater Red
Finished
In the shop ↓
Plato comedero 2!
Finished
In the shop ↓
Para el cafe!
Finished
In the shop ↓
Otro tarro mediano 3
Finished
Ask about this piece
Taza 3
Finished
Ask about this pieceShop

Taza grande
From €19.28
Clay
Mixta
Weight
0.5 kg raw
Time to make
63 days
- Coral sandOpal lustreWintergreen
How it evolved






Cool Mug
Time to make
63 days
- Green teaLavender mistPurple aster
How it evolved





Plato espiral no marcado
Time to make
52 days
- Green teaLavender mistOpal lustre
How it evolved





Plato comedero!
From €23.05
Time to make
59 days
- ShipwreckWinter wood
How it evolved





Plato comedero 2!
From €23.05
Time to make
59 days
- Opal lustreWinter wood
How it evolved





Dog Slow eater blue
Weight
0.75 kg raw
Time to make
45 days
- Green teaNimbus
How it evolved





Segundo para wl cafe
From €23.05
Time to make
52 days
- ShipwreckWinter wood
How it evolved





Largest dish!
From €37.03
Weight
0.75 kg raw
Time to make
42 days
- Green teaLavender mistPurple aster
How it evolved





Dog Slow Eater Red
From €37.03
Clay
mix
Weight
0.75 kg raw
Time to make
45 days
- Green teaOpal lustre
How it evolved





Para el cafe!
From €24.48
Weight
0.75 kg raw
Time to make
52 days
- Opal lustreWinter wood
How it evolved




Contact
Hiring, or just want to talk shop? Reach me at [email protected] or on LinkedIn.