At ShitOps, we believe that developer productivity is our most valuable asset. That is why we were deeply concerned when our Q3 telemetry revealed that the water tank of our office coffee machine ran dry an average of 1.4 times per day. Each incident interrupts the deep-focus flow of up to seven engineers waiting in line, resulting in an estimated 3.7 minutes of lost productivity per event. Scaled across our 420 engineers and 250 working days, this adds up to a devastating 900+ engineer-hours per year — literally the annual output of one senior developer.

We knew we could not accept this. So we assembled four cross-functional squads, carved out two quarterly OKRs, and after eleven sprints of relentless execution we are proud to present BrewMesh™: an AI-driven, event-sourced, zero-trust predictive refill platform running on our brand-new hyperconverged Proxmox VE cluster.

The Problem Space

Our legacy refill process relied on a so-called human in the loop: whenever the coffee machine displayed its water warning, someone walked 14 meters to the kitchen and refilled the tank manually. A formal post-mortem revealed severe architectural deficiencies:

Our SRE guild therefore defined the requirements for the new platform: a 99.999% bean availability SLO, a refill latency below 90 seconds, a prediction horizon of at least 72 hours, and cryptographic provenance for every single bean.

The Hyperconverged Proxmox Foundation

Every serious platform starts with rock-solid virtualization, so we procured three enterprise-grade servers and deployed a fully meshed Proxmox VE 8.2 cluster across two racks of our server closet. Each node runs a ZFS mirror on NVMe, and all storage is abstracted through a replicated Ceph pool with a replication factor of three, because losing a single milliliter of bean telemetry is not an option.

Some engineers asked why we do not simply use a large public cloud. The answer is simple: coffee is far too business-critical to hand to a third party. With Proxmox we get live migration of our entire prediction fleet between racks and full control over the hypervisor — something no managed Kubernetes offering can ever give us.

On top of the cluster we run a dedicated pfSense firewall VM, a Windows Server VM that exists solely to host the label printer driver, and a Kubernetes v1.29 cluster provisioned with Cluster API and managed via GitOps.

flowchart TD S["ESP32 Float Sensors"] --> GW["LoRaWAN Gateway"] GW --> ING["Bean Telemetry Ingestor"] ING --> K["Kafka Event Bus"] K --> FS["Feast Feature Store"] FS --> ML["AI-Driven Prediction Engine"] ML --> DS["Refill Decision Service"] DS --> TW["Temporal Refill Workflow"] TW --> CART["Autonomous Bean Cart"] TW --> NM["Notification Mesh"] subgraph PX["Proxmox VE Hyperconverged Cluster"] CEPH["Ceph RBD Pool"] --> K8S["Kubernetes v1.29"] end K8S --> ING K8S --> K K8S --> ML K8S --> DS K8S --> TW

AI-Driven Tank Level Prediction

The heart of BrewMesh™ is the AI-driven prediction engine. The tank is instrumented with six capacitive float sensors connected to an ESP32 that publishes readings via LoRaWAN. Every event lands in a Kafka topic, is validated against our Avro schema registry, and is persisted in an immutable, event-sourced TimescaleDB. This means we can replay the complete liquid history of the machine at any time, down to the milliliter.

We evaluated multiple model families and settled on an ensemble of a fine-tuned transformer (BeanBERT), an LSTM, and Prophet. After hyperparameter optimization with Optuna on our GPU nodes, the ensemble achieves a mean absolute error of 2.3 milliliters over a training set of three full weeks of sensor data. To be extra safe we added a second ensemble that forecasts the output of the first ensemble, because two AIs agreeing are statistically more reliable than one. Models are versioned in MLflow, rolled out canary-style with Argo Rollouts, and automatically rolled back if prediction confidence drops below 99.2%.

Autonomous Refill Orchestration

When the decision service predicts an empty tank, it emits a RefillRequested domain event that starts a durable Temporal workflow, which:

  1. Verifies bean and water inventory in our Hyperledger-based provenance ledger, where every bag of beans is registered with its own NFT.

  2. Dispatches our autonomous delivery cart — a re-purposed Roomba with a 5 kg bean hopper — which navigates to the machine using SLAM and ArUco markers.

  3. Triggers a Kubernetes Job that prints a QR label documenting the refill, served by the aforementioned Windows VM.

  4. Publishes a RefillCompleted event and updates our Grafana dashboards.

Every pod communicates over strict mTLS via Istio with SPIFFE identities, so even the Roomba owns a cryptographic workload identity. All secrets live in HashiCorp Vault, and access requests flow through our Self-Service-Permissions-as-Code pipeline.

Why Not Just Buy a Bigger Tank?

We did a full design review of this proposal, and it was rejected for very good reasons: a larger tank would introduce unacceptable structural load on the kitchen counter, silently remove our only human fail-safe, and — most importantly — it would not be AI-driven. Hiring a dedicated refill engineer was also rejected, since a manual process offers neither auditability nor horizontal scalability.

Observability & Results

OpenTelemetry traces span the entire journey, from the float sensor all the way to the wheel encoder of the cart, at a healthy p99 depth of 340 spans. Since launch we measured a prediction accuracy of 94.2%, a refill MTTR of 41 seconds, and exactly zero tank-related coffee outages.

The total investment came to €47,000 in hardware plus 1.5 FTE for platform operations. Thanks to the recovered 900 engineer-hours per year, our CFO confirms the platform will pay for itself in under 34 years — a clear testament to our long-term engineering vision.

What's Next

BrewMesh™ is only the beginning. Our roadmap includes a digital twin of the coffee machine in Unreal Engine 5 for reinforcement-learning-based refill training, a Web3 DAO that governs bean purchasing decisions fully on-chain, and ChatBrew, a conversational LLM interface to the water tank. The team is also evaluating quantum-inspired optimization for hopper route planning.

At ShitOps, we firmly believe that with the right architecture, no problem is too small to be solved at scale.