01Software

SPEDITION

Plenty of people treat the electrification of a haulage business as a change of vehicle. No more diesel, runs on electricity now, done. It rebuilds the business model, and the fastest way to feel that is to play it. You start small, with diesel trucks, at a time when nothing is pressing yet, and the first thing you learn is how thin the margins are. Then the pressure arrives: policy, fuel prices, customers who want something else. And when you finally switch, you notice it was never about the expensive vehicles. It is the whole operation.

Browser, no backend. 16 modules, roughly 5'900 lines of TypeScript, with simulation, interface and reference bot kept strictly apart. 12 playable years, 2019 to 2030. Every balancing decision checked against roughly 15'000 simulated operating weeks, 24 full runs with a fixed random seed. 30 versions in six weeks.

View the showcase →

Fleet calculator

Advice on depot electrification has to be vendor-agnostic, otherwise it is selling. So: a tool that shows the levers and what moves them, along real routes with real trucks.

TypeScript, React, Vite. Calculation engine with no UI attached. All of the logic, every calculation and simulation, runs client-side. Nothing goes to a server. 72 green tests, 3 seasonal scenarios. Tour and depot simulation, PV, BESS with peak shaving, TCO against diesel including the Swiss HGV levy. Max-min fair water-filling. Solid for structural and relative statements, not for absolute figures without a real load profile.

View the showcase →

Calculator suite, client project

Built for one client and their use case. The point was to let sales and presales simulate a depot on the haulier's actual numbers and produce the right offer from it.

4 calculators plus a hub, white-label. Release 6.2.2, git-tagged, 138 green tests. Review 06.2026: several calculation errors found, fixed with regression tests.

Accounting for commonhold owners

Owners who want to run their own building have almost nothing to choose from. Managing agents are everywhere, and plenty of them work without interest and with errors. So: a tool for the owners themselves. Bookings and administration, plus a dashboard that shows during the year where they stand and where things drift. Hardly any agent delivers that. A prototype, and it could be grown into a product.

Python, FastAPI, PostgreSQL, React. Localhost only. 4 financial years, 7 allocation keys, 31 accounts, verified opening balances.

Speicher.OS

Listening to hauliers and energy traders argue, I noticed they mean the same asset and want opposite things from it. The haulier needs the electricity to drive and wants to be ready to roll at any hour. The energy side runs the battery on availability and optionality. The concept governs who gets how much.

Calculators for balancing power, spread, pool aggregation, arbitrage, scaling. Thresholds 1 MW FCR, 5 MW SRL.

02Systems

User mail analysis

2'000 comments, 400 emails, 100 DMs a month, in two languages, on top of production. Many of the questions are identical and want the same answer, so I had the replies generated to fit each one. The reading and the analysis I did myself, every single one. That was the work, and that is where the knowledge came from. Automated, it would have passed me by.

Custom GPTs and Gems. 90%+ of interactions answered automatically. Analysis and aggregation stay with me.

Agent team

On your own, the work that only happens in a team simply stops happening. So I worked out what those roles look like, who works with whom, and who delivers what. It does not reach a full human team. For someone who is self-employed, it is the best there is.

11 skills, roughly 3'800 lines. 10 roles from research through finance to QA. Anti-sycophancy built in. Nothing leaves the team under anyone else's name.

Advisory board

Historical and other figures come with schools of thought. Clausewitz never saw what we argue about today, but the pattern underneath, the way he moves, the way he reads a situation, all of that can be abstracted and put to any problem.

27 thinking profiles, 262 lines, 13 functions, picked to cover the widest possible spread of characters. Functions 9 and 10 always run.

Voice system

Anything published under my name should sound like me. The rules come out of my own edited versions. It makes no difference which language I speak it in. What comes back is in the language I need, and it still sounds like me.

357 lines, 2 files, two-layer architecture with an override mechanic. An override has to quote the rule text, not the rule number. Bilingual, DE and EN.

03Data

E-truck database

I needed a foundation, for my own calculator and for the client project. It does not exist anywhere, and reliable figures are not even on the manufacturers' own pages. It is not 100% correct. It is good enough for everything built on top of it.

Schema 0.3, as of 04.2026. 28 models, 6 OEMs. ccs_kw 28 of 28, battery capacity 24 of 28, mcs_kw 8 of 28. A source per entry. Values I cannot evidence stay null and get flagged.

View the showcase →
04Media

Video pipeline

One person, full time, cannot draft, script, produce and post-produce in two languages and still get anywhere. I work one language out in full, the other comes back finished. Same thought as the agent team.

2021 to 2025. Teleprompter scripts, DE/EN synchronisation, post-production. 327 videos.

AI avatar and lip sync

Experiments. What is possible today, how far do I get.

2024, a full English video with my avatar. Anyone who did not know me did not spot it. Lip sync for Czech contacts speaking German, with their consent.

Images and video

You need a picture, you have not got one, and you cannot illustrate it quickly.

Text to image, image to image, image to video, text to video through fal.ai, for access to a wide range of models. On real products, no newly generated viewing angles. That would be forgery.

Presentations

Faster than clicking it together by hand.

python-pptx, master slides. Keynote compatibility diagnosed myself: MSO preset shapes only, no custGeom, a LibreOffice round trip to normalise the OOXML.

05Websites

evspeicher.eu

The site had been retired and cut down to a closing screen, and the requests for the content would not stop. The WordPress backup was corrupt, and before that the installation had been compromised through an attack vector in a plugin. I fixed it, and then I had had enough. Rebuilt from scratch, static, because nothing new is coming. Same style, same content, a few things corrected that had always bothered me. Maximum GDPR compatibility, no cookies.

Bilingual.

evspeicher.eu →

matsspeicher.com

Out with the WordPress ballast. Astro, because a few things get easier with it.

Bilingual. The language I have not written, I have translated. That saves the jumping back and forth. This page.

06Tooling

Fluid Voice

I do not type any more, I speak, and everywhere, not just in an AI window. Whisper Flow sends all of it to US servers, and I was not going to pay for that either. Where open source or something European is on par, that is what I take.

Voice engine and model picked and adapted myself. Local. DE and EN mixed, in any application.

Method

01

Agreement is the standard failure. Models tell me I am right. So anti-sycophancy goes in, and the thing argues back.

02

And I turn the test around. Here is my thesis, here is my input, now take it apart. Then again, and again. Stay honest doing it, invent nothing, or the arguing tips over into hallucination. That is a far harder test than asking whether something is correct.

03

The model checks what it wrote using its own metrics. I verify the result and adjust when needed. This iteration leads to learning on both sides.

04

AI text looks like a sausage, the same thickness from one end to the other. Against that run my own style and anti-AI rules, drawn from my own edited versions.

05

Test matrices belong in the code, not in my head. The output has to run against them, otherwise it does not count. Everything sits in Git, so a rollback or a fork is possible at any point.

06

Automated tests in the build. 138, 72, 27 green tests, depending on the project. A review turned up several calculation errors. I fixed them and locked them down with regression tests, so they do not come back. That is the point where generated code turns into software.