Max Köhler hello@max-koehler.deDEGet in touch
Max Köhler · Munich

I take the workstream nobody owns.

Hands-on CTO and engineer. I take on the technical topics that stall at the top: agentic engineering that reaches production, the identity stack your enterprise deal is waiting on, always-on infrastructure, and the migration that has been next quarter for four quarters.

Get in touchBook a call
Engineering since
2006
Leading teams since
2015
Founder and CTO since
2019
From the PCB to the cap table.
What I do

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.

01 · review

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.

Typical case
An investment committee meets in three weeks and nobody has read the code.
Fixed scope, fixed price, quoted on the call. Not a pentest. Not a certification audit.
Tech DDAuth / IAMFleet securityGitOpsAgent readiness
02 · mandate

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.

Typical case
A migration that has been next quarter for four quarters.
Three months minimum, day rate on the call. A single fault that has to be found is its own, shorter engagement.
Agentic engineeringPlatform / GitOpsIdentityIoT / firmwareMigrations
03 · sparring

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.

Typical case
A decision you cannot reverse, and nobody in the room to test it against.
Single days or a monthly retainer.
ArchitectureProduct strategyHiringPost-mergerCap table
start here

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.

Typical case
The board asked for AI velocity. Six weeks later the team reviews agent output by hand.
Fixed scope and price. Runs on its own or as the first step of a mandate.
MCP serversSkill librariesSign-off boundariesOTel tracing

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.
Track record

Things I can talk about

Not every mandate allows a reference. What is listed here is what I am free to name.

2009–2012
Mayflower

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.

2009–2012
Mayflower

An image-comparison search written in Java, built in-house before image search was common.

2012
Mayflower

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.

2012–2015
wywy

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.

2015–2016
wywy

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.

2015–2016
wywy

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.

2015–2016
wywy

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.

2017
wywy

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.

2017–2019
TVSquared

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.

2019–today
SMAHO

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.

2019–today
SMAHO

Live authorisation moved to relationship-based access on Ory Keto through a shadow-mode cutover with parity and regression suites, without downtime.

2021–today
SMAHO

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.

2024–today
SMAHO

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.

2024–today
Under NDA

Hybrid heating gateway R&D, plus an active engagement in energy and IoT infrastructure.

Also on the record

Angel and advisor to an early-stage startup from day one, covering infrastructure and discovery alongside the investment.

Working vocabulary
GoOry Kratos / Hydra / KetoOAuth2 / OIDCGKETerraformArgoCDIstioOpenTelemetryNATS / JetStreamMQTTESP32Zigbee EZSPModbusFlutterFigmaNext.jsMCP
How I work

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.

About
Max Köhler

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.

Contact

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.

hello@max-koehler.delinkedin.com/in/max-smaho
Pöllatstr. 10, 81539 München
max-koehler.de