Software
Consulting
From requirements analysis through to process optimisation. Working out what is actually needed, what it is worth, and which half of the wish list earns nothing, before anybody writes code against a guess.
Consulting
From requirements analysis through to process optimisation. Working out what is actually needed, what it is worth, and which half of the wish list earns nothing, before anybody writes code against a guess.
What I get asked
- What is this actually costing us, and which part is worth building?
- Do we even need new software for this?
- Can I get a number before I commission anything?
What can be done about it
Requirements get worked out with the people who do the work, not only the people who order it, and the process is walked end to end until the manual steps and the breakages have names.
What I do
I write the scope down: what gets built, what explicitly does not, and a number beside it. Usually half the original list falls away because it earns nothing.
The first step
One call, and you have the scope in writing. It holds up even if you take it to somebody else.
- Requirements worked out with the people who do the work, not only the people who order it
- A process walked end to end, with the manual steps and the breakages named
- A scope you can hand to anybody, me included, and get a comparable quote for
Application development
From prototype to production readiness. A prototype answers whether the idea works. The rest of the way is tests, monitoring, deployment and the faults that only appear once real people use it.
What I get asked
- The prototype runs. Can I put it into operation?
- Who repairs this when it fails at night?
- How long until I have something I can click through?
What can be done about it
A prototype settles in weeks whether the idea holds. What comes after it decides whether the thing survives load, error paths and a year of maintenance.
What I do
I build the rough clickable version first, then the hardening: tests, monitoring, backups, a deploy that can be taken back. Handover as containers you run yourselves.
The first step
The eight phases are written out on /process, with how long each takes and what it costs to leave one out.
- A working prototype in weeks, to find out whether the idea holds
- Hardening: load, error paths, backups, a deploy that can be undone
- Handover as containers you can run and maintain yourselves
System architecture
From planning a system landscape to extending the systems you already run: interfaces that connect what you have. Manual retyping, and the errors and delays that come with it, are the largest single source of waste in small and mid-sized companies.
What I get asked
- Why is somebody here typing data from one system into another?
- Why do our stock figures disagree with each other?
- Can we extend what we have instead of buying something new?
What can be done about it
The systems you already run get connected through their interfaces, so the data moves without a person in the middle.
What I do
I build the interface between them and take on the work nobody wants to do anyway. Stock and prices stay in step, and orders stop getting missed.
The first step
Tell me which two systems do not understand each other. That is enough to start.
- Inventory system ↔ marketplace, stock and prices in step
- Lead generator → CRM, deduplicated and routed to the right person
- Shipping-provider API → customer portal → automatic follow-up
- Web shop → eBay API, listings and orders driven from your own tools
- Form → tariff API → quote → lead in the CRM, with nothing retyped
- Scraper → CMS → pages published on their own
- Online test → backend → scoring → mail to the candidate and their teacher
- Git push → build, tests, security checks → deploy with a rollback
- AI first-level support that answers, and hands over cleanly when it cannot
Platform & delivery
Containers, pipelines and the boring machinery that turns a release into a non-event.
What I get asked
- Why does every release cost us half a day?
- How do we take a bad deploy back?
- Who can ship when the one colleague who knows it is away?
What can be done about it
The release path gets automated end to end, so shipping is a push and taking it back is another one.
What I do
Eight years of Docker: Portainer and Traefik in front, GitLab CI on your own runners, a push that builds, tests, checks and deploys. A bad deploy is back out in seconds.
The first step
The parts and their complexity are in the catalogue, under Platform & delivery.
- Self-hosted Portainer and Traefik in front of staging and live
- GitLab CI on local runners, building to DockerHub and private registries
- A bad deploy taken back in seconds rather than hours
AI & agents
LLM orchestration that does actual work: harnesses with memory, tool use, and quality gates a change has to clear before it counts as done.
What I get asked
- Can a model do this work, or will it just tell me what I want to hear?
- How do I check whether the output is right?
- What does running it cost per month?
What can be done about it
A model on its own answers. A harness around it can use tools, remember what happened, and be held to a check before its output counts.
What I do
Three Rust systems of my own run on this. I will also tell you when a model is the wrong tool for what you described.
The first step
Bring the task you were thinking of handing to a model. Half an hour is enough to say whether it fits.
- A harness with memory, tool use and a quality gate before anything counts as done
- Three Rust systems of my own running on it
- An honest answer when a model is the wrong tool for the job
Team leadership
With empathy, and by encouraging people to own their decisions. Scrum Master for two to three delivery teams, coding dojos, technical hiring interviews.
What I get asked
- Why does my team wait for me before it decides anything?
- How do I get more quality without more process?
- Who do I hire, and how do I recognise it in an interview?
What can be done about it
The conflicts that are already there get named, the work that earns nothing gets cut, and what the team is aiming at gets sharper.
What I do
Scrum Master for two to three teams, coding dojos, technical interviews. I hand back a team that makes its own decisions and stands behind them.
The first step
A call about where the team is stuck, and what has already been tried.
- Scrum Master for two to three delivery teams
- Coding dojos in-house and at universities
- Technical hiring and interviewing
Selected work
- TradingArchitectureAI2027 – now
Overtrade — world model into a low-latency signal pipeline
Independent research
A trading platform built with Panthaeon and on Memnion. It scans and ingests news and live market data and folds them into one abstract world model, which a rule engine reads inside a low-latency signal pipeline. Signals are filtered against that world model and against each user’s own limits — limits derived from the measured behaviour of the strategies and bots the platform manages, not from what a backtest hoped for.
Rust, rule engine, market data, LLM orchestration
- AIResearchArchitecture2026 – now
Memnion — one memory for relational, vector, graph and time-series data
Independent research
A memory substrate for agents that keeps records, embeddings, relationships and history in one store, and reads them through a recursive query language: a query can follow a chain of related facts, hop between similarity and structure, and return the neighbourhood around an answer in one pass. It saves the repeated work and the tokens an agent spends rediscovering what it already established, and it makes the store useful for discovery: analysing past errors and inferring connections that point at how to develop a system further.
Rust, relational + vector + graph + time-series storage, query language
- AIArchitectureProduct2026 – now
Panthaeon — agent harness with a working TDD loop
Independent research
An agent harness built on Memnion: a workflow builder and task management around a full test-driven loop, with review and refactoring passes and quality gates a change has to clear before it counts as done. The process is what makes the output trustworthy — it keeps a model on the goal, stops it circling, and refuses work that is not finished.
Rust, LLM orchestration, MCP
- AIAutomationProduct2026
Enquiry routing and offer drafting on this site
This site
A model on my own machine reads a visitor’s description of their problem, matches it against the service catalogue, drafts a neutral summary they can correct, and prices the matched modules from the published rate. It runs greedy so the same text gives the same answer twice, it never sees a price, and when the machine is off the enquiry still arrives — in the visitor’s own words, unsorted.
Next.js · Payload · Postgres · local LLM over an OpenAI-compatible API
- AutomationSaaSArchitecture2025
Placement-testing platform with automated scoring
A language school
Prospective students sit an English placement test on SurveyMonkey; a Django backend ingests the responses through a DRF endpoint, normalises them, scores each skill and estimates a CEFR level. Staff see every submission in Django admin, adjust the level and approve a class placement, which notifies the student. The judgement stays with the teachers — the software does the arithmetic and the paperwork around it.
Python, Django, DRF, PostgreSQL, SurveyMonkey API
- AutomationTradingHardware2023
Browser-driven trade automation without a vendor API
A derivatives trader
The platform offered no interface to automate against, so the automation drives the only surface it exposes: on a schedule, Selenium reads the open-position table out of the DOM, keeps it in a local SQLite cache that survives restarts, and opens and closes positions through the order form — with a captcha-solving service wired in for the challenge in between. It checks that the page still looks the way it expects and stops the run when it does not.
Python, Selenium, SQLite
- TradingArchitectureOps2022 – now
Broker-API signal and execution pipeline
A copy-trading operator
Pulls broker and exchange data, applies per-user filter and risk rules, and fans signals out to worker nodes over a message bus. Latency and correctness both matter, and a dropped message is somebody’s open position.
Rust, message bus
- HardwareArchitecture2022
Keystroke proxy for laser-rig hardware control
A live-events operator
Viewers set off the lasers themselves: a gift on the stream reaches an HTTP proxy, which fans the command out to several machines over a broadcaster/subscriber setup. The rig’s control software only takes keystrokes, so keystrokes are what it gets — each machine types into the vendor software driving its own rig. Ten other developers had turned the job down before it reached me.
Python, HTTP, ngrok, Windows
- AutomationArchitectureOps2022
Energy-tariff API into a Close.com sales pipeline
A German energy broker
A form on the website asks for address, consumption and customer type; a Dockerised Python service asks a tariff API what electricity and gas cost for exactly that — Germany and Austria, private and business — shows the price back, and on submit writes the lead into Close.com with the quote already on it. The sales team never retypes a tariff.
Python, Close.com API, Docker
- AutomationArchitectureSaaS2022
eBay Trading API integration service
An online retailer
OAuth against the eBay Trading API and a small Flask service around it, sandbox first and production after, so listings and orders could be driven from the client’s own tools instead of the seller back office.
Python, Flask, eBay Trading API, Docker
- AutomationArchitecture2022
Marketplace scraper into automated content publishing
A SaaS publisher
Scrapes an app marketplace, keeps what it finds in a CMS, and fills article templates from it — a “top ten” post spawning an “alternatives to” post for each app it names, published straight into Webflow. It replaces the manual research and writing behind that content, so the site covers many more search terms for the same effort. The copy comes from templates and is predictable on purpose. Caches expire on their own and can be cleared by hand when the CMS and the scraper disagree.
Python, Webflow CMS API, Docker
- AutomationArchitectureOps2021 – now
ERP ↔ B2B marketplace synchronisation (JTL ↔ Alzura)
A German B2B parts marketplace
Bidirectional sync of stock, price, order and delivery status between a JTL ERP and the marketplace, running daily against live inventory. The difficult parts are conflict resolution when both sides changed the same record, and a failure mode that never oversells stock.
Python, SQL, Docker
- AutomationArchitecture2020 – 2023
ImmoScout24 lead generation and outreach bot
Two property clients
A Google Sheet is the whole interface: search agents in one tab, message templates in another. Apps Script authenticates against the ImmoScout24 API, pulls the matching listings, deduplicates them against everything seen before, sends the first enquiry from the template, chases with a reminder after a set number of days and writes send and reply status back next to the row. Built twice: once to stop a sales team retyping leads, once to do the contacting as well. Both clients already lived in a spreadsheet, so the spreadsheet stayed and the robot moved in behind it.
Google Apps Script, ImmoScout24 API, Google Sheets
- AutomationOpsArchitecture2019 – now
Continuous delivery system
Freelance clients
Staging and live for client services on my own infrastructure: Portainer and Traefik in front, GitLab CI on local runners building to DockerHub and private registries. A continuous delivery pipeline that runs itself — a push builds, tests, scans and deploys — which saves the hours a manual release costs and lets a bad deploy be rolled back in seconds. Clients get containers they can run and maintain themselves.
Docker, Portainer, Traefik, GitLab CI
- ArchitectureOpsLead2018
Webshop production hardening for a national-TV spike
twofour digitale Agentur
A client was going on national television: the traffic was known in advance and the air date did not move. High-availability setup on private-cloud containers, then optimisation at every level that could bottleneck — DNS, load balancer, encryption, application, content, database — and load-tested before air.
Magento, Redis, Docker, load balancing
- TradingAutomation2018 – now
Pine Script commissions for around fifty clients
Independent, via Fiverr
About a hundred commissions for some fifty different clients since going freelance: indicators, strategies and execution bots built to a brief. Each one is its own scope agreed in writing with someone I have never met, its own platform and broker quirks, and its own handover — getting the brief right is as much of the work as writing the script. The public record is on Fiverr.
Pine Script, MQL, broker APIs, backtesting
- SaaSProductResearchAutomation2014 – 2016
DriveNow carsharing platform, end to end
iteratec GmbH
Carsharing at scale: working out how people actually used the fleet, then building the mechanisms that stopped the fraud and abuse that behaviour exposed, and ironing out what only turns up in production. A team of about fifteen; I worked as a senior developer and on second-level support for what was already live.
Java, Android, embedded
- ArchitectureResearchHardware2010
Kinect gesture photo booth posting to Twitter
former03 GmbH — for a German cooperative for tax software
A trade-fair stand where a visitor posted a photo of themselves without touching anything: an Xbox Kinect read a hand gesture, an Adobe Air application took the shot and called the Twitter API. Gesture recognition off a depth camera was new in 2010.
Xbox Kinect, Adobe Air, Twitter API
- HardwareArchitecture2010
Live Twitter cloud for a city-hall exhibition
ERLEBNISMACHEREI (co-founder)
An installation in the municipal building in Munich: visitors tweeted on a chosen tag and watched their words arrive in a cloud on the wall. The API is the easy half — the piece only works if a stranger sees their own sentence appear within seconds of sending it.
Twitter API, live visualisation
- HardwareArchitectureLead2009 – 2013
Interactive media installations
ERLEBNISMACHEREI (co-founder)
A network of artists and technicians building installations that mix digital, electronic and analogue parts — play and conversation as the interface, experienced through the senses instead of a screen. As technical lead I owned the concepts, the prototypes and a good share of the build. The largest was the Tollwood Lichterbaum.
Embedded, sensors, distributed systems
- ProductArchitecture2009
BlackBerry app for client interactions
former03 GmbH — for a German cooperative for tax software
A handset app for the basic back-and-forth between the firm and its clients, built when the enterprise handset was still a BlackBerry. The platform decided most of it: what that generation of device could render and hold is what the interaction could be.
BlackBerry, mobile app
- HardwareArchitecture2007 – 2008
Utopia Cinema Server
Evolin Produktion GmbH
A prototype that drove the whole cinema — hardware signals and the show organised together in one playlist. Built with seven other students; it was carried on and went into production.
Distributed systems, hardware control
- ProductSaaS2006
Visualisations inside an audit revision system
stb AG
An internship on a revision system written in Perl: several visualisations and infographics, integrated into the company’s main product to improve usability. Built together with a UX designer, working out what the system could show and what would make it easier to use.
Perl, data visualisation