Blog
Workshop notebook
Short notes on what I'm building: bits of code, electronics tinkering and experiments with the 3D printer.
Code
15 posts-
Code · May 25, 2026The local web UI: FastAPI inside the app
A physical knob would be optimal. Building one, not. I put the UI in the browser and made it reachable from any device on the LAN.
Part of Lumware → -
Code · May 29, 2026The trip becomes a blog
The blog used to be flat text you read once and forgot. The recall mode turns it into the trip's artifact: editable blocks, your own photos, and a PDF you can take with you.
Part of CamperRoute → -
Code · May 27, 2026Observing without seeing the user
I need to know what broke. I don't need to know whose screen broke. That distinction defines the entire observability layer.
Part of CamperRoute → -
Code · May 25, 2026BMAD: plan before writing code
If I just write code, I lose the thread by week three. If I over-plan, I lose it sooner. I had to learn to plan without drowning in planning.
Part of Lumware → -
Code · May 27, 2026Three repos, one promise
Three modes in the product; three repos in the code. Not a coincidence. The same instinct applied twice: separate the things that move at different speeds.
Part of CamperRoute → -
Code · May 25, 2026Host architecture: events, settings, scheduler
Three decisions changed how I think about this host. None is dramatic on its own. Together, they make all the difference.
Part of Lumware → -
Code · May 27, 2026Fuel: real data over the map
A pretty map isn't a product. A map that saves you twelve euros by filling up 4 km further down is. The trick lives in the combination prices + corridor + camper.
Part of CamperRoute → -
Code · May 25, 2026Why a binary protocol (and not JSON)
The easy option was JSON. It was also the option that made 30 FPS physically impossible. A six-byte-overhead binary protocol clears the bottleneck.
Part of Lumware → -
Code · May 27, 2026Geofence: knowing you arrived without you saying so
A check-in is the silliest piece of friction in software. Always-on GPS is surveillance. In between lives the geofence: a confirmed arrival and auto-complete on the way out.
Part of CamperRoute → -
Code · May 27, 2026POIs that surface on their own
An empty planner is intimidating. A planner that already populates the corridor — with everything you don't like removable — is a conversation.
Part of CamperRoute → -
Code · May 27, 2026Planning and driving are two different brains
A dense screen that works at home with coffee is unreadable in the cab with the sun overhead. The temptation was a toggle. The temptation was wrong.
Part of CamperRoute → -
Code · May 25, 2026From script to product
There was a 200-line script. It worked. The story did not end there — without the next step, there would be no family.
Part of Lumware → -
Code · May 27, 2026What CamperRoute is
I set out to organise a camper trip. I ended up designing a product with three modes. This post explains why three were necessary.
Part of CamperRoute → -
Code · May 25, 2026What Lumware is
I set out to blink a few LEDs. I ended up designing a software family for programmable light strips.
Part of Lumware → -
Code · May 1, 2026Hi, welcome to the notebook
What you'll find here: short notes on in-progress projects, electronics and what I'm learning as a freelancer.
#meta →
Electronics · DIY
1 postDesign · Brand
1 postNothing here yet. Soon.