Three ways this starts, and one way in.
Most engagements start with one of these. Scope and rate are set per engagement, on the call.
Reviews & Due Diligence
For investors, acquirers and CTOs with a deal waiting on a technical answer. Two to three weeks, then one page of judgement and ten of evidence.
Hands-on Mandate
For a CTO or founder whose hardest workstream has no owner. I join the team two to three days a week and own it end to end: platform, identity, event systems, IoT, agents.
CTO Sparring & Interim
For the only technical voice in the room, or the CEO who has none. Judgement by the day. The question is as often the product plan, the team structure or who to hire as the architecture. Every decision leaves with an owner and a revisit date.
Agentic Kickstart
An assessment of your repo and CI, a two-day workshop with the team, and four weeks of follow-up so it sticks: agent harnesses, skill libraries and explicit human sign-off boundaries.
What I do not do
- No quick fixes that end up as the architecture.
- No concept handed over without the code that proves it.
- No managed-IT retainer.
Things I can talk about
Not every mandate allows a reference. What is listed here is what I am free to name.
Single-page frontends in Dojo when that was bleeding edge, from the Siemens Tecpartner extranet on Zend Framework to the charting in Smatch fraud detection for the Otto Group, alongside a PHP4 to PHP5 migration with MSSQL behind Ciao for Microsoft's Bing Shopping.
An image-comparison search written in Java, built in-house before image search was common.
Backend design and implementation for Travian Games' Remanum, a live economic simulation kept in sync with its browser frontend over XMPP and ejabberd before WebSocket was available, which won Best Simulation Game 2012 at the Deutscher Entwicklerpreis; the same year, the architecture and proof of concept for Sportactics, now Kinexon, tracking sport in real time.
Joined early to build the backend and streaming infrastructure behind real-time audio content recognition, and ported the MATLAB algorithm to Python so a television commercial could be recognised the way Shazam recognises a song.
Hundreds of live television feeds at once: multicast inside a self-operated OpenStack estate across co-location sites in Munich, New York, Oakland, Paris and Tel Aviv, ffmpeg transcoding to 16-bit mono, then feature extraction and overlapping hashing into the recognition pipeline.
Consumer satellite equipment replaced with a server-grade DVB-S stack on multi-transponder cards, several racks down to a few rack units carrying more channels, and the low-level work under it: tuner-card passthrough, multicast inside the cluster, Puppet provisioning from the hardware facts a netboot image collected, and HA across the estate.
Alert noise cut by teaching Sensu about weather and satellite state, so a transponder or beam lost in bad weather paged nobody and what was left was on-call worth answering.
Head of Engineering: led the Python to Go rewrite of the matching engine for 10 to 20 times the throughput depending on transponder size and algorithm, ran real-time bidding from co-located servers inside the millisecond budget an exchange allows, built on-call for a platform with no maintenance windows, and prepared the acquisition from the inside including technical due diligence.
Ran the German engineering organisation and its integration into TVSquared across Munich and Edinburgh, merging a self-operated OpenStack estate into the acquirer's platform.
Co-Founder and CTO: around 35 vendor cloud integrations interchangeable behind one abstraction, a self-hosted Ory consent architecture serving MCP clients, voice assistants, apps and support access, and the GKE estate run as pure GitOps and reproducible from git.
Live authorisation moved to relationship-based access on Ory Keto through a shadow-mode cutover with parity and regression suites, without downtime.
Own ESP32 and Silicon Labs Zigbee hardware taken from a design partner's output to a production line, with BLE and mDNS provisioning firmware, a factory flashing station and the bring-up in between, and the app live in both stores with Alexa and Google Home.
The app designed in Figma, a Flutter release built with an agentic coding harness, and an MCP server, LLM provider abstraction and agent and skill library adopted across the team, with natural-language control of the home live in the app.
Hybrid heating gateway R&D, plus an active engagement in energy and IoT infrastructure.
Angel and advisor to an early-stage startup from day one, covering infrastructure and discovery alongside the investment.
Principles, and what they cost me to keep
Shift left
Automate and correct early: infrastructure, policy, secrets, even translations correct by construction. The expensive problems were cheap three steps earlier. It front-loads work onto a week when nothing looks broken yet.
Boring by design
Live migrations run shadow first and cut over when parity holds. Zero downtime is a method, not luck. Shadow running costs weeks that a big-bang cutover does not.
Leverage over headcount
The range is possible because agents do the mechanical work inside explicit human sign-off boundaries. It is also a way of working I bring into teams. Every sign-off boundary is a place I slow myself down on purpose.
Calibration
I say what I have not done before you find out. It costs me work I could have taken.
Discretion
Client names under NDA stay unnamed, on this site too. Confidentiality is part of the product.
With the team, not next to it
I sit in the repo, the standup and the incident channel. It caps how many mandates run at once.
The simplest thing that holds
I take the solution the next person can still read over the one that is more interesting to build. Simple means the fewest moving parts that still meet the requirement. It costs me the more elegant design, and it costs me the argument in the room long before it pays out in the next incident.
Where the range comes from.
The work I want is the problem that has stopped responding to the usual moves: the fault that will not reproduce, the setup that should work and does not. I have spent weeks inside those, and I have found my own bug report in a project's tracker months later with nobody else on the thread. Send me the one you have already escalated twice.
I started with an apprenticeship in 2006 and have been building systems ever since, first as an engineer, from 2015 leading platform teams, and since 2019 as a founder.
I am Co-Founder and CTO at SMAHO, where the work runs from firmware and a Zigbee gateway through GitOps and identity up to the app in both stores.
The range is the point. I have specified a board with a hardware partner in the morning and argued about a cap table in the afternoon, and both conversations went better because I had been in the other one.
I argue from the product side or the business side depending on what the goal is, and I have hired and restructured on the strength of that judgement, together with my co-founder.
Freelance mandates have run alongside since 2019, mostly where a team needs someone who will take the hardest part rather than describe it.
Munich, and in your repo rather than next to it.
Tell me what is stuck.
A short mail with the situation is enough. If it is not my problem to solve, I will say so and usually know who it is.


