Fabio Keller · platform engineering

dwg no. FK-2026-01scale 1:1

I build theinfrastructureAI runs on.

Seven years of AWS and Kubernetes platforms, from document AI to warehouse robots.

dwg FK-2026-02a history of the machines
the musician
guitar · touring
01the musician
the maker
granular synth · c++
02the maker
the engineer
put-to-light cart · +50%
03the engineer
aws · k8s · ci/cd
04the architect
the present
ai platforms · today
05the present

It started with music.

I studied music and played for years. Sound was the first system I learned to build, and a live set is just production with worse uptime.

Then I built the instruments.

At university I went from playing to making: hardware synths, electronic music, and a granular synthesizer I wrote from scratch in C++. That project taught me to program.

My first code ran on a warehouse floor.

First real job: an e-commerce platform building software and hardware both. On the floor I built a put-to-light picking cart, 36 LED bins on a Raspberry Pi. Picking got 50% faster.

Then I went underneath.

To make all of it reliable I went deep on infrastructure: AWS, CI/CD, Kubernetes. For two years I taught it too, cloud engineering to career changers, 20 to 30 at a time.

Which is how I got here.

Today I architect event-driven infrastructure for AI products. Same instinct as the synth: pick the machine that should exist, then build it.

dwg FK-2026-03 · case 01 · ExB Labs

Case Study 01Paperwork,
at scale.

01tens of thousands a day

Still read by hand.

Freight in Germany moves on paperwork. Tens of thousands of documents a day that someone has to read, understand, and type into other systems. Slow, expensive, and wrong often enough to hurt.

02however they arrive

Four ways in.

Documents arrive however the customer works: uploaded in the product, dropped into S3, mailed to an ingress address, or fed straight from their own systems.

03the part I started with

Isolated by default.

Agents read untrusted input and act on it, so the platform assumes they will misbehave. Every customer solution runs its own agents in its own Kubernetes namespace. One bad document can never touch another customer's data.

04the work

Agents that read.

Pydantic AI calling Gemini reads and extracts. Microservices talk over Redis queues, so no service waits on another and a spike in one customer's volume stays their spike. EKS Auto Mode sizes the cluster itself.

05trust, in tiers

Seventy percent, untouched.

Customers approve results in the product, but documents read with high confidence, around 70% of the volume, flow straight through: emails sent, internal systems updated via API.

dwg FK-2026-04 · case 02

Case Study 02Revenue,
by feel.

01four sources, four silos

Scattered on purpose.

Resource planning in Float. Customer lifecycle in HubSpot. Contracts in spreadsheets. Product usage locked inside the product itself. No two of them agreed on anything.

02one pipe, once a day

Airbyte pulls it together.

A nightly sync from all four, including the product's usage through a custom Airbyte source I wrote against our own API. Everything lands raw in BigQuery, untouched.

03one warehouse

Everything, in one place.

Raw tables from every source, queryable together for the first time. The whole stack self-hosted on our Kubernetes cluster, BigQuery the one exception.

04raw becomes answers

dbt does the thinking.

dbt models the raw tables into the entities the business actually reasons about: customers, contracts, utilization, margin. The dbt image is built by CI and runs as a Kubernetes cron, versioned like any other service.

05the payoff

Margins with your coffee.

Every KPI the company runs on, served in Metabase and refreshed every morning, on dashboards anyone can open. Margins went from computed-by-hand-quarterly to a number you glance at before standup.

dwg FK-2026-05 · case 03 · BerryBase

prototyping the rig
prototyping the rig
wiring up the display
touchscreen UI · python + tkinter
the real thing · bins lit
the real thing · bins lit
Case Study 03
00the problem

Picking,
on foot.

01one picker, one order, one walk

The slow way.

An e-commerce warehouse picked orders one at a time: one picker, one order, one walk through the aisles. The fix wasn't software alone. It was a machine.

02put-to-light

One walk, 36 orders.

I planned and built a put-to-light trolley: a cart carrying 36 order boxes, each slot wired with LED strips. At every storage location the lights show which orders need that item, and how many. One walk now serves 36.

03a computer on wheels

A Pi per trolley.

Each trolley runs on a Raspberry Pi. On it, a Python app I wrote in Tkinter drives the touchscreen picking UI, talking to the cloud ERP through a REST API I extended with a PHP plugin. An arcade button advances the pick, an NFC reader handles Yubikey login, and a barcode scanner kills wrong-item errors before they ship. Every trolley ships its logs to S3.

04manufacturing

Flashed, on demand.

The part I'd show another engineer: each Pi boots a custom Linux image, stripped to the processes the trolley needs, built by a pipeline that produces a flashable image on demand. Fleet provisioning is a download, not an evening of setup.

05the payoff

Picking, up 50%.

Measured after rollout across a fleet of half a dozen trolleys: picking effectiveness up almost 50%. One walk, 36 orders, lit by LEDs and run by a Raspberry Pi.

dwg no. FK-2026-06contactsheet 6 of 6